July and August 2023 Long Term Project Updates

By Kathy Davis

Even though it was vacation season, our developers share their progress (and challenges) for an incredible outpouring of work on their 2023 long term projects! Check it out.

Calva: Peter Stromberg
Carmine V4: Peter Taoussanis
CIDER/REPL: Bohzidar Batsov
clj-Kondo, babashka, nbb, SCI, Cherry, Squint: Michiel Borkent
Clojar-doc.org: Sean Corfield
Clojars: Toby Crawley
ClojureDart: Christophe Grande
Clojure-lsp: Eric Dallo
Humble UI: Nikita Prokopov
Malli: Tommi Reiman
Shadow-cljs: Thomas Heller


Calva: Peter Stromberg

These two months were not just about Calva. 😀

Calva

The biggest change was one I thought would be really tiny. We upgraded our dependency on cljfmt, and it got to be a much bigger change than I had expected. cljfmt had changed its configuration format, and it was a bit of work to figure out how to adapt Calva’s formatter to this. What made matters much worse is that I initially missed this configuration change and released a quite broken version of Calva. Doing something that already is a bit tricky in fire fighting mode is not making it easier. Or nicer. Wonderful then to notice that Calva and Clojure users had my back. I got some really wonderful help. I’m working in the best community imaginable.

Some more changes:

Lingy

When testing and providing feedback on the development of Lingy, a new Clojure implementation running on Perl, I wanted to be able to connect Calva to the Lingy REPL. So that caused me to start and participate in the development of a Lingy nREPL server. Now users of Calva, and any other nREPL client, can interact with their Lingy application from the editor. (Yes, so this was partly about Calva 😄.)


Carmine V4: Peter Taoussanis

Open source update

A big thanks to Clojurists Together, Nubank, lambdaschmiede, and other sponsors of my open source work!

Recent work

This was a productive couple of months! Managed to dedicate 100% of my time to open source. Recent work includes:

Upcoming work

My current roadmap includes:

I’ll also be continuing work on the new telemetry library (currently named Telemere), and on the ongoing documentation improvements. - Peter Taoussanis


CIDER/REPL: Bohzidar Batsov

The last couple of months were very productive for CIDER and all of its related projects. This was mostly due to our long-term contributor vemv being between jobs and eager to tackle some of the major items on our TODO list. I’ve decided to use a sizeable chunk of the donation money CIDER had accumulated over at OpenCollective to fund vemv’s work on CIDER & friends, and the results were great. Some highlights:

We’ve also did a big cleanup of the backlog and got the open issues under 100 for the first time in quite some time!

There are also a ton of other small improvements and bug-fixes that have been implemented in those two months. I encourage everyone to check the full list of changes here. All this work is the reason why CIDER 1.8 is still not out - we want to pack more into this release before we focus on CIDER 2.0

Right now it seems that CIDER 1.8 will be the biggest and most important CIDER release in the past 2-3 years! The release should happen any day now (this time for real)!

On an unrelated note - clojure-ts-mode is now available on NonGNU ELPA. Its submission there triggered a few long conversations about potentially including clojure-mode and/or clojure-ts-mode in Emacs itself. It’s a complex topic that we’ll be discussing with the clojure-emacs maintainers and our users in the months to come.

That’s all I have for you today! I expect to write a few more detailed blog posts on some of the topics I mentioned here once CIDER 1.8 has been released.


clj-Kondo, babashka, nbb, SCI, Cherry, Squint: Michiel Borkent

Sponsors I’d like to thank all the sponsors and contributors that make this work possible! Top sponsors:
Clojurists Together
Roam Research
Nextjournal
Toyokumo
Cognitect
Kepler16
Adgoji

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!
Github Sponsors
• The Babaska or Clj-kondo OpenCollective
Ko-fi
Patreon
Clojurists Together

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 worked on in July!

July Updates

Other projects:
These are (some of the) other projects I’m involved with but little activity in July. Click for more details:

August Updates

In August, my attention was mostly directed at the upcoming Strange loop talk. I’m very excited to be part of the last iteration of this conference. It will also be my first time flying to the USA!

Rahul De and Anupriya Johari will be giving a workshop at JavaZone on Tuesday the 5th of September. Check the details here.

Here are updates about the projects/libraries I’ve worked in August:

Other projects

These are (some of the) other projects I’m involved with but little to no activity happened in August. Click for more details.

Other projects

These are (some of the) other projects I’m involved with but with little or no activity in July and August. Click for more details.

Tagged: clojure oss updates Discuss these posts here. To see previous posts go here.


Clojar-doc.org: Sean Corfield

In my previous Long-Term Funding update I said I would review/overhaul the “ecosystem” and “tutorials” sections.

On a personal note…

I ended the previous update with a personal note but I’m going to start this update with one. It’s been a very difficult couple of months. My mother passed away in early July (on my birthday!) and much of the month involved a lot of back and forth with the funeral home in England and family around the world. My wife & I attended the service via Zoom at the end of July and then it took some additional time to get the service booklet and recording distributed to family and friends.

Then in early August, both my wife and I got COVID-19 – after three and a half years of avoiding it, and having all our shots and boosters. My wife tested positive soon after symptoms started and got paxlovid. I had all the same symptoms too, but kept testing negative until I was outside the window for paxlovid – and then started testing positive. It took about two weeks for us both to test negative reliably. We’re both still recovering from the fatigue and brain fog but every day is an improvement. Wear your masks, folks, and get all your shots and boosters!

Consequently, I didn’t get as much done as I’d hoped in the past two months.

clojure-doc.org

I incorporated feedback from the community on the tools.build cookbook. Many thanks, in particular, to @phronmophobic who provided extensive feedback and Pull Requests!

I reviewed the “ecosystem” and “tutorials” sections but only so far as to remove outdated content. I reviewed and updated the main Content page to reflect the current state of the site, reordering sections and removing outdated content.

Feedback from the community suggested that I should review sections in a different order to my initial plan, so I turned my attention to the “language” section and updated the following pages from Clojure 1.5 to Clojure 1.11:

In some cases that just meant double-checking the code examples still worked as shown, but in other cases it meant updating the examples to use newer functions, adding new examples showing alternative approaches that are now possible, or changing the error messages shown to match the current behavior (since Clojure 1.10 did a lot to improve error messages).

I still need to make additional passes over several of these pages to address the remaining “TBD” items (mostly adding more examples).

HoneySQL

Several complicated changes were made to HoneySQL this period, leading to the 2.4.1066 release, which included the first pass at supporting temporal queries, and reworking how :insert-into, :columns, and :values work together which should make it easier to avoid generating invalid SQL as well as making it easier to extend HoneySQL to support additional features around INSERT statements.

Polylith

The Polylith project (and documentation) was still using my old (archived) build-clj wrapper so I worked on a Pull Request to switch everything to plain tools.build usage as a better example for the community. That has been merged in and updated documentation will be released soon (on cljdoc.org instead of GitBook!).

clj-new

This project also still used build-clj so I updated all the project templates to use tools.build directly and released version 1.2.404 so that, going forward, newly-generated projects will be better examples for the community. deps-new had previously been updated to generate projects using tools.build directly.

clj-commons

Information about CLJ Commons governance was spread across the clj-commons website and the meta repository’s README and other pages. Based on some community feedback in June, I wanted to consolidate that information and bring it up to date.

As I started on that, I realized that the clj-commons project list was very outdated so I decided to regenerate it (there’s a Clojure script for this). That uncovered a number of projects that were missing either the ORIGINATOR file in the root of the repo (how clj-commons identifies the original author of a project) or the .github/CODEOWNERS file that lists the current active maintainers.

I went through every clj-commons repo and added the missing files, updated the projects.clj script to support # comments in CODEOWNERS, and regenerated the projects.html page.

Finally, I consolidated and updated the information about how CLJ Commons accepts and maintains projects, and updated the README in the meta repo to reflect that this information is all on the main website now:

What’s Next?

In September/October, I’m hoping to complete a review and update of the “tutorials” and “ecosystem” sections of clojure-doc.org, and then in the remaining period, I’ll tackle the “cookbooks” section and make another pass of “TBD” items in the “language” section.

:tags “clojure” “clojure-doc.org” “honeysql” “clj-commons” “open source” “community” “clojurists together” “polylith”


Clojars: Toby Crawley

Commit Logs: clojars-web, infrastructure

I took this month to clean up some long-standing issues:

And a few quality-of-life improvements:

The CHANGELOG file also covers any user-facing changes.

Note: this report is also available on tcrawley.org


ClojureDart: Christophe Grande

ClojureDart

ClojureDart keeps to steadily get new users. We got featured on a Youtube channel for Flutter devs. Hopefully we increase the reach of Clojure both by allowing Clojurists to reach mobile/desktop but also by drawing more people to Clojure.

We are also glad to have received quality PRs adding missing functions or fixing divergences in the way things print.

We started working on a REPL (limited to Flutter apps for now), we expect to make it public in September.

The lack of multimethods begins to feel like a blocker for porting existing libs so it’s another tppic we should address in the next two months/

Last, we keep publishing short videos on Youtube https://www.youtube.com/@clojuredart/shorts and we also started a newsletter on ClojureDart and nerdy stuff.

Fixes

Several fixes to the compiler, cljd.core or flutter.cljd. Amongst them:

Improvements

Future Work

ClojureDart


Clojure-lsp: Eric Dallo

During this year I’ve been working on clojure-lsp support for IntelliJ, it was the only mainstream editor that didn’t have a good way to use clojure-lsp features, it was really hard to integrate with the LSP protocol because of Intellij’s API but making the plugin in Clojure helped a little bit with that, so after a lot of work, I’m excited and happy to announce clojure-lsp-intellij, a new plugin for IntelliJ to have all clojure-lsp features available!

eric dallo image

clojure-lsp-intellij

0.1.0 - 0.9.0

clojure-lsp

The main highlight are performance and memory improvement, also we had formatting improvements to match latest cljfmt features.

2023.08.06-00.28.06

General

Editor

API/CLI


Humble UI: Nikita Prokopov

Last two months have been DataScript-focused. I’ve implemented a major new feature: pluggable durable storages. I’ve also wrote SQL adapter for them and migrated Grumpy Website to DataScript + SQLite to battle-test the implementation.

It has been working well so far (~2 weeks, lots of updates).

DataScript:**

Grumpy Website:**

Skija:

Humble UI:

Sublime-Executor:

Clojure Sublimed:

New project — Dark Mode Toggle:


Malli: Tommi Reiman

I was off the grid on July, back to OS on August.

Malli

0.12.0 (2023-08-31)

borkdude/edamame 1.3.20 -> 1.3.23

Reitit

Spec-tools

Something else

The coffee store is closed-look image


Shadow-cljs: Thomas Heller

Time was mostly spent on doing maintenance work and some bugfixes. As well as helping people out via the typical channels (eg. Clojurians Slack).

Current shadow-cljs version: 2.52.3 Changelog

Blog Posts

Wrote a blog series about CLJS Frontend development alternatives to full Single Page Apps.

Notable Updates