OSS updates February 2023

In this post I'll give updates about open source I worked on during February 2023.

Sponsors

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!

Babashka

Native, fast starting Clojure interpreter for scripting

New release: 1.2.174

Highlights:

See the complete CHANGELOG.

Babashka compatibility in external libs

I worked together with the maintainers of the following libraries to make them compatible with babashka:

Http-client: Babashka's http-client

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.

Clj-kondo

Static analyzer and linter for Clojure code that sparks joy

New release: 2023.02.17

Some highlights:

Check the changelog for details.

SCI

Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs

This month:

Fs

File system utility library for Clojure

Highlights:

See changelog for more details.

Process

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.

Pod-babashka-lanterna

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

Nbb

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.

Joyride

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.

Cljs-showcase

Showcase CLJS libs using SCI

A little project to show how you can use SCI to showcare your CLJS library in an interactive way.

Brief mentions

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:

Other projects

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

Babashka news of January 2023

If you want to help me keep track of babashka-related news, please contribute to news.md or use the #babashka hashtag on Twitter or Mastodon.

Releases

New releases in the past month: 1.0.170 - 1.1.173 Release highlights:

Events

Articles

One new book this month:

and several blog posts:

Projects

Projects that were new, had updates or were made compatible with babashka:

Published: 2023-02-05

Tagged: clojure babashka babashka news

OSS updates of January 2023

In this post I'll give updates about open source I worked on during January 2023.

Sponsors

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.

Projects

Babashka

Native, fast starting Clojure interpreter for scripting.

New releases in the past month: 1.0.170 - 1.1.173 Highlights:

Babashka compatibility in external libs

I contributed changes to the following libraries to make them compatible with babashka:

Check the changelog for all the changes!

Http-client

The new babashka http-client project mostly replaces babashka.curl.

This month the default client was improved to accept gzip and deflate as encodings by default, reflecting what babashka.curl did.

Also babashka.http-client is now available as a built-in namespace in babashka v1.1.171 and higher.

Clj-kondo

Static analyzer and linter for Clojure code that sparks joy

Three new releases with many fixes and improvements in the last month. Check the changelog for details.

Some highlights:

The symbol analysis is used from clojure-lsp for which I provided a patch here.

A new project around clj-kondo is clj-kondo-bb which enables you to use clj-kondo from babashka scripts.

Also lein-clj-kondo got an update.

Instaparse-bb

This is a new project and gives you access to a subset of instaparse via a pod.

Instaparse was request a few times to have as a library in babashka and instaparse-bb is a good first step, without making a decision on that yet. See the relevant discussion here.

Carve

Remove unused Clojure vars

In the 0.3.5 version, Carve got the following updates:

Jet

CLI to transform between JSON, EDN, YAML and Transit using Clojure

Version 0.4.23:

Fs

File system utility library for Clojure.

Fs has gotten a few new functions:

See changelog for more details.

Neil

A CLI to add common aliases and features to deps.edn-based projects.

This month there were several small fixes, one of them being to always pick stable versions when adding or upgrading libraries. See full changelog for details.

Quickblog

Light-weight static blog engine for Clojure and babashka.

The blog you're currently reading is made with quickblog.

Version 0.2.3 was released with contributions from several people, mostly enabling you to tweak your own blog even more, while having good defaults.

Instances of quickblog can be seen here:

If you are also using quickblog, please let me know!

A collection of ready to be used SCI configs for e.g. Reagent, Promesa, Re-frame and other projects that are used in nbb, joyride, scittle, etc. See recent commits for what's been improved.

Edamame

Edamame got a new function: parse-next+string which returns the original string along with the parsed s-expression.

lein2deps

Lein to deps.edn converter

This tool can convert a project.edn file to a deps.edn file. It even supports Java compilation and evaluation of code within project.clj. There is now a lein plugin which enables you to sync your project.clj with your deps.edn every time you start lein. Several other minor enhancements were made. See changelog.

4ever-clojure

I added the ability to build and deploy 4ever-clojure to Github Actions. Every time a commit is merged, the site is automatically updated.

Brief mentions

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:

Published: 2023-02-05

Tagged: clojure oss updates

Archive