Keeping releases in sync

As a package developer, I regularly send material to CTAN. Once my code gets uploaded, there is not much I can do about it spreading around the world. There’s always a slight delay in the various CTAN mirrors picking up new material, while the code only changes TeX Live and MiKTeX once the maintainers of those systems spot the CTAN changes.

For a single package upload, that process simply means a little bit of a delay between me saying that something is fixed and everyone being able to use it. However, where there are linked changes in more than one package then life gets a bit more complicated. A classic situation is siunitx, which uses the LaTeX3 programming environment. I do the releases for LaTeX3 so if there is an issue which needs a change in both siunitx and the LaTeX3 code both get updated on CTAN at the same time. However, it’s not unknown for TeX Live or MiKTeX to pick up only one change initially, leading to issues for end users. That’s a pain, but there is little I can do about it as I don’t control that process.

Registering expl3 module

Namespace management in TeX is a co-operative affair: we all share one space, so conventions such as \my@clever@macro are important. For LaTeX2e work, this has always been done on a very informal basis: look around and find a space! For LaTeX3, it seems like a good idea to make things a little bit more ordered. We’ve therefore set up a simple flat-file prefix register, which will track all of the prefixes in use in expl3 code (provided people tell us, of course).