Sometimes making a release of a software makes it used, and people come with bug reports and suggestion for improvements and the end result is that you make a lot more releases very quickly.
I wrote Pyroma, a module to check the quality of your Python modules packaging, just before PyCon 2011, and during the sprint I extended it to be more useful. It didn’t get a lot of attention so that was it. I run it from time to time on my own packages, to make sure they are OK.
Then, yesterday, almost two years later, I decided to run it on Hovercraft! to make sure the package data was good. But since I’ve developed Hovercraft! primarily using Python 3.3, and I never even ran Pyroma under Python 3.3, so I decide to first make sure the tests for Pyroma run. They don’t. This turns out to be just testing-errors, but still. I fix the tests and decide to release 1.0. It has after all been stable for two years. Mostly because only I used it.
Well, this time it got re-tweeted a bit, and it immediately turns out it doesn’t work with Twisted. I add some support for that use case and release 1.1 just hours later.
More tweets shows up check-manifest, a new package from Marius Gedminas that checks that the files specified by MANIFEST.in matches the ones checked into the VCS, which is usually what you want. Someone says that the release software zest.releaser should do these checks. Turns out zest.releaser has hooks for that, and Marius adds check-manifest to them, so when you now call fullrelease, check-manifest is called. Well, that’s a great idea, so I now add a hook for pyroma as well! And 1.2 gets released, just the day after 1.0 and 1.1. Well, it happens.
Anyway, the end result of this frenzy is quite nice. If you now install zest.releaser, check-manifest and pyroma, you get a triple whammy of:
1. A software that will make releases quick and painless.
2. A check that your MANIFEST.in file is correct before the release is done.
3. A check that the release-tag will have sane metadata before uploading to PyPI.
All by just typing “fullrelease” and pressing enter a couple of times.
Well, I like it.
Filed under: plone, python Tagged: distribution, packaging
