-
-
Notifications
You must be signed in to change notification settings - Fork 120
Version numbering
Cong edited this page May 16, 2013
·
4 revisions
C-Dogs SDL uses four numbers separated by periods, with trailing zeros omitted. Conform to Semantic Versioning where possible.
<zero>.<major>.<minor>.<patch>
Not sure when this will ever change to 1. An alternative is to drop the zero and shift all numbers up.
- Backwards-incompatible features
- Major changes in gameplay
- Backwards-compatible features
- Minor changes in gameplay
- Changes in non-gameplay aspects
- Backwards-compatible bug fixes
- Changes in non-gameplay aspects that are rarely used, or affect small portion of users
There's a lot of gray area in what constitutes a major/minor/patch, plus other issues not covered. Here's a list:
- Don't skip numbers
- Numbers don't flow over or have an upper limit; e.g. 0.11.93 is perfectly valid, and is before 0.12 and after 0.2
- Don't "version match" some other product
- For ports, if there are zero changes to the existing packages, no new version is necessary. In practice this is very rare; ports usually entail at least trivial changes to common code, so the patch number should be incremented.
- The significance of features should be judged from the perspective of users, not developers.
- What about major, backwards-incompatible changes to non-gameplay features? E.g. breaking the config, breaking file formats, completely new menu system. Technically these warrant a major version increment, but these changes should be avoided, and made backwards-compatible where possible. Try to avoid unless absolutely necessary.
- Only increment one number per release. E.g. do not go from 0.5 to 0.6.1.