Skill Based Versioning 1.0.2

A superset of Semantic Versioning 2.0.0

1.0.2

Summary

Given a version number MAJOR.MINOR.PATCH, and building on all rules of Semantic Versioning (SemVer) 2.0.0:

Skill Based Versioning (SBVer) introduces a Perfection Sentinel at 1.3.37. Once a project reaches 1.3.37, the version SHOULD be considered final. Any release after 1.3.37 is DISHONORABLE and MUST encode the number of postsentinel releases:

Note: There MAY be cases where patches are made after 1.3.37, but such releases MUST be noted as DISHONORABLE.

Introduction

SBVer addresses the pressure to keep iterating after a project reaches its projected perfection point. It preserves full SemVer compatibility while adding a clear, auditable signal for postsentinel releases. By standardizing these signals, consumers can reason about stability while maintainers communicate how often the project has surpassed its “final” state at 1.3.37.

Key words

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

This document also uses the word “DISHONORABLE”:

Skill Based Versioning Specification (SBVer)

1. Baseline

2. Normal version format

3. Immutability

4. Perfection Sentinel

5. Post-sentinel encoding rules (DISHONORABLE releases)

  1. Post-sentinel PATCH (hotfix)
    • The PATCH field MUST be formed by inserting one additional 3 immediately before the trailing 7 for each additional hotfix after 1.3.37.
    • Sequence (PATCH): 37 (sentinel baseline) → 337333733337 → …
    • Examples: 1.3.337, 1.3.3337.
  2. Post-sentinel MINOR
    • The MINOR field MUST append one additional trailing 3 for each postsentinel MINOR release.
    • Upon a postsentinel MINOR, PATCH MUST be set to 7.
    • Sequence (MINOR): 3 (sentinel baseline) → 333333333 → …
    • Examples: 1.33.7, 1.333.7.
  3. Post-sentinel MAJOR
    • After 1.3.37, MAJOR version increments MUST NOT occur. If a breaking change is unavoidable, the project SHOULD fork under a new name or major line. If the original line must continue, the change MUST be released as a DISHONORABLE MINOR with appropriate deprecation and migration guidance.

6. Counting DISHONORABLE releases

7. Pre-release and build metadata

8. Precedence

9. Validity constraints

10. Shame (reviewer metric)

Examples

Approaching perfection

Postsentinel hotfixes (DISHONORABLE)

Postsentinel MINOR additions (more DISHONORABLE)

Mixed sequence

Pre-release/build

Suggested regular expressions (illustrative)

FAQ

Can we keep developing after 1.3.37?

You MAY, but all such releases are DISHONORABLE and MUST follow the encoding rules. You SHOULD minimize them.

Why not just bump MAJOR after 1.3.37?

SBVer treats 1.3.37 as final; MAJOR increments after this point violate that finality and are disallowed. Fork instead or use DISHONORABLE MINOR with deprecations.

Do pre-release and build tags change any SBVer meaning?

No. They behave as in SemVer and do not affect the dishonor count.

Is SBVer compatible with SemVer tooling?

Yes. All versions remain MAJOR.MINOR.PATCH with numeric fields and follow SemVer precedence. Existing SemVer tooling will parse and compare correctly.

My project manager tells me I need to ship a MAJOR or else I'm fired, what should I do?

Consider the fact that jobs are temporary, git tagged shame is eternal.

I just saw a project which is 7 years old on version v1.3.37, aren't stale projects bad?

No, much like the horseshoe creb a project on v1.3.37 is very much usable and has simply achieved Perfection Sentinel.

There's a security flaw in my project on v1.3.37, should I break Prefection Sentinel?

Yes. Your project does not seem very perfect.

The underlying language/package/library changed, surely it's not my fault I bump versions for them breaking the API?

It is. Consider only depending on projects which use Skillbased Versioning.

I have some thoughts on improvements before Skillbased Versioning reaches Perfect Sentinel, how can I contribute?

Please submit issues on github.

License

This suggestion is intended to be used alongside the Semantic Versioning specification (CC BY 3.0).