exoshell/docs/versioning.md
2026-06-05 01:54:01 -07:00

1.9 KiB

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:

-

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