← Back to News page

What to Expect from Release Month

January 17, 2025

Hey everyone,

We've been relatively quiet over here at the Zig Software Foundation for a few months now and so it's about time to give y'all an update.

To be honest, these quiet times are my personal favorite - when the release pressure is off, there are no upcoming conferences, and there are long stretches of uninterrupted coding on big projects - the ones that require full and undivided attention for days or weeks in a row. Lately I found some lovely trance music compilation albums as well as tearing through Infected Mushroom's entire catalogue, and it's been pure bliss.

Personally, I've taken on Zig's linker code since Jakub decided to move on to other things. Loris has been working on a book, Jacob has been rewriting the x86 backend, and Veikka has been plugging away at an official translate-c package that uses Aro rather than Clang. Matthew has been doing more directly visible work, making language enhancements, frontend bug fixes, as well as working steadily towards incremental compilation. We also have a new Zig core team member, who deserves his own news announcement, to follow shortly.

As satisfying as it is to work on bigger subprojects, it's time to cut a release.

Previously, I made an estimate of January 1st for the 0.14.0 tag. That estimate was based on waiting until all the LLVM bug fix patches are done, so that we don't have to cut our own bug fix releases in response to LLVM. That deadline slipped by mainly because I was caught up in a rather large branch I wanted to finish, however, LLVM ended up making a January 14th 19.1.7 release, which is expected to be their last one in the series, so turns out we are right on schedule.

Anyway, I am now setting a hard deadline of February 17th for the 0.14.0 tag. That gives us one month to do Quality Assurance for the release. During this time I expect to shelf bigger goals, instead focusing on the Pull Request queue, which has admittedly been a bit neglected recently, as well as triaging all the open issues and putting together a realistic set of priorities to get finished before the cutoff.

One of the big pushes this release cycle was improving the x86 backend enough to become the default for debug builds. Whether this will be accomplished by the release or not is yet to be determined. It's not out of the question, but we can't promise it either.

Another one was incremental compilation, which will not be enabled by default for the release due to lack of robust testing, however it is well within beta-testing quality, so there is a compiler flag to opt in and try it out. More details about that to come in the release notes.

Apart from those major goals, this release is nothing to sneeze at. There have been a steady stream of notable language enhancements, such as labeled switch continue. Furthermore, Alex has poured a ton of effort into Zig's support table, so you can expect nearly every target to move up a tier.

If you have a Zig project that is pinned on Zig 0.13.0, now is a great time to upgrade to the latest master branch release. Our goal during Release Month is to ensure everyone gets a smooth upgrade, so if that is not the case for you, please speak up!

I know people are itching for a 1.0 tag, but there is still much to do before the project is ready for such a commitment. Instead, I would like to offer progressively more and more stable releases, to the point where people feel comfortable using them, knowing there may still be some migration needed with successive releases.

Happy hacking,

Andrew