exoshell/docs/versioning.md

110 lines
2.0 KiB
Markdown

Exoshell uses Semantic Versioning (SemVer) for all machine-readable version numbers.
Version numbers follow:
MAJOR.MINOR.PATCH
Examples:
0.1.0
0.3.3
1.0.0
The numeric version is the authoritative version used by Cargo, Git tags, releases, package managers, automation, and compatibility decisions.
## Release Codenames
Each release also receives a human-readable codename.
Codenames exist for display purposes only and have no semantic meaning. They do not indicate compatibility, stability, feature scope, or release type.
Example display:
Exoshell v0.3.3
codename: packet-goblin
or:
Exoshell 0.3.3 "Packet Goblin"
The codename should be shown in the UI wherever version information is displayed.
## Codename Generation
Release codenames should be generated using a constrained naming scheme.
Recommended format:
<tech-term>-<artifact>
Example tech terms:
kernel
packet
daemon
socket
cache
cipher
terminal
process
satellite
router
Example artifacts:
goblin
wizard
familiar
relic
oracle
ghost
hotdog
cult
seance
rat-king
The lists above are examples only.
Future releases may introduce additional terms as long as they remain consistent with the project's tone.
## Codename Rules
A codename must:
be lowercase
use hyphens as separators
be safe for public display
be memorable
be mildly absurd
be unique across all releases
A codename must not:
contain version numbers
imply compatibility guarantees
contain offensive or discriminatory language
be reused
## Naming Guidance
When creating a release:
Increment the semantic version according to SemVer rules.
Generate a new codename.
Verify that the codename has not been used previously.
Add the codename to release notes and changelog entries.
Preserve existing codenames in project history.
## Historical Codenames
Historical codenames should be tracked in docs/versioning.md below
* 0.1.0 packet-kobold
* 0.2.0 context-relic
* 0.3.0 stance-lantern
* 0.4.0 switchboard-relic
* 0.5.0 branch-oracle
* 0.6.0 status-satellite
* 0.7.0 diff-lantern
* 0.8.0 commit-oracle