Skip to content

Commit 1f0b358

Browse files
committed
Update Annual Funding Mar Apr 2025 Report.md
add Michiel, Peter
1 parent 8a22d2f commit 1f0b358

File tree

1 file changed

+216
-4
lines changed

1 file changed

+216
-4
lines changed

content/news/2025/Annual Funding Mar Apr 2025 Report.md

Lines changed: 216 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ Together with the help of [@afucher](https://github.com/afucher), we improved so
159159

160160

161161
## Michiel Borkent
162-
2025 Annual Funding Report 2. Published May xx, 2025.
162+
2025 Annual Funding Report 2. Published May 2, 2025.
163163

164164
### Sponsors
165165
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. Top sponsors:
@@ -179,10 +179,222 @@ If you want to ensure that the projects I work on are sustainably maintained, yo
179179
* [Clojurists Together](https://www.clojuriststogether.org/)
180180

181181
If you're used to sponsoring through some other means which isn't listed above, please get in touch. Thank you! On to the projects that I've been working on!
182+
<br>
183+
184+
**Blog posts**
185+
186+
I blogged about an important improvement in babashka regarding type hints [here](https://blog.michielborkent.nl/babashka-java-reflection-type-hints.html).
187+
188+
**Interviews**
189+
190+
Also I did an interview with Jiri from Clojure Corner by Flexiana, viewable [here](https://www.youtube.com/watch?v=H7ZlwEDxzRs).
191+
192+
**Updates**
193+
194+
Here are updates about the projects/libraries I've worked on in the last two months.
195+
196+
* [babashka](https://github.com/babashka/babashka): native, fast starting Clojure interpreter for scripting.
197+
* Improve Java reflection based on provided type hints (read blog post [here](https://blog.michielborkent.nl/babashka-java-reflection-type-hints.html))
198+
* Add compatibility with the [fusebox](https://github.com/potetm/fusebox) library
199+
* Fix virtual `ThreadBuilder` interop
200+
* Add `java.util.concurrent.ThreadLocalRandom`
201+
* Add `java.util.concurrent.locks.ReentrantLock`
202+
* Add classes:
203+
* `java.time.chrono.ChronoLocalDate`
204+
* `java.time.temporal.TemporalUnit`
205+
* `java.time.chrono.ChronoLocalDateTime`
206+
* `java.time.chrono.ChronoZonedDateTime`
207+
* `java.time.chrono.Chronology`
208+
* [#1806](https://github.com/babashka/babashka/issues/1806): Add `cheshire.factory` namespace ([@lread](https://github.com/lread))
209+
* Bump GraalVM to `24`
210+
* Bump SCI to `0.9.45`
211+
* Bump edamame to `1.4.28`
212+
* [#1801](https://github.com/babashka/babashka/issues/1801): Add `java.util.regex.PatternSyntaxException`
213+
* Bump core.async to `1.8.735`
214+
* Bump cheshire to `6.0.0`
215+
* Bump babashka.cli to `0.8.65`
216+
* [clerk](https://github.com/nextjournal/clerk): Moldable Live Programming for Clojure
217+
* Replace tools.analyzer with a more light-weight analyzer which also adds support for Clojure 1.12
218+
* [squint](https://github.com/squint-cljs/squint): CLJS *syntax* to JS compiler
219+
* [#653](https://github.com/squint-cljs/squint/issues/653): respect `:context expr` in `compile-string`
220+
* [#657](https://github.com/squint-cljs/squint/issues/657): respect `:context expr` in `set!` expression
221+
* [#659](https://github.com/squint-cljs/squint/issues/659): fix invalid code produced for REPL mode with respect to `return`
222+
* [#651](https://github.com/squint-cljs/squint/issues/651) Support `:require` + `:rename` + allow renamed value to be used in other :require clause
223+
* Fix [#649](https://github.com/squint-cljs/squint/issues/649): reset ns when compiling file and fix initial global object
224+
* Fix [#647](https://github.com/squint-cljs/squint/issues/647): emit explicit `null` when written in else branch of `if`
225+
* Fix [#640](https://github.com/squint-cljs/squint/issues/640): don't emit anonymous function if it is a statement ([@jonasseglare](https://github.com/jonasseglare))
226+
* Fix [#643](https://github.com/squint-cljs/squint/issues/643): Support lexicographic compare of arrays ([@jonasseglare](https://github.com/jonasseglare))
227+
* Fix [#602](https://github.com/squint-cljs/squint/issues/602): support hiccup-style shorthand for id and class attributes in `#jsx` and `#html`
228+
* Fix [#635](https://github.com/squint-cljs/squint/issues/635): `range` fixes
229+
* Fix [#636](https://github.com/squint-cljs/squint/issues/636): add `run!`
230+
* `defclass`: elide constructor when not provided
231+
* Fix [#603](https://github.com/squint-cljs/squint/issues/603): don't emit multiple returns
232+
* Drop constructor requirement for `defclass`
233+
* [clj-kondo](https://github.com/clj-kondo/clj-kondo): static analyzer and linter for Clojure code that sparks joy.
234+
* [#2522](https://github.com/clj-kondo/clj-kondo/issues/2522): support `:config-in-ns` on `:missing-protocol-method`
235+
* [#2524](https://github.com/clj-kondo/clj-kondo/issues/2524): support `:redundant-ignore` on `:missing-protocol-method`
236+
* [#1292](https://github.com/clj-kondo/clj-kondo/issues/1292): NEW linter: `:missing-protocol-method`. See [docs](https://github.com/clj-kondo/clj-kondo/blob/master/doc/linters.md)
237+
* [#2512](https://github.com/clj-kondo/clj-kondo/issues/2512): support vars ending with `.`, e.g. `py.` according to clojure analyzer
238+
* [#2516](https://github.com/clj-kondo/clj-kondo/issues/2516): add new `--repro` flag to ignore home configuration
239+
* [#2493](https://github.com/clj-kondo/clj-kondo/issues/2493): reduce image size of native image
240+
* [#2496](https://github.com/clj-kondo/clj-kondo/issues/2496): Malformed `deftype` form results in `NPE`
241+
* [#2499](https://github.com/clj-kondo/clj-kondo/issues/2499): Fix `(alias)` bug ([@Noahtheduke](https://github.com/Noahtheduke))
242+
* [#2492](https://github.com/clj-kondo/clj-kondo/issues/2492): Report unsupported escape characters in strings
243+
* [#2502](https://github.com/clj-kondo/clj-kondo/issues/2502): add end locations to invalid symbol
244+
* [#2511](https://github.com/clj-kondo/clj-kondo/issues/2511): fix multiple parse errors caused by incomplete forms
245+
* document var-usages location info edge cases ([@sheluchin](https://github.com/sheluchin))
246+
* Upgrade to GraalVM 24
247+
* Bump datalog parser
248+
* Bump built-in cache
249+
* [SCI](https://github.com/babashka/sci): Configurable Clojure/Script interpreter suitable for scripting
250+
* Fix [#957](https://github.com/babashka/sci/issues/957): `sci.async/eval-string+` should return promise with `:val nil` for ns form rather than `:val &lt;Promise>`
251+
* Fix [#959](https://github.com/babashka/sci/issues/959): Java interop improvement: instance method invocation now leverages type hints
252+
* Fix [#942](https://github.com/babashka/sci/issues/942): improve error location of invalid destructuring
253+
* Add `volatile?` to core vars
254+
* Fix [#950](https://github.com/babashka/sci/issues/950): interop on local in CLJS
255+
* Bump edamame to `1.4.28`
256+
* [quickdoc](https://github.com/borkdude/quickdoc): Quick and minimal API doc generation for Clojure
257+
* Fix [#32](https://github.com/borkdude/quickdoc/issues/32): fix anchor links to take into account var names that differ only by case
258+
* Revert source link in var title and move back to `&lt;sub>`
259+
* Specify clojure 1.11 as the minimal Clojure version in `deps.edn`
260+
* Fix macro information
261+
* Fix [#39](https://github.com/borkdude/quickdoc/issues/39): fix link when var is named multiple times in docstring
262+
* Upgrade clj-kondo to `2025.04.07`
263+
* Add explicit `org.babashka/cli` dependency
264+
* [CLI](https://github.com/babashka/cli): Turn Clojure functions into CLIs!
265+
* [#119](https://github.com/babashka/cli/issues/119): `format-table` now formats multiline cells appropriately ([@lread](https://github.com/lread))
266+
* Remove `pom.xml` and `project.clj` for cljdoc
267+
* [#116](https://github.com/babashka/cli/issues/116): Un-deprecate `:collect` option to support custom transformation of arguments to collections ([@lread](https://github.com/lread))
268+
* Support `:collect` in `:spec`
269+
* [process](https://github.com/babashka/process): Clojure library for shelling out / spawning sub-processes
270+
* [#163](https://github.com/babashka/process/issues/163), [#164](https://github.com/babashka/process/issues/164): Program resolution strategy for `exec` and Windows now matches macOS/Linux/PowerShell ([@lread](https://github.com/lread))
271+
* Fix memory leak by executing shutdown hook when process finishes earlier than VM exit ([@maxweber](https://github.com/maxweber))
272+
* [html](https://github.com/borkdude/html): Html generation library inspired by squint's html tag
273+
* Fix [#3](https://github.com/borkdude/html/issues/3): allow dynamic attribute value: `(html [:a {:a (+ 1 2 3)}])`
274+
* Fix [#9](https://github.com/borkdude/html/issues/9): shortcuts for id and classes
275+
* [cherry](https://github.com/squint-cljs/cherry): Experimental ClojureScript to ES6 module compiler
276+
* Add `cljs.pprint/pprint`
277+
* Add `add-tap`
278+
* Bump squint compiler common which brings in new `#html` id and class shortcuts + additional features and optimizations, such as an optimization for `aset`
279+
* [nbb](https://github.com/babashka/nbb): Scripting in Clojure on Node.js using SCI
280+
* Add better Deno + `jsr:` dependency support, stay tuned.
281+
* [instaparse-bb](https://github.com/babashka/instaparse-bb): Use instaparse from babashka
282+
* Several improvements which makes babashka compatible with [test.chuck](https://github.com/gfredericks/test.chuck). See [this screenshot](https://files.mastodon.social/media_attachments/files/114/437/768/756/996/338/original/b8ebcb333f287e5c.png)!
283+
* [edamame](https://github.com/borkdude/edamame): Configurable EDN/Clojure parser with location metadata
284+
* [#117](https://github.com/borkdude/edamame/issues/117): throw on triple colon keyword
285+
* [fs](https://github.com/babashka/fs) - File system utility library for Clojure
286+
* [#141](https://github.com/babashka/fs/issues/141): `fs/match` doesn't match when root dir contains glob or regex characters in path
287+
* [#138](https://github.com/babashka/fs/issues/138): Fix `fs/update-file` to support paths ([@rfhayashi](https://github.com/rfhayashi))
288+
* [sql pods](https://github.com/babashka/babashka-sql-pods): babashka pods for SQL databases
289+
* Upgrade to GraalVM 23, fixes encoding issue with Korean characters
290+
291+
**Other projects**
292+
[Other projects I've been working on this month. See Click for More Details.](https://blog.michielborkent.nl/oss-updates-mar-apr-2025.html) <br>
293+
294+
*Published: 2025-05-02*
295+
*Tagged: [clojure](https://blog.michielborkent.nl/tags/clojure.html) [oss updates](https://blog.michielborkent.nl/tags/oss-updates.html)*
296+
297+
<br>
182298

183-
## Peter Taoussanis
184-
2025 Annual Funding Report 2. Published May 27, 2025.
299+
---
185300

186301

187302
## Oleksandr Yakushev
188-
2025 Annual Funding Report 2. Published May xx, 2025.
303+
2025 Annual Funding Report 2. Published May 5, 2025.
304+
305+
Hello friends! Here's an update on my **March-April 2025 Clojurists Together** work.
306+
307+
### CIDER
308+
- We just published a huge CIDER [**1.18**](https://clojurians.slack.com/archives/C015AL9QYH1/p1746007257709719) release that I spent two months working on. It is packed with features to the brim! See the full list of changes in the announcement.
309+
- 150 commits and 64 PRs accross 6 repositories.
310+
- Auxiliary releases: cider-nrepl 0.52.1 -> [0.55.7](https://github.com/clojure-emacs/cider-nrepl/blob/master/CHANGELOG.md#0557-2025-04-29), Orchard 0.30.1 -> [0.34.3](https://github.com/clojure-emacs/orchard/blob/master/CHANGELOG.md#0343-2025-04-28).
311+
312+
### Compliment
313+
314+
- New release: [0.7.0](https://github.com/alexander-yakushev/compliment/blob/master/CHANGELOG.md#070-2025-03-25).
315+
- New feature: priority-based candidate sorting.
316+
317+
### Maintenance
318+
319+
- Started testing all of the projects I maintain again JDK24.
320+
- Added support for JDK24 in Virgil ([0.4.0](https://github.com/clj-commons/virgil/blob/master/CHANGELOG.md#040-2025-03-27)) <br>
321+
322+
323+
---
324+
325+
## Peter Taoussanis
326+
2025 Annual Funding Report 2. Published April 30, 2025.
327+
328+
A big thanks to [Clojurists Together](https://www.clojuriststogether.org/), [Nubank](https://nubank.com.br/), and [other sponsors](https://www.taoensso.com/sponsors) of my open source work! I realise that it's a tough time for a lot of folks and businesses lately, and that sponsorships aren't always easy 🙏
329+
330+
\- [Peter Taoussanis](https://www.taoensso.com)
331+
332+
Hi folks! 👋👋
333+
334+
Hope everyone's well, and those in Europe enjoying the first glimpses of actual ☀️ in a while :-)
335+
336+
### Recent work
337+
338+
#### Telemere: structured logs and telemetry for Clj/s
339+
340+
[Telemere](https://www.taoensso.com/telemere) **v1 stable** is now officially and finally [available](https://github.com/taoensso/telemere/releases/tag/v1.0.0)! 🍾🥳🎉
341+
342+
It was a lot of work to get here, but I'm happy with the results - and I'm very grateful for all the folks that have been patiently testing early releases and giving feedback 🙏
343+
344+
If you haven't yet had an opportunity to check out Telemere, now's a pretty good time.
345+
346+
It's basically a modern rewrite of [Timbre](https://www.taoensso.com/timbre) that handles both **structured and unstructured logging** for Clojure and ClojureScript applications. It's small, fast, and *very* flexible.
347+
348+
I'll of course continue to support Timbre, but Telemere offers a lot of advantages, and [migration](https://github.com/taoensso/telemere/wiki/5-Migrating#from-timbre) is often pretty straight-forward.
349+
350+
There's a couple video intros:
351+
352+
- [Lightning tour](https://www.youtube.com/watch?v=lOaZ0SgPVu4) (7 mins)
353+
- [Full intro](https://youtu.be/-L9irDG8ysM?si=nu9qTubt6BE_7h7e) (24 mins)
354+
355+
Telemere also has the most extensive [docs](https://github.com/taoensso/telemere/wiki/1-Getting-started) I've written for a library, including both:
356+
357+
- Lots of beginner-oriented stuff, and
358+
- Advanced info for folks that might like to [write custom handlers](https://github.com/taoensso/telemere/wiki/4-Handlers#writing-handlers), [transforms](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#*xfn*), or [other tools](https://github.com/taoensso/telemere/wiki/8-Community#handlers-and-tools).
359+
360+
#### Tufte: performance monitoring for Clj/s
361+
362+
[Tufte](https://www.taoensso.com/tufte) **v3 RC1** is now also [available](https://github.com/taoensso/tufte/releases/tag/v3.0.0-RC1).
363+
364+
Tufte's been around for ages but recently underwent a **major overhaul** focused on improving usability, and interop with Telemere.
365+
366+
The two now share a **common core** for filtering and handling. This means that they get to share relevant concepts, terminology, capabilities, and config APIs.
367+
368+
The shared core also means wider testing, easier ongoing maintenance, and the opportunity for improvements to further cross-pollinate in future.
369+
370+
Performance has also been significantly improved, and the documentation greatly expanded. There's too much new stuff to mention here, but as usual please see the [release notes](https://github.com/taoensso/tufte/releases/tag/v3.0.0-RC1) for details.
371+
372+
#### Other stuff
373+
374+
Several other releases worth mentioning:
375+
376+
- [Truss](https://www.taoensso.com/truss) [v2.1.0](https://github.com/taoensso/truss/releases/tag/v2.1.0) - micro toolkit for Clojure/Script errors
377+
- [http-kit](https://www.taoensso.com/http-kit) [v2.9.0-beta1](https://github.com/http-kit/http-kit/releases/tag/v2.9.0-beta1) - high performance HTTP client+server for Clojure
378+
- [Timbre](https://www.taoensso.com/timbre) [v6.7.0](https://github.com/taoensso/timbre/releases/tag/v6.7.0) - pure Clojure/Script logging library
379+
- [Nippy](https://www.taoensso.com/nippy) [v3.5.0](https://github.com/taoensso/nippy/releases/tag/v3.5.0) - fast serialization for Clojure
380+
381+
I'll note that Telemere, Tufte, and Truss are now intended to form a sort of **suite of complementary observability tools** for modern Clojure and ClojureScript systems:
382+
383+
- [Telemere](https://www.taoensso.com/telemere) for logging, tracing, and general telemetry
384+
- [Tufte](https://www.taoensso.com/tufte) for performance monitoring
385+
- [Truss](https://www.taoensso.com/truss) for assertions and error handling
386+
387+
Together the 3x offer what I hope is quite a pleasant (and unique) observability story for Clojure/Script developers.
388+
389+
### Upcoming work
390+
391+
Next couple months I expect to focus on:
392+
393+
- Getting [Tempel](https://www.taoensso.com/tempel) v1 stable out (data security framework for Clojure)
394+
- Significant work on [Sente](https://www.taoensso.com/sente) (realtime web comms for Clojure/Script)
395+
396+
After that, still need to decide. Might be additional stuff for Telemere, or gearing up for the first public release of [Carmine](https://www.taoensso.com/carmine) v4 (Redis client + message queue for Clojure).
397+
398+
Cheers everyone! :-) <br>
399+
400+

0 commit comments

Comments
 (0)