E macsAir

Collecting frequent-committer miles

I am excited to announce new releases of many of my lesser packages, i.e. many of my packages that are not Magit.

While working on these releases it turned out that I would have to ask for a new release of one of the third-party packages some of them depend on. While waiting for that to happen, I passed the time by sprinkling some general remarks about releases of Emacs packages across this set of release announcement. It was the topic on my mind.

Some of the below releases should probably have been announced separately but I don’t have the time for that right now.

Ghub v3.0.0

This prepares for the initial release of the forge package, an important extension to magit.

Closql v1.0.0

This library was written for epkg. The upcoming forge package, an important extension to magit, also uses it. This release, v1.0.0 none the less, removes the scary “don’t you dare use this yourself” comment but I continue to consider it an internal library and there still is no documentation.

Epkg v3.1.1

Nothing interesting here. In the process of making closql useful for forge, I made an incompatible change that makes it necessary to adjust epkg.

Borg v3.0.0

Emir v2.1.0

With-Editor v2.8.0

Hl-Todo v2.0.0

Hl-Todo v2.1.0

Yes, on the same day as v2.0.0. While working on this blog post I realized that I want TODO keywords to be highlighted in markdown-mode buffers too, so:

As a side-note; please consider releasing your own packages more frequently.

Sure, there is always one last feature that you want to implement before creating a new release and every time you create a release someone shows up with a pull-request the next day. But those are not good reasons not to release.

You might even want to create a new release if all commits since the last release are rather insignificant. You certainly don’t want to create a release for every typo fix, but if half a dozen commits have been sitting on master for a year, why not bump the subminor part of the version number?

For example:

No-Littering v0.5.15

On the other hand you also want to release v1.0.0 at some point. There is never a perfect time unless you do a sprint to implement all those features you wanted to implement before doing so.

Apparently too few maintainers ever find the time for that. While 24% of all packages on the Emacsmirror are stuck on v0.* only 12% are at v1.* and only 8% at >= v2.*. (The 55% that didn’t bother to ever tag any release at all are arguably a much bigger problem though, but that will be the subject of another post.)

So if the perfect time for v1 never comes, then you might as well do it when the opportunity presents itself.

For example:

No-Littering v1.0.0

Sure, one day I will go back and make it much better and everything. But the thing is this package does what it is supposed to do right now. It is “done”. So lets call it v1.0.0.

Elx v1.2.5



The following packages were created this year. It is too early to tell whether I will act on my ideas on how they could be further improved any time soon or whether it turns out that they are good enough and that those additional features I was thinking about don’t actually sound all that useful anymore to make it necessary to implement them before v1.

It might happen that after a year I still intend to implement those additional features but still haven’t gotten around to actually do so. By that time those packages, while not be “done”, but they will have proven themselves anyway, so I will tag v1.0.0. But for now I give them some time to mature before that big step. While I think v1 should come earlier than it usually does, I also don’t think it should happen as soon as things work properly for the first time.

Moody v0.4.0

Minions v0.3.1



Oh, and I almost forgot. Yesterday I released two completely new packages:

Outline-Minor-Faces v0.1.0

Unlike outline-mode, outline-minor-mode does not change the appearance of headings to look different from comments.

This package defines the faces outline-minor-N, which inherit from the respective outline-N faces used in outline-mode and arranges for them to be used in outline-minor-mode.

Backline v0.1.0

An outline heading does not extend to the right edge of the window when its body is collapsed. This is unfortuante when the used face sets the background color or another property that is “visible on whitespace”. This package adds an overlay to extend the heading’s appearance all the way to the right window edge.