https://github.com/seancorfield/rephrase https://github.com/seancorfield/rephrase/releases/tag/v1.0.6 -- Rephrase exceptions to be more beginner-friendly
β’ Full support for #CLX41ASCS (requires 1.13.222 or later).
β’ Full support for #C0B8G0WB63C (requires 0.8.8 or later).
β’ Switch build to bb.
Follow-up in #C0B2UH1BPT3
https://github.com/seancorfield/deps-new https://github.com/seancorfield/deps-new/releases/tag/v0.14.0 415b3a8 -- Create new projects for the Clojure CLI / deps.edn
clojure -Ttools install-latest :lib io.github.seancorfield/deps-new :as new
β’ Address https://github.com/seancorfield/deps-new/issues/79 by switching build-bb folders to use bb-driven build.clj files. Requires #CLX41ASCS 1.13.222 or later!
β’ Update #C07NJRDQWDS in generated projects to 2.1.0.
β’ Update Clojure to 1.12.6 in generated projects.
β’ Update dev/test deps.
Follow-up in #C019ZQSPYG6Nice! Did you consider using :min-bb-version "1.13.222" in the generated bb.edn ? (https://book.babashka.org/#_min_bb_version)
I did not, because I did not know about it π I'll create an issue.
v0.14.1 released with that small change. Anyone running install-latest will automatically pick it up.
https://clojure.org/news/2026/09/15/clojure-1-13-alpha7
Destructuring additions
To gracefully handle missing information programmatically at runtime, use the :missing directive, which binds a name to a map of keysβnil that were named in checked keys directives but not found in the input map, traversing deeply through nested maps. This toggles the default behavior of :keys!/:syms!/:strs! from throwing to collecting into the named map. (see https://clojure.atlassian.net/browse/CLJ-2976)
If thereβs more data than you intend to process you may want to convey it, e.g. by reintegrating it with your transformed input for passing downstream. Use the :excess directive to bind a name to a map of all keys in the input map that do not correspond to keys listed in the destructuring form, traversing deeply through nested maps. (See https://clojure.atlassian.net/browse/CLJ-2975)
Bug fixes
β’ https://clojure.atlassian.net/browse/CLJ-2883 Reflector.getMethods() incorrectly returned bridge methods with covariant return type, making calls reflective
β’ https://clojure.atlassian.net/browse/CLJ-2930 bigdec - coerce from Number may lose decimal
Improvements and additions
β’ https://clojure.atlassian.net/browse/CLJ-1899 transform-keys - deep-walk a map and transform all keys
β’ https://clojure.atlassian.net/browse/CLJ-2538 tap-> - add tap> variant that returns the value
β’ https://clojure.atlassian.net/browse/CLJ-2970 select-keys - implementation change to unify argument requirements across functions used in destructuring: get, req!, and select-keys
Thank you for tap->! Been looking forward to that for ages π
I have muscle memory for writing (defn spytap [x] (tap> x) x)
nice, I can remove tap-> from my repl helpers
@felipecortezfi My muscle memory (and my VS Code / Calva / Joyride ctrl+alt+d ctrl+alt+t behavior) is for (doto tap>) so I just updated that Joyride script to use tap-> instead so I keep the same key binding π
@seancorfield that works for ->, but in thread-last macro you'd have to wrap that in an anonymous function, right?
Yup, but that was extremely rare in our code at work (i.e., I rarely felt the need to do that). But in ->, it was pretty common.
Alpha7 is on our QA/staging server cluster now. I'll report back if we see any weirdness.
Alpha 7 has been in production here for four days. No weirdness!