I have seen this a few times this week, so I thought I would make a plea to free software producing projects:

Please don’t re-release some version of your software with changes without changing the version number too.

If you do this, it means your users will not be easily sure what they have. Do they have the initial release? Or do they have a later release with some additional, and likely undocumented changes. If they report a bug to you, it could well be those “last minute” changes caused it. Or fixed it. You can’t tell without resorting to checksums.

You also cause problems for distributions that package your software. If they build and distribute the first release, then push out the second release with the same version they often will need to mess with their build systems and such to ‘rebuild’ the same version of something with a different source.

Often when projects do this they also make some amount of small changes, but since there has already been an announcement and updates to ChangeLogs and NEWS files, these ‘last minute’ changes actually are things only those people who comb through the source code control will ever know about. Additionally such ‘last minute’ changes often bypass testing and checks, which can actually lead to breaking things rather than fixing them.

If you often do this sort of thing it can also lead to decreased security as your users don’t bother checking checksums, or just assuming you made another ‘behind the back’ update of the release when it was an attacker doing so.

If you find some horrible last minute bug or issue that makes you think you have to fix it asap, please just do another release. Its the transparent, sane thing to do. Once a release is made, it’s done and history and shouldn’t be changed.