There’s a simpler version Dave Winer used at UserLand: No breakage. Basically, don’t change something so that what ran in an older version of your software no longer runs in the new version.
Which is something I feel a lot about.
And which I am reminded of since I am using a lot of tools on my computer that get updated by other people and turn out to have subtle changes.
Just recently I updated ffmpeg and found that my scripts failed with mysterious error messages. The reason? When you use filelists, the paths in such a list are no longer relative to your current directory but to the directory of the filelist. The error message is simply that the files cannot be found.
The not-so-subtle change with ImageMagick regarding colorspaces is not documented unless you are really looking. In version 6.7.6-4 the RGB and sRGB values were swapped, and then again om version 6.7.8-3 they were swapped back. Yes, those version are ancient. Yet, sometimes, you end up using a machine or a package that have versions that are affected. I understand that you can see this as a temporary bug that was fixed but not if you read the changelog.