Announcing https://clojars.org/aleph/versions/0.9.1: β’ Bump Netty to 4.1.124.Final (CVE-2025-55163 and bug-fixes) Contributions by (in alphabetical order): Ivo Vachkov
https://www.monkeyci.com (your friendly Clojure-based CI/CD) 0.19.7 has been deployed: β’ Improved CLI output when building locally β’ Specify build parameters in files β’ Expanded HTTP API so you can pass build parameters when triggering builds β’ Dependency upgrades
Hi @wout.neirynck! This channel only accepts one submission per project per month, see channel description. For more updates, you can use the #releases channel. Thank you! π (You can leave this message for this time)
Ah didn't know that, thanks
Hi all! π https://www.taoensso.com/truss v2.2.0 is out now (https://github.com/taoensso/truss/releases/tag/v2.2.0). Truss is a dep-free micro toolkit to help improve the Clojure/Script error experience. I know that this is a topic that comes up a lot in the annual surveys, and itβs something that affects both beginners and Big Systems a lot. Truss is basically a collection of small and simple utils that Iβve found helpful over the years. No magic, but practical stuff that can help. Also just added an intro video to demo the tools: https://youtu.be/vGewwWuzk9o Cheers!
This looks very useful, well done!
love your use of Clojure interactivity in your videos as a way of explaining/demoing your libs
https://github.com/babashka/sci: Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
SCI is used in https://github.com/babashka/babashka, https://github.com/babashka/nbb, https://github.com/nextjournal/clerk, https://github.com/BetterThanTomorrow/joyride/ and many https://github.com/babashka/sci#projects-using-sci projects.
0.10.48 (2025-08-21)
β οΈ This release contains a potentially breaking change for CLJS, see https://github.com/babashka/sci/issues/987
β’ Add *suppress-read*
β’ Add load-reader
β’ Fix https://github.com/babashka/sci/issues/872: *loaded-libs* is now the single source of truth about loaded libs
β’ Fix https://github.com/babashka/sci/issues/981: respect type hint on instance method callee
β’ Add core dynamic vars like *warn-on-reflection* and bind them during load-string etc. such that set!-ing then in a future works.
β’ Fix https://github.com/babashka/sci/issues/984: support alternative set! syntax in CLJS
β’ Fix https://github.com/babashka/sci/issues/987: method or property name in interop should be munged
β’ Fix https://github.com/babashka/sci/issues/986: preserve error location for js static method
β’ Fix https://github.com/babashka/sci/issues/990: fix merge-opts with :bindings + deprecate :bindings (replaced by :namespaces {'user ...})
https://github.com/babashka/scittle: execute Clojure(Script) directly from browser script tags via SCI!
Scittle now finally has a nice way of dealing with JS libraries coming in from other script tags, including ES modules!
See the documentation on this: https://github.com/babashka/scittle/blob/main/doc/js-libraries.md
Another nice improvement: you can now use cljs-devtools!
Changes since last announcement:
v0.7.27 (2025-08-21)
β’ https://github.com/babashka/scittle/issues/121: support string requires of globalThis js deps (https://github.com/chr15m). See https://github.com/babashka/scittle/blob/main/doc/js-libraries.md.
β’ Potentially breaking: (.-foo-bar {}) now behaves as {}.foo_bar, i.e. the property or method name is munged.
v0.7.26 (2025-08-20)
β’ https://github.com/babashka/scittle/issues/121: add cjohansen/dataspex plugin (https://github.com/jeroenvandijk)
β’ https://github.com/babashka/scittle/issues/118: add goog.string/format (https://github.com/jeroenvandijk)
β’ Support alternative (set! #js {} -a 1) CLJS syntax (by bumping SCI)
β’ Add source maps to distribution
β’ Add dev versions of all modules in the dev folder of the distribution + a dev/scitte.cljs-devtools.js module
I'm looking for information on the dataspex plugin. https://cdn.jsdelivr.net/npm/scittle@0.7.27/dist/scittle.dataspex.js does not exist (404) -- should I be doing something different to use it?
@timothypratley dataspex like some other plugins like hoplon are not included in the standard build, you can get those when you include them on the classpath and build scittle yourself
See here for more info: https://github.com/babashka/scittle/tree/main/plugins/demo
Thanks. I think it would help adoption if there were more pre-built options available. One idea is that there could be one or more alternative distributions: 1. scittle-contrib - builds all known plugins 2. scittle-official-full - builds all official plugins It would be valuable if these were automatically created whenever a new scittle is released. What do you think?
the reason I support plugins is that I don't want to include the whole CLJS ecosystem in my build
π right - I'm suggesting separate builds.
sure you can start scittle-contrib if you want :)
π cool, Thank you. Conceptually, is it sound?
note that you can't build optional plugins apart from the rest, everything is always one build
I'm already building scittle twice because of the dev files
conceptually it's sound. hoplon also has their own scittle distribution
Great. I'll give it a try and get back to you.
(moved further discussion to #scittle )
Scittle tooling is very hot right now. Well done!
Hi folks! Two more releases are fresh from the oven: β’ https://www.taoensso.com/timbre v6.8.0 (https://github.com/taoensso/timbre/releases/tag/v6.8.0) (pure Clj/s logging lib) β’ https://www.taoensso.com/trove v1.0.0 (https://github.com/taoensso/trove/releases/tag/v1.0.0) (like modern tools.logging w/ structured logging and Cljs support) Cheers!
Appreciate the πβs above, was helpful to see that this is maybe a common question. Iβve just updated the Trove README to make it immediately clearer who Trove is for and how it relates to Timbre, Telemere, etc.: > Trove is a minimal, modern alternative to https://github.com/clojure/tools.logging. > Itβs intended for library authors that want to emit rich logging without forcing their users to adopt any particular backend (e.g. https://www.taoensso.com/telemere, https://www.taoensso.com/timbre, https://github.com/BrunoBonacci/mulog, https://github.com/clojure/tools.logging, https://www.slf4j.org/, etc.). Iβve also added a specific section re: structured logging: Why structured logging? The key difference between traditional and structured logging? β’ Traditional logging outputs strings (messages). β’ Structured logging in contrast outputs data. It retains rich data types and (nested) structures throughout the logging pipeline from logging callsite β filters β middleware β handlers. A data-oriented pipeline can make a huge difference - supporting easier filtering, transformation, analysis, etc. Itβs also usually faster, since you only pay for serialization if/when you need it. In a lot of cases you can avoid serialization altogether if your final target (DB, etc.) supports the relevant types. The structured (data-oriented) approach is inherently more flexible, faster, and well suited to the tools and idioms offered by Clojure and ClojureScript.
That's a great addition; thanks!
Since you maintain both, which one would you recommend to most people?
@gentkr Hi Gent, Timbre and Trove serve different purposes. Trove is more for library authors that want to do logging and let their users choose a logging lib of their choice (like Timbre, Telemere, mulog, etc.). These days Iβd recommend: β’ https://www.taoensso.com/trove for library authors β’ https://www.taoensso.com/telemere for everyone else (modern successor to Timbre, same API as Trove) But will continue to support Timbre, so folks happy with Timbre can continue to use it.