OSS updates March and April 2024
In this post I'll give updates about open source I worked on during March and April 2024.
To see previous OSS updates, go here.
I'd like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn't exist or be maintained at all.
Current top tier sponsors:
Open the details section for more info about sponsoring.
Sponsor info
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
Here are updates about the projects/libraries I've worked on last month.
- squint: CLJS syntax to JS compiler
- #509: Optimization: use arrow fn for implicit IIFE when possible
- Optimization: emit
const
in let expressions, which esbuild optimizes better - Don't wrap arrow function in parens, see this issue
- Fix #499: add support for emitting arrow functions with
^:=>
metadata - Fix #505: Support
:rename
in :require
- Fix #490: render css maps in html mode
- Fix #502: allow method names in
defclass
to override squint built-ins - Fix #496: don't wrap strings in another set of quotes
- Fix rendering of attribute expressions in HTML (should be wrapped in quotes)
- Compile destructured function args to JS destructuring when annotated with
^:js
. This benefits working with vitest and playwright. - #481: BREAKING, squint no longer automatically copies all non-compiled files to the
:output-dir
. This behavior is now explicit with :copy-resources
, see docs. - Add new
#html
reader for producing HTML literals using hiccup. See docs and playground example. - #483: Fix operator precedence problem
- neil: A CLI to add common aliases and features to deps.edn-based projects.
Released version 0.3.65 with the following changes:- #209: add newlines between dependencies
- #185: throw on non-existing library
- Bump
babashka.cli
- Fetch latest stable
slipset/deps-deploy
, instead of hard-coding (@vedang) - Several emacs package improvements (@agzam)
- clj-kondo: static analyzer and linter for Clojure code that sparks joy.
Released 2024.03.13- Fix memory usage regression introduced in 2024.03.05
- #2299: Add documentation for
:java-static-field-call
. - #1732: new linter:
:shadowed-fn-param
which warns on using the same parameter name twice, as in (fn [x x])
- #2276: New Clojure 1.12 array notation (
String*
) may occur outside of metadata - #2278:
bigint
in CLJS is a known symbol in extend-type
- #2288: fix static method analysis and suppressing
:java-static-field-call
locally - #2293: fix false positive static field call for
(Thread/interrupted)
- #2296: publish multi-arch Docker images (including linux aarch64)
- #2295: lint case test symbols in list
Unreleased changed: - #1035: Support SARIF output with
--config {:output {:format :sarif}}
- #2309: report unused for expression
- #2135: fix regression with unused JavaScript namespace
- #2302: New linter:
:equals-expected-position
to enforce expected value to be in first (or last) position. See docs - #2304: Report unused value in
defn
body
- CLI: Turn Clojure functions into CLIs!
Released version 0.8.58-59- Fix #96: prevent false defaults from being removed/ignored
- Fix #91: keyword options and hyphen options should not mix
- Fix #89: long option never represents alias
- rewrite-edn: Utility lib on top of rewrite-clj with common operations to update EDN while preserving whitespace and comments
Released 0.4.8 with the following update:- Add newline after adding new element to top level map with
assoc-in
- nbb: Scripting in Clojure on Node.js using SCI
- nbb bundle JS output will ignore
nbb.edn
- #351: Update bun docs/example.
- Add
cljs.core/exists?
- clojure-mode: Clojure/Script mode for CodeMirror 6.
- instaparse-bb: Use instaparse from babashka
- Serialize regexes in parse results
- scittle: Execute Clojure(Script) directly from browser script tags via SCI
Released v0.6.17- #77: make dependency on browser (
js/document
) optional so scittle can run in webworkers, Node.js, etc. - #69: executing script tag with src + whitespace doesn't work
- #72: add clojure 1.11 functions like
update-vals
- #75: Support reader conditionals in source code
- cherry: Experimental ClojureScript to ES6 module compiler
- #127: fix duplicate
cherry-cljs
property in package.json
which caused issues with some bundlers - Bump squint common compiler code
- clerk
- #646 Fix parsing + location issue which fixes compatibility with honey.sql
- http-client: babashka's http-client
Released 0.4.17-19- #55: allow
:body
be java.net.http.HttpRequest$BodyPublisher
- Support a Clojure function as
:client
option, mostly useful for testing - #49: add
::oauth-token
interceptor - #52: document
:throw
option
- bbin: Install any Babashka script or project with one command
These fixes have been made by @rads: - SCI: Configurable Clojure/Script interpreter suitable for scripting and Clojure DSLs
- Fix #626: add
cljs.core/exists?
- Fix #919: :js-libs + refer + rename clashes with core var
- Fix #906:
merge-opts
loses :features
or previous context
- deps.clj: A faithful port of the clojure CLI bash script to Clojure
- Fix Windows issue related to relative paths (which took me all day, argh!)
- fs - File system utility library for Clojure
- #122:
fs/copy-tree
: fix copying read-only directories with children (@sohalt) - #127: Inconsistent documentation for the
:posix-file-permissions
options (@teodorlu)
- babashka: native, fast starting Clojure interpreter for scripting.
- Fix #1679: bump timbre and fix wrapping
timbre/log!
- Add
java.util.concurrent.CountDownLatch
- Add
java.lang.ThreadLocal
- Bump versions of included libraries
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
Published: 2024-04-30
Tagged:
clojure
oss updates