Hare 0.24.0 released, and Hare's new release policy February 16, 2024 by Drew DeVault

Hare’s first versioned release, 0.24.0, was tagged and shipped today. 🎉 We have written up a new release policy for Hare to govern this and future releases. Here’s the rundown on how this is going to work.

New here? Hare is a systems programming language designed to be simple and robust, using a static type system, manual memory management, and a minimal runtime. You can learn about it here.

Hare is currently at a level of sophistication where it is useful for many kinds of projects, and is being used for those projects. Many Hare users want to ship their Hare projects to users, and as such, software written in Hare is making its way into Linux distributions and the like. However, due to Hare’s unstable nature, we have not provided any versioned releases, forcing any distributions who want to package Hare to package Hare’s master branch, which is less than ideal. We also have no good means of distributing news of breaking changes, or tracking which versions of Hare are affected by which changes.

The new release process aims to address these. Since Hare is still somewhat unstable and fast changing, we have elected to ship quarterly releases. Each version number is 0.YY.Q, where YY is the two-digit release year and Q is the quarter (zero indexed) in which it was released. With each release, we will prepare a changelog (including a summary of breaking changes and required steps for affected users) and post it to hare-announce; all Hare users and packagers are encouraged to sign up for this list.

We will be making breaking changes in the future, some of which might even be dramatic. We plan on freezing the language at Hare 1.0, so it’s necessary for us to be able to correct design mistakes during this phase of Hare’s lifecycle. However, we acknoweldge that Hare is relatively sophisticated and useful today, and we want to find a balance which helps people make use of it today while having tools to cope with these changes as they come.

The quarterly releases and corresponding release notes are a tool which will help with this. Previously, there was no means of tracking breaking changes; you would simply find out because someone would update their Hare branch and complain that your software broke. With these releases, you can subscribe to hare-announce, track the stable release, and receive a summary of changes you will need to make quarterly, which will be much more managable for downstream users. Additionally, we are planning to build migration tools, particularly in advance of any dramatic breaking changes we will make, so ideally downstreams will be able to follow along with breaking changes with an automated or semi-automated migration tool before we make any big splashes.

So, that’s the plan. Hare 0.24.0 is out, so grab the code and enjoy!