announcements 2026-10-05

Big news, Clojure Elisp runtime clel runtime got accepted at https://github.com/melpa/melpa/pull/10246#issuecomment-5985100497 Now, packages written in cljel can be transpiled and shipped to Emacs ecossystem, without including in the build the runtime itself. Or relying on any hacks.

9
🆒 1
8
🔥 16
🎉 5
🤘 1

Oh, this also proves that transpiled output of clel passes linter checks and all kinds of style guides, when submitting a package to strictest Emacs repositories, like MELPA.

I'd like to present https://github.com/dotcmdhq/dotcmd, a cross-platform task runner you check in. While it's not a Clojure project, I made it specifically because I missed it when using clj. clj depends on externally-provided JDK, so anyone who wants to create and maintain a Clojure project typically needs to have an install section requiring a particular Java version and clj version. Also, I tend to make cross-platform projects with Clojure, so setting up a project also typically requires describing different initial setup for different OSes, duplicated with CI config... .cmd is an attempt to provide a single entry point that works in the same way on Linux, macOS, and even Windows, and handles all the "externalized" dependency fetching for the user. It needs no installation, but only checking in a small script into the repo. The same script works on all OSes and bootstraps a small runtime designed for downloading tools and launching them. Here is an https://github.com/dotcmdhq/dotcmd/blob/main/examples/clojure/.cmd.lua for Clojure projects that now allows using Clojure with specific, pinned versions of JDK/`clj` without ANY prerequisites for CI or dev machines! Woot!

🎉 6

Kinda crazy that no such tool existed before. I know there is mise/asdf, but they all lean into "here is another tool you need to separately install to work with this proejct". Also, I think it's kinda cool that .cmd works in the exact same way in Linux, macOS, and Windows. This simplifies CI so much, I have a matrix of all OSs with exactly the same code that runs in bash, zsh, and pwsh on windows: https://github.com/dotcmdhq/dotcmd/blob/main/.github/workflows/main.yml#L51-L54

The look of these lua scripts remind of nix. Maybe nix is a thing that already exists that is similar? Flake, whatever. Not an expert.

If the .cmd script bootstraps itself by downloading stuff over internet, how is this conceptually different from a bash script that downloads Babashka and then runs it? Trying to understand what is the fundamental value prop here over existing tools.

I don't think it's a fundamentally new thing. It's a polyglot script that works on Linux, macOS and Windows. If your project is Linux only, and all your devs and CI and prod systems use Linux, you'll be fine with a shell script that downloads and caches stuff over the internet. The value proposition is that it works in the same way across 3 main OSes, and what the bootstrapped runtime makes easy to do: securely download and cache tools, and invoke them

Ah, sorry, my initial impression that it was a new task runner akin to bb, make, etc., with is its own syntax and semantics. If this is a downloader for other, already familiar tools, then it's a different story.

This looks like a great idea - thanks for sharing! (I am a triple OS person, hence my joy!)

❤️ 1