February 2021 Monthly Update

By Alyssa Parado

Here’s the final updates from the projects in February. This is the 2nd month of ClojisR. They will have their final update next month.

Clj-kondo/babashka/sci

February 1-14

I spent some time improving Calva’s publishing process to automate the steps we were doing manually before, like updating the changelog and some git tasks. This allows us to spend a bit less time publishing new versions, and makes it less error-prone.

I also added a command for copying the jack-in command to the clipboard, so users that want to start a repl themselves but still have Calva’s required repl dependencies can do so more easily.

I’ve started experimenting with using ClojureScript for more of Calva’s code base by porting the clojure-lsp integration over to ClojureScript. In doing so I’ve come across some issues, which Thomas Heller and others are assisting with. I think using ClojureScript more going forward, incrementally translating existing features from Typescript and adding new features in ClojureScript, will improve Calva by way of all known benefits of Clojure (smaller code base, fewer bugs, repl-driven development, etc.) as well as by potentially increasing the number of contributors to Calva.

Some other changes:

Recent Calva Changes

[2.0.171] - 2021-02-10

[2.0.170] - 2021-02-09

[2.0.169] - 2021-02-09

[2.0.168] - 2021-02-08

[2.0.164] - 2021-02-06

[2.0.163] - 2021-02-06

[2.0.162] - 2021-02-06

[2.0.161] - 2021-02-05

[2.0.160] - 2021-02-05

[2.0.159] - 2021-02-05

[2.0.158] - 2021-02-03

[2.0.157] - 2021-02-01

February 15-28

I’ve continued exploring our options for using more ClojureScript in Calva, that interops with the Typescript we already have. I translated the clojure-lsp integration code from Typescript to ClojureScript. While what I was doing worked in dev, I realized there was an issue caused by the way we bundle code for releases. There’s a bit more for me to try, but I think we can reach a solution that works in a way that’s satisfactory.

Once I get past the above, I plan to make Calva download the clojure-lsp native binary and use that, instead of packaging the clojure-lsp jar with Calva. The native binaries come with improved memory usage and startup time of clojure-lsp.

Also, thanks to a contributor, Calva now has an option to disable diagnostics from clojure-lsp.

Recent Calva Changes

[2.0.176] - 2021-02-24

[2.0.174] - 2021-02-24

[2.0.173] - 2021-02-21

O’Doyle Rules

February 1-14

I released version 0.7.0 which smooths down something that I think is the sharpest edge of O’Doyle: infinite loops. They are easy to create, and before this release, all you were greeted with was a long StackOverflowException with no useful info whatsoever.

In this release, O’Doyle detects these infinite loops and tells you exactly what rule(s) are being called in that loop. See the release notes for examples of what these error messages look like now. They’re so beautiful you might start making infinite loops on purpose just to see them.

I also recorded a talk for the Bay Area Clojure meetup on O’Doyle, which will now serve as a nice intro to the library for people. You can see it here: https://www.youtube.com/watch?v=XONRaJJAhpA

February 15-28

I released 0.8.0 which includes:

The last three months added far more polish to O’Doyle than I ever intended. The addition of :then-finally made it far better for creating derived facts, and the {:then not=} feature made it possible to derive all kinds of hierarchical data without any query language. With the recursion limit and cycle detector, O’Doyle is now far easier to debug when infinite loops happen in your rules. Detecting the opposite (why a rule didn’t fire) is still an interesting design question that I plan on working on. O’Doyle rules :D

Calva

February 1-14

Here is an overview of the work I did per project.

Babashka

Sci

Clj-kondo

Edamame

Misc

February 15-28

Here is my “thank you” video message to Clojurists Together which gives an overview of the most important new features implemented in this funding round:

https://youtu.be/P09GZVqiDdM

Here is an overview of the work I did per project in the last two weeks.

Babashka

Spartan.spec:

Sci

Clj-kondo

Misc

ClojisR

February 1-14

Currently, our main focus is to help different Clojure data science libraries to bring R like functionality by filling in the missing gaps.

Completed tasks:

Ongoing tasks:

Upcoming tasks:

February 15-28

Currently, our main focus is to help different Clojure data science libraries to bring R like functionality by filling in the missing gaps.

Completed tasks:

Upcoming tasks: