At the 2017 Members Assembly, a proposal passed to amend the IATI upgrade process. Here’s the relevant paper (paper 10). Much of the text from this paper is now used to describe the upgrade process on the IATI website. However, the following line is missing:
a. The standard will adopt the widely-adopted Semantic Versioning specification.
Can I suggest this line be added to the opening paragraph of the upgrade process page on the IATI website.
The decision to adopt the semantic versioning specification at the 2017 MA was an important one. Semantic versioning provides a clear definition of what is and is not allowed to be changed at different types of upgrade, acting as a contract between the maintainer (in this case the secretariat) and the user.
The rest of the copy in paper 10 (and repeated on the IATI website) provides example of what can be included in different types of upgrade, but strict rules are not provided. For example, contrast clause 7 from the semantic versioning specification:
Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API.
…with the equivalent text on the upgrade process page:
Minor (previously decimal) upgrades can cover changes that are optional and backwardly compatible.
The way the upgrade process is currently described, non-backwardly compatible changes can be introduced as part of a patch change, which wouldn’t require approval from the governing board or the members’ assembly.