exoshell/docs/versioning.md
K. Hodges a4769580b0 Phase 2 work
Added /keys and /help keys through src/keybindings.rs, wired into src/app.rs and src/repl.rs. It documents key actions and explicit slash-command fallbacks for copy, explain, discard, context, and stance without adding a premature TUI dependency.
2026-06-08 03:36:31 -07:00

106 lines
1.9 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