4 ms·
I loved this article - it is so my life. > I manage releases for a bunch of free & open-source software. Just about every time I ship a release, I find a novel
by nickcw 5y ago
I loved this article - it is so my life.
> I manage releases for a bunch of free & open-source software. Just about every time I ship a release, I find a novel way to fuck it up.
With rclone I have got nearly everything scripted now after 84 releases over 8 years, but I regularly mess up on other repos.
Releasing a feature branch is something I've done more than once, then merging the feature branch (with rebase) and wondering where on earth the previous version tag is - that is a particular favourite.
The main thing I've learnt from all these mistakes is to write a RELEASE.md in every repo with instructions on how to do the release.
You might only do a release every 6 months and you will have forgotten how to do it the next time.
Update the RELEASE.md and the release tools every time you mess up and at least you'll be learning from your mistakes!
- rand49an 5y agoYou're clearly doing something right, Rclone is a fantastic tool!
- samus 5y agoSomething similar happened to me recently: I updated all the pom.xml files to the correct version and then created the corresponding tag... in the wrong repository. Yes, wouldn't have happened with Git.
- kodah 5y agoA release.md is good for eliminating the bus factor, but it does not prevent errors.
- wildmanx 5y agoThe way out is to never do anything by hand. Always put it in your release script and run the script from an as-dirty-as-possible workspace. Whenever you do something manually, this manual process that exists as a kind of "virtual script" in your head gets out of sync with the script that you have on disk. The article describes the continuous struggle to keep those two in sync. By only having the one on disk, that struggle goes away.