17 June 2022
Alex Miller
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem. (@ClojureDeref RSS)
The Deref started in June 2021 so this month marks the first full year of this weekly newsletter! I hope people continue to find it useful. Originally I had expected it would be biweekly but the volume of items every week was easily big enough to justify a weekly release. Thanks to everyone that continues to make podcasts, videos, blogs, libraries, and tools for the Clojure community.
We’ve been working on several things in the Clojure 1.12 stream and we are moving towards a 1.12.0-alpha1 release soon. I wrote up some of the stuff I’ve been working on in the Efficient partitioning post so I’ll just point there.
Fogus has finished his work on cleaning up the policies around var interning and replacement and that should also be included (maybe I can coax him into writing that up in more detail, but see CLJ-2711 for now). This area was brought to light with the addition of abs
in Clojure 1.11, which created a conflict in some existing compiled code - a scenario uncommon enough that we had not previously seen issues. This led to a lot of code archaeology, review of old "fixes" (one of which we are rolling back), and finally clarification of when vars can be replaced, and when warnings will happen. This took a long time but I think was really fruitful for all of us in defining the principles. While we have cast a pretty wide net in testing these changes, we rely on the community to really help us get broader coverage and find any issues when this is out in an alpha.
I’ve also been doing a lot of web site cleanup on old issues and PRs and working on the getting started area (still a work in progress). More on that in the future. And big thanks to Dan De Aguiar for finding a way through some Github billing issues so that the web site auto builds work again. Some portion of our time every week goes to maintaining the Clojure infrastructure (web sites, JIRA, Jenkins, contributor agreements, etc) and we’re trying to improve our efficiency there so we have more time for the good stuff!
FlowStorm Clojure debugger 2.2 new features - Juan Monetta
Clojure visual-tools meeting 8: data cookbook, goldly studio, re-frame state management - Sci Cloj
Worley noise rendered with multiple forward scattering - Jan Wedekind
(Clojure) 2022 meetup+ greenlabs - Songpa Clojure (Korea)
Efficient partitioning - Alex Miller
(clj 9) How to figure out what a function does - Joep Schuurkes
What does identical?
do? - Miikka Koskinen
Fleet Below Deck, Part III — State Management - Vitaly Bragilevsky
New releases and tools this week:
nbb 0.5.115 - Scripting in Clojure on Node.js using SCI
sci 0.3.30 - Configurable Clojure interpreter suitable for scripting and Clojure DSLs
jet 0.2.20 - CLI to transform between JSON, EDN and Transit, powered with a minimal query language
clj-test-containers 0.7.1 - Control Docker containers from your test lifecycle for Clojure integration tests
typedclojure 1.0.31 - An optional type system for Clojure
schema 1.3.0 - Clojure(Script) library for declarative data description and validation
DartClojure 0.2.0 - Opinionated Dart→Clojure translater
double-trouble - Handle duplicate Datomic transactions with ease (on-prem)
nvd-clojure-gh-action - Automated Github Action to automate scanning of Clojure projects for known vulnerabilities in the National Vulnerability Database
nvd-clojure 2.7.0 - National Vulnerability Database dependency checker for Clojure projects
DartClojure 0.2.2 - Opinionated Dart→Clojure translater
tools.project - Helpers to work with our tools.deps projects
coax - Clojure.spec coercion library for clj(s)
git-revisions 1.2.0 - Generate software revision strings based on Git and system context data
git-revisions-lein 1.1.0 - Automatically control Leiningen project version based on Git and system metadata
git-revisions-buildtools 0.1.0 - Automatically control tools.build based project version based on Git and system metadata
mikkmokk-proxy - Fault injection for the HTTP layer. A HTTP chaos proxy.
tablecloth 6.088 - Dataset manipulation library built on the top of tech.ml.dataset
fulcro 3.5.22 - A library for development of single-page full-stack web applications in clj/cljs
fulcro-rad 1.2.2 - Fulcro Rapid Application Development
datalevin 0.6.14 - A simple, fast and versatile Datalog database
gen-fn 0.1.35 - Generate Datomic function literals from regular Clojure namespaces. On-prem
tools.gitlibs 2.4.176 - An API for retrieving, caching, and programatically accessing git libraries
tools.deps.alpha 0.14.1205 - A functional API for transitive dependency graph expansion and the creation of classpaths
tools.tools 0.2.6 - Clojure CLI tool for managing Clojure CLI tools
enclojure - A Clojure-like scripting language for Elm apps