Questie

Questie

116M Downloads

[RFC] Versioning

Muehe opened this issue ยท 3 comments

commented

Request for comments: Versioning

Proposal

From now on, use the "semantic versioning" scheme as explained on https://semver.org/

Make the necessary changes to the build script.

Discussion

Following private discussions on Discord we already kind of keep to this versioning scheme, but the active developers never formally agreed on it. This issue is about gathering consent about using this versioning scheme officially and establish how we will apply it exactly.

For historic reasons, we currently use the MAJOR version number only for complete rewrites of Questie's code. This RFC proposes to drop this rule and instead use the MAJOR number as intended by semantic versioning. For example the upcoming "Questie Comms" feature that lets players see the quest progress of other players in their group will only work if both sides have the updated code. According to semantic versioning we should call that release 5.0.0 to indicate this, because our current version will be "API incompatible" with the new one.

Semantic versioning in the context of Questie

  1. MAJOR version when you make incompatible API changes
    • Any change that requires two or more players to have an updated version in order to work.
    • E.g.: Adding/updating QuestieComms feature.
  2. MINOR version when you add functionality in a backwards compatible manner
    • Any new feature, even if it's a minor one.
    • E.g.: Adding the "Show Quest IDs" option, that adds a quest ID behind quest titles.
  3. PATCH version when you make backwards compatible bug fixes
    • Any (hot-)fix that doesn't add new functionality.
    • E.g.: Fix a config option, add quest/spawn/etc. data.

In addition to the numbers, we will use the extension for beta releases. So the beta releases for the QuestieComms feature would be named 5.0.0.beta1, 5.0.0.beta2, etc.

Summons

Requesting opinions from @AeroScripts @Logonz @BreakBB

Of course anybody else can feel free to comment on this as well.

commented

I personally think major version shouldn't be tied to backwards compatibility between players, but instead the API it's self. comms is such a small portion of the addon overall, from the users perspective a protocol update isn't very significant, a major update should be

commented

As per discussion on Discord and the comment by Aero, here is the revised versioning scheme that we will use from now on:

Semantic versioning in the context of Questie

  1. MAJOR version when you make incompatible API changes
    • Any major new feature.
    • E.g.: Adding QuestieComms feature.
  2. MINOR version when you add functionality in a backwards compatible manner
    • Any minor new feature.
    • E.g.: Adding the "Show Quest IDs" option, that adds a quest ID behind quest titles.
  3. PATCH version when you make backwards compatible bug fixes
    • Any (hot-)fix that doesn't add new functionality.
    • E.g.: Fix a config option, add quest/spawn/etc. data.
commented

The version scheme explained in the comment above is now in use.