In this post I'll give updates about open source I worked on during August 2023.
To see previous OSS updates, go here.
I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info.
Sponsor info
Top sponsors:If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in the following ways. Thank you!
If you're used to sponsoring through some other means which isn't listed above, please get in touch.
On to the projects that I've been working on!
Updates
Currently my attention is mostly directed at the upcoming Strange loop talk. I'm very excited to be part of the last iteration of this conference. It will also be my first time flying to the USA!
Rahul De and Anupriya Johari will be giving a workshop at JavaZone on Tuesday the 5th of September. Check the details here.
Here are updates about the projects/libraries I've worked on last month.
- jet: CLI to transform between JSON, EDN, YAML and Transit using Clojure
- Release version
0.7.27
(see changelogs) with missing 1.11 functions and options for easier kebab/camel/etc. casing.
- quickdoc: Quick and minimal API doc generation for Clojure
- No update in quickdoc, but happy to see that Github have resolved a bug on their side with local anchors in HTML, which quickdoc relies on
- Require clojure 1.11 as the minimal clojure version
- sci.configs: A collection of ready to be used SCI configs.
- Worked together with @niwinz to make sci.configs upgradable to promesa 10 and 11. Many thanks to Andrey for making promesa backward-compatible again, since sci.configs relies on Clojure libraries to be always upgradable without breaking changes.
- nbb: Scripting in Clojure on Node.js using SCI
- Bumped sci.configs and promesa
- deps.clj: A faithful port of the clojure CLI bash script to Clojure
- The tools jar relocated to Github releases so deps.clj was updated to this new location, with backward compatibility
- Per my request, Alex added a
.sha256
file to Github releases so the downloaded jar file could be verified against corruption
- SCI: Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
- Clojure compatibility: allow
(def foo/foo 1)
in namespace foo
- Clojure compatibility: reset file metadata on var when it's re-evaluated from other file
- Add
sci.async/eval-form
and sci.async/eval-form+
- babashka: native, fast starting Clojure interpreter for scripting.
- expose
sci.core
in babashka - Asahi linux support (linux on Apple m1/m2)
- Several other library upgrades and Clojure compatibility fixes
- Compatibility with the newest integrant version
- pod-babashka-go-sqlite3: A babashka pod for interacting with sqlite3
- Upgrade sqlite version so it supports json fields
- cherry
- Add
defclass
to cherry (similar to squint) - Expose
clojure.string
and clojure.walk
namespaces - Fix overriding core vars
- clj-kondo: static analyzer and linter for Clojure code that sparks joy.
- working towards a new release with a large number of small bug fixes, see upcoming changelog
- http-client: babashka's http-client
- A number of small bugfixes and additions
Other projects
These are (some of the) other projects I'm involved with but little to no activity happened in the past month.
Click for more details
- [pod-babashka-fswatcher](https://github.com/babashka/pod-babashka-fswatcher): babashka filewatcher pod
- [edamame](https://github.com/borkdude/edamame): Configurable EDN/Clojure parser with location metadata
- [lein-clj-kondo](https://github.com/clj-kondo/lein-clj-kondo): a leiningen plugin for clj-kondo
- [squint](https://github.com/squint-cljs/squint): CLJS _syntax_ to JS compiler and [cherry](https://github.com/squint-cljs/cherry) Experimental ClojureScript to ES6 module compi
- [lein2deps](https://github.com/borkdude/lein2deps): leiningen to deps.edn converter
- [scittle](https://github.com/babashka/scittle): Execute Clojure(Script) directly from browser script tags via SCI
- [tools-deps-native](https://github.com/babashka/tools-deps-native) and [tools.bbuild](https://github.com/babashka/tools.bbuild)
- [sql pods](https://github.com/babashka/babashka-sql-pods): babashka pods for SQL databases
- [CLI](https://github.com/babashka/cli): Turn Clojure functions into CLIs!
- [cljs-showcase](https://github.com/borkdude/cljs-showcase): Showcase CLJS libs using SCI
- [fs](https://github.com/babashka/fs) - File system utility library for Clojure
- [process](https://github.com/babashka/process): Clojure library for shelling out / spawning sub-processes
- [babashka.book](https://github.com/babashka/book): Babashka manual
- [instaparse-bb](https://github.com/babashka/instaparse-bb)
- [rewrite-clj](https://github.com/clj-commons/rewrite-clj): Rewrite Clojure code and edn
- [pod-babashka-buddy](https://github.com/babashka/pod-babashka-buddy): A pod around buddy core (Cryptographic Api for Clojure).
- [gh-release-artifact](https://github.com/borkdude/gh-release-artifact): Upload artifacts to Github releases idempotently
- [neil](https://github.com/babashka/neil): A CLI to add common aliases and features to deps.edn-based projects
- [carve](https://github.com/borkdude/carve) - Remove unused Clojure vars
- [grasp](https://github.com/borkdude/grasp): Grep Clojure code using clojure.spec regexes
- [quickblog](https://github.com/borkdude/quickblog): Light-weight static blog engine for Clojure and babashka
- [4ever-clojure](https://github.com/oxalorg/4ever-clojure) - Pure CLJS version of 4clojure, meant to run forever!
- [pod-babashka-lanterna](https://github.com/babashka/pod-babashka-lanterna): Interact with clojure-lanterna from babashka
- [joyride](https://github.com/BetterThanTomorrow/joyride): VSCode CLJS scripting and REPL (via [SCI](https://github.com/babashka/sci))
- [clj2el](https://borkdude.github.io/clj2el/): transpile Clojure to elisp
- [deflet](https://github.com/borkdude/deflet): make let-expressions REPL-friendly!
- [babashka.json](https://github.com/babashka/json): babashka JSON library/adapter
- [deps.add-lib](https://github.com/borkdude/deps.add-lib): Clojure 1.12's add-lib feature for leiningen and/or other environments without a specific version of the clojure CLI