In this post I'll give updates about open source I worked on during February 2023.
But first off, I'd like to thank all the sponsors and contributors that make this work possible! 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.
Attention
If you are using Github Sponsors and are making payments via Paypal, please update to a creditcard since Github Sponsors won't support Paypal from February 23rd 2023. Read their statement here. If you are not able to pay via a creditcard, you can still sponsor me via one of the ways mentioned above.
On to the projects that I've been working on!
Native, fast starting Clojure interpreter for scripting
New release: 1.2.174
Highlights:
java.time
and related classes with the goal of supporting juxt.tick (issue)See the complete CHANGELOG.
I worked together with the maintainers of the following libraries to make them compatible with babashka:
The babashka.http-client
namespace mostly replaces babashka.curl.
This month support for :multipart
uploads was added, mostly based on and inspired by hato's implementation.
Static analyzer and linter for Clojure code that sparks joy
New release: 2023.02.17
Some highlights:
&
) symbol in fn syntaxdef
:uninitialized-var
linter. See docs.hooks-api/resolve
. See docs.Check the changelog for details.
Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
This month:
deftype
and toString
+ equals
File system utility library for Clojure
Highlights:
xdg-*-home
helper functions, contributed by @evalbabashka.fs/zip
now takes a :root
option to elide a parent folder or folders.E.g. (fs/zip "src" {:root "src"})
will zip src/foo.clj
into the zip file under foo.clj
.See changelog for more details.
Clojure library for shelling out / spawning sub-processes
This month I looked into wrapping output of processes with a prefix so when ran in parallel, you can easily distuingish them. A preliminary solution is in this thread.
Interact with clojure-lanterna from babashka
A very experimental 0.0.1 release was published.
You can try it out by playing tetris in the console with babashka:
bb -Sdeps '{:deps {io.github.borkdude/console-tetris {:git/sha "2d3bee34ea93c84608c7cc5994ae70480b2df54c"}}}' -m tetris.core
Scripting in Clojure on Node.js using SCI
Finally nbb has gotten support for passing maps to keyword argument functions:
(defn foo [& {:keys [a b c]}])
(foo :a 1 :b 2 :c 3)
(foo {:a 1 :b 2 :c 3})
Several other improvements have been made in the area of macros and resolving JS library references and resolving dependencies in an nbb.edn
file, relative to an invoked script which is not in the current directory.
See changelogs here.
VSCode CLJS scripting and REPL (via SCI)
This month I contributed a built-in version of rewrite-clj to joyride, so joyriders can rewrite their code from within VSCode.
Showcase CLJS libs using SCI
A little project to show how you can use SCI to showcare your CLJS library in an interactive way.
The following projects also got updates, mostly in the form of maintenance and performance improvements. This post would get too long if I had to go into detail about them, so I'll briefly mention them in random order:
These are some of the other projects I'm involved with but little to no activity happened in the past month.
Published: 2023-03-01
Tagged: clojure oss updates