The content of this post may be obvious to most of you (as it was to me), but as it turns out knowing something and doing it are not the same.
There are a couple of things a developer knows that are not right, but still does them sometimes. In the release process I’d point out a few:
- No last minute changes
- No last minute updates to third party libraries
- Release a version that has gone through a full set of tests
- No porting of features from the latest development branch
To be honest (and ashamed) I broke a few, which (no surprise there) led to somewhat chaotic actions during the release. In the end, it all worked out, but this could be easily avoided.
So in order not to make the same mistake twice, I made a resolution: “I will not release anything that hadn’t been laying unmodified for a couple of days”. Tested – always, but no modifications. If modifications are required, postpone the release. I can of course imagine a couple of situations in which this is not possible, but hey, it’s not like I’m carving letters in stone.