2022 is in the books. And what a year it was. We thought 2022 and 2021 were enough well, we know now 2022 topped them many times over. Work wise many teams at my current employer went the extra mile to ensure the next version of our flagship products will be ready for shipping this year as scheduled. Can't wait to tell you what's coming. Watch this space in the coming months.
How well did I do this year with personal projects? Managed to post 59 releases in 2021 and in 2022 I managed ... 59 again 😛 However, I'm quite happy with 2 of those particular releases. First, JReleaser 1.0.0 shipped in April 10th, exactly 1 year after its initial 0.1.0 release. It's been a fun and wild ride so far, with more people trying out the tool and bringing ideas to the table.
One of the things I wanted to test is how well JReleaser would work with non Java projects, and thus decided to make a few experiments of my own which ended with the following successful setups:
These repositories showcase how to build platform specific binaries using the build tool of choice for each language. These binaries are built in multiple platforms thanks to managed runners in GitHub Actions. Once built, binaries are released using JReleaser. If you're curious and browse through these repositories you'll note that the GitHub Action setup (
.github/workflows/*) and release configuration (
jreleaser.yml) is quite similar across all projects. That's the power of a common release tool.
The other project I'm excited about is Jarviz, a small (so far) JAR analyzer. I needed to scratch one particular itch: finding out the "main" or "dominant" bytecode of a given JAR without using an IDE. Jarviz accomplishes that and a few other tricks. The time I spent building the tool has already paid off as I was able to find (and plug!) 8 bugs across 4 different projects while I tested the tool before its first release 😱 🤯 🤩
Below is a list of all projects under my control that posted releases on 2022, the bulk concentrated on JReleaser once again though I expect that to change this year as we switched to a 2 month release cadence after 1.0.0 was posted. The kordamp-gradle-plugins also posted a good number of releases. These plugins were originally built to provide a structure similar to Maven's but for Gradle projects. They also abstract some of the issues and binary breakages brought by releases of Gradle. I must confess I was bummed by the constant churn of changes coming from Gradle releases that I completely stopped working on the plugins for a long time, besides working on JReleaser was more fun! However, with Gradle 8 soon to be out the door it was time to address all the changes brought by Gradle 7 and getting the plugin suite ready for Gradle 8. We'll see how many releases may be needed to achieve that goal.
It's worth mentioning that almost project in that list rely on JReleaser to post their releases. The exceptions being
jreleaser/release-action which uses the standard mechanism to release a GitHub Action,
asciidoctor-gradle-plugin which might migrate in the near future, and
gm which relies on GoReleaser as it's a Golang based project. That's 53 releases posted via JReleaser! Of course there were many more releases as most these projects also post early-access releases on every push to their default branch, once more aided by JReleaser.
If you find any of these projects to be useful to your work then consider sponsoring my work. There's Patreon or GitHub sponsorship options. You may also become a Tidelift subscriptor and notify me of the packages you'd like to see lifted. It's also possible to sponsor (or bounty a feature!) for JReleaser via its Open Collective.
Keep on coding!