Forum OpenACS Development: Version numbering to avoid clash between HEAD and branches

Hi all,

I'd like to propose a convention for version numbering for packages that are not in core (forums, calendar, etc.).

The intention is to avoid situation like the following example:

- a bug for mypackage is fixed on the branch, the fix needs an upgrade so the version is bumped from version 0.5d5 to 0.5d6 and the corresponding upgrade script is added

- development of new features for mypackage is taking place on HEAD and new features need upgrade scripts. The version is bumped to 0.5d6 and the corresponding upgrade script is added.

We now have 2 upgrade scripts and/or upgrade callback with the same reference but different content. Even if the content is merged when the branch is merged back to HEAD, an user who has upgraded from the branch will miss the upgrade added on HEAD.

The only way I can think about to avoid this situation is to bump the version number on HEAD before starting to work on the code. So if the version number on the latest branch is 0.5d5, the version on HEAD would be bumped to 0.6d1 (or 0.6d2 if an upgrade script is added).

What do you think?

Maybe we could use a simple convention, on head, version numbers are development, and on branch: alpha, beta and/or final. That way, implies more work to change version numbers on branching or merging, but it could be clear to make an script from 0.5d5 to 0.5d6 and from 0.5d5 to 0.5a2 (or whatever 0.5a*)
For xowiki/xotcl-core, we use on the release branch an additional level of version numbers. For example, the version of xowiki in the stable branch is currently 0.60.6, and is a derivative of 0.60 of the development path. Since the versions 0.60.1 ... 0.60.6 are fixes (that are supposed to show up on download from repository), the "b" or "d" suffixes don't look right in this case.