OSS Highlights of November - December 2021
Like the previous OSS highlights, I'll give an overview of OSS work I did in November and December of 2021. I'd like to emphasize that I can do this work because of sponsoring via:
- Clojurists Together
- Github Sponsors
- OpenCollective (also see the clj-kondo one)
for which I'm very grateful. I love helping peoeple by providing OSS software and this is now my main activity.
Enterprise support
<!– old name –>I'd like to add that I'm also offering enterprise support for my OSS projects. It might be good to know there are options beyond sponsoring if your company needs an extra level of support for my OSS libraries. Recurring sponsors are eligible for a discount. Feel free to reach out via Twitter DM, e-mail or on Clojurians Slack to discuss options.
Do you need help with #clojure #graalvm compilation, #clojure static analysis/linting tools, or anything related to my #oss projects? I'm available for USD 150/hr. I also do custom license/support contracts if @github sponsors doesn't fit your business.#cljkondo #babashka #sci
— (λ. borkdude) (@borkdude) December 27, 2021
Babashka
Native, fast starting Clojure interpreter for scripting.
Releases: 0.7.3 , 0.7.2 , 0.7.0 , 0.6.8 , 0.6.7 , 0.6.6 , 0.6.5
Highlights:
- Load tasks and deps from other bb.edn file using
--config
and--deps-root
options #1110 - Add compatibility with
clojure.spec.alpha
. See babashka/spec.alpha and this blog post. - Compatibility with a fork of tools.namespace. This allows running the Cognitect test-runner (Cognitest) from source.
- tools.bbuild.
- Compatiblity with markdown-clj (see blog)
Clj-kondo
A linter for Clojure (code) that sparks joy.
Releases: 2021.12.19 , 2021.12.16 , 2021.12.01
Highlights:
- Automatically load configurations from
.clj-kondo/*/*/config.edn
. This can be disabled with:auto-load-configs false
. See issue #1492. This makes life easier for those using clojure-lsp which already uses the--copy-configs
option by default. - Several new linters:
:reduce-without-init
,:duplicate-case-test-constant
,:unexpected-recur
,:used-underscored-binding
and a few around docstrings. See the linters.md docs for details. - better-cond now bundles a clj-kondo config!
Note that most new linters in clj-kondo are going to default to :level :off
unless they detect a compile time error, like :duplicate-case-test-constant
.
Special thanks to new contributor @mknoszlig who has been quite active in adding new linters in collaboration with me.
SCI
Configurable Clojure interpreter suitable for scripting and Clojure DSLs.
Releases: 0.2.8
Highlights:
- Add
copy-ns
macro for copying an entire Clojure or ClojureScript namespace into a SCI context clojure.core/read
improvements- Lots of little 'devil is in the details' correctness improvements
Nbb
Ad-hoc CLJS scripting on Node.js using SCI.
Releases: v0.0.108 - v0.1.0. See npm.
Highlights:
- Add
nbb.classpath
which is also available in the JS API. - Add cljs.bean as built-in library.
- Add
--help
and--main
command line options (finally!)
Neil
- Automatically use newest tool.build with
add build
Edamame
Configurable EDN/Clojure parser with location metadata
Releases: 0.0.13 , 0.0.14 , 0.0.15 , 0.0.16 , 0.0.17 , 0.0.18 , 0.0.19
Many small improvements. Edamame now supports reading with a reader which is not an indexing reader too, for compatibility with clojure.core/read
.
Babashka.fs
File system utility library.
Highlights: improve fs/which
on Windows, add with-temp-dir
macro.
Babashka.process
Clojure wrapper for java.lang.ProcessBuilder
.
Releases: 0.1.0
Highlights:
- Resolve binaries on Windows using
fs/which
- Support
deref
with timeout #50 (@SevereOverfl0w)
tools.namespace
In this core library I contributed two ClojureScript fixes: