exoshell/docs/versioning.md
2026-06-10 04:42:53 -07:00

114 lines
2.1 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
just plainly mention the feature.
## 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.
Consider an interesting, cool sounding name.
## 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
* 0.9.0 summary-relay
* 0.10.0 search-relay
* 0.11.0 config-compass