Table of contents
Usage
P7MJ-Flavored Versioning can be applied to almost any project that needs a version name. The various rules of the naming convention is as follows:
🏗️ Structuring
A P7MJ-Flavored version is made of three components: Version, Subversion, Patch, and optionally a nickname. There are no specific rules to when one should increment the version numbers involved, but here are the general guidelines:
-
Version (X)
- The implementation of the project, represented by an uppercase English letter.
- This number changes only when a major change is introduced that completely changes the old project.
- Examples: major UI overhaul (like from TUI to GUI), a new mission and direction, from beta stage to official release, etc.
-
Subversion (N)
- The current stage of the version, represented by an Arabic numeral
- A small change in the project that improves or changes one or more aspect in the project significantly enough that it is more than a patch, but less than an entire overhaul.
- Examples: efficiency upgrade, minor UI change, new feature, improvement, or revision
-
Patch (R)
- The current small fix, represented by a lowercase Roman numeral
- A tiny change in the project that fixes a minor error or a bug, or does any change that is not significant enough be its own subversion.
- Examples: bug fix, typo correction, tiny help section revision
-
Nickname
- A name of endearment for a version, or a title that catches the "vibe" of the current update. It is a string.
- Usually for a Version or Subversion; However, there are no restrictions on when to make a new nickname.
- Examples: "Drones Fly Overhead"
Together, they form the X-N-R version. An example of a project that is at its first version, second subversion and sixth patch would have a version of A-2-vi. Some (but not most) projects use X-N versioning (like A-3), and in this case, the subversions likely double as patches.
🚩 Initial Version
The initial version, or the first versioned edition of the project, should almost always start with A-1-i. This symbolizes the absolute first version of a project.
The initial version does not have to be a complete project. However, it must have some significance. This can include a simple proof-of-concept or boilerplate code that lays the foundation for future edits. However, if it is overly simple or unfinished, it is recommended to name it A-0-i.
Sometimes the initial version can start with A-1. This is rare, and when encountered, usually means that the project is using X-N instead of X-N-R.
Sometimes, the initial version can be A-0-i. This means that it is an alpha/beta/experimental/testing version and not ready for usage.
⚠️ Quirks
The initial version usually starts with A-1-i. This is true even when there is technically no new patch or subversion created. This also means that a SemVer of 3.1.2 would technically translate to C-2-iii.