|
| 1 | +<?xml version="1.1" encoding="UTF-8" ?> |
| 2 | +<efp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../efp.xsd" |
| 3 | + efp="" created="2026-03-21" category="standard" status="draft" title="Compact Staged Versioning"> |
| 4 | + <metadata> |
| 5 | + <pullRequests> |
| 6 | + <pullRequest id="20"/> |
| 7 | + </pullRequests> |
| 8 | + </metadata> |
| 9 | + <body> |
| 10 | + <section title="Introduction"> |
| 11 | + <content> |
| 12 | + <p> |
| 13 | + This versioning system is suitable for a major end product consisting several versioned systems. |
| 14 | + This refers to Semantic Versioning (SemVer) for basic reference. |
| 15 | + In certain scenarios, it may be difficult to version an end product when underlying components |
| 16 | + evolve in different extents and directions, so this basic methodology is introduced. |
| 17 | + </p> |
| 18 | + </content> |
| 19 | + </section> |
| 20 | + <section title="Basics"> |
| 21 | + <content> |
| 22 | + <p> |
| 23 | + Version string format is as below: |
| 24 | + </p> |
| 25 | + <code-block lang="ANBF"> |
| 26 | + version = <stage> "." <major> "." <minor> |
| 27 | + stage = "0" / "1" |
| 28 | + major = number |
| 29 | + minor = number |
| 30 | + number = *<positive-digit> <digit> |
| 31 | + positive-digit = %x31-39 ; 1-9 |
| 32 | + digit = %x30-39 ; 0-9 |
| 33 | + </code-block> |
| 34 | + <p> |
| 35 | + For <code>stage</code>, zero ("0") means Early Development and one ("1") means Mature State. |
| 36 | + For <code>major</code>, frequent incrementation would be expected with breaking changes often occurring. |
| 37 | + For <code>minor</code>, insignificant miscellaneous changes may instead increment this value, |
| 38 | + but not any breaking changes should be included while patches are often included here. |
| 39 | + </p> |
| 40 | + </content> |
| 41 | + </section> |
| 42 | + <section title="Extension"> |
| 43 | + <content> |
| 44 | + <p> |
| 45 | + Implementers may extend this string format in any way meaningful for their purposes. |
| 46 | + This includes allowing pre-releases or snapshots, or branched releases. |
| 47 | + Extending this basic Rule by the pre-release version rules defined in SemVer is also compatible. |
| 48 | + </p> |
| 49 | + <p> |
| 50 | + Often, in Early Development, zero <code>major</code> may mean Alpha stage of development while |
| 51 | + non-zero values may imply Beta stage of development. In this case, when <code>major</code> is zero, |
| 52 | + <code>minor</code> may include breaking changes as this stage implies unstabilities. |
| 53 | + </p> |
| 54 | + </content> |
| 55 | + </section> |
| 56 | + <section title="See also"> |
| 57 | + <content> |
| 58 | + <list> |
| 59 | + <li><a href="https://semver.org/spec/v2.0.0.html">SemVer v2.0.0</a></li> |
| 60 | + </list> |
| 61 | + </content> |
| 62 | + </section> |
| 63 | + </body> |
| 64 | +</efp> |
0 commit comments