3 Usage
P7MJ edited this page 2026-07-20 14:20:57 -04:00

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.