Migrating to LazyTest

March 12, 2025

I've been using the Expectations testing library since early 2019 -- over six years. I love the expressiveness of it, compared to clojure.test, and it exists because "Classic Expectations" was not compatible with clojure.test tooling. At work, our tests use a mixture of clojure.test and Expectations, but in my open source projects, I've mostly stuck with clojure.test for familiarity's sake for contributors.

Being compatible with clojure.test comes at a price, though. Expectations uses macros to produce clojure.test-compatible code under the hood, so it is limited by the same reporting as clojure.test and the same potential problems with tooling that tries to override parts of clojure.test's behavior -- namely that multiple tools do not play well together, so I've had to avoid "improving" the expressiveness or reporting in ways that would break compatibility with that tooling.

Continue reading →

Clojure/conj 2024

November 9, 2024

After last year's regular posts about my Clojurists Together-funded work on clojure-doc.org and other projects, and the end of my monorepo/polylith series, I've mostly taken a break from blogging -- and from my open source work, to be honest. I've been focusing on my day job and on some personal stuff.

I attended Clojure/conj 2024 last month and wanted to write about the event and the talks I attended. It's been eleven years since Conj was last at the George Washington Masonic Memorial in Alexandria, and I'd forgotten what a climb it is, up that hill! My watch says I got over 9,000 steps each day going back and forth from the hotel to the venue.

Continue reading →

Long-Term Funding, Update #6

December 25, 2023

In my previous Long-Term Funding update I said I would review and update of the "cookbooks" section and make another pass of "TBD" items in the "language" section.

Continue reading →

Long-Term Funding, Update #5

October 28, 2023

In my previous Long-Term Funding update I said I would review/overhaul the "ecosystem" and "tutorials" sections (once I'd finished the "language" section).

Continue reading →

Long-Term Funding, Update #4

August 30, 2023

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

Continue reading →

deps.edn and monorepos XI (Polylith)

July 15, 2023

This is part of an ongoing series of blog posts about our ever-evolving use of the Clojure CLI, deps.edn, and Polylith, with our monorepo at World Singles Networks.

Continue reading →

Long-Term Funding, Update #3

June 29, 2023

In my previous Long-Term Funding update I said I would review/overhaul the Libraries pages (both authoring and the directory) and write the tools.build cookbook.

The library authoring guide has been rewritten to use the Clojure CLI, deps-new, and deps-deploy and was well-received by the community, who provided some useful feedback that I have also incorporated into the guide.

The information from the library directory has been integrated into The Clojure Toolbox via a couple of Pull Requests that added optional tool-tip descriptions and libraries that were on clojure-doc but missing from the Toolbox. Thanks to James Reeves for accepting those PRs!

What else did I get done?

Continue reading →

Long-Term Funding, Update #2

April 30, 2023

In my previous Long-Term Funding update I said that I planned "to review and/or overhaul the Getting Started, Introduction, and Web Development sections, with a focus on the latter." (of the clojure-doc.org website).

I mostly achieved that goal but didn't get to the additional goal I set of writing a tools.build cookbook. I have sketched out the topics I hope to cover in that cookbook, however.

How did the past two months go?

Continue reading →

Calva, Joyride, and Portal

April 16, 2023

Back in December, 2022, I described my original Calva, Joyride, and Portal setup. I've been very happy with it all but, of course, I continue to tweak and update my development environment and my projects, and now that Clojure 1.12.0 Alpha 2 is available with add-libs-style functionality built-in, I've updated various projects and my dot-clojure and vscode-calva-setup GitHub repos to take advantage of that, so I figured an updated version of that post was warranted.

My development environment is VS Code, running on Windows, with all my Clojure-related files and processes running on WSL2 (Ubuntu). I use Calva, Portal, and Joyride to enhance and automate my day-to-day work.

Continue reading →

Long-Term Funding, Update #1

February 28, 2023

As part of Clojurists Together's Long-Term Funding for 2023 I talked about working on clojure-doc.org which I had resurrected a few years ago, as a GitHub Pages project, powered by Cryogen.

Continue reading →