Skip to content
Warning:Contents are available for feedback and preview; practices and lexicons can still change. Implement at your own risk!

Versions are immutable release references. They associate an artifact manifest with a machine or human-usable name such as v1.0.0, 2026.10.13, or final-final-3.

rkey structure

Versions are intended to be easily accessible, so they use a syntax extending the software.release.project rkey structure. The version string must be in the record at software.release.version#version

The first part of the rkey is the project name, with the version itself present after a colon.

# If the rkey of the project looks like this...
dist-town

# ...Then version rkeys should look like this:
dist-town:v1.0.0
dist-town:v1.2.4-beta
dist-town:2026.10.13

Changelog

If you have a changelog available at version publishing time, you can specify it as the changelog using the software.release.version#changelog key. This enables you to attach any HTTP or AT URI to this version record.

Scheme enforcement

release.software is intentionally not prescriptive of any individual versioning scheme, as these are project and consumer-specific. Enforcement is similarly not a goal; however, we enable you to label the scheme that a project uses.

Here are some example versioning scheme records:

SemVer

{
  "$type": "software.release.versioningScheme",
  "name": "Semantic Versioning 2.0.0",
  "description": "MAJOR.MINOR.PATCH with optional prerelease, following SemVer 2.0.0 syntax and precedence. Build metadata with + characters are not supported due to ATProto record key limitations. A leading v is not part of a SemVer version. Dependency range syntax is outside this specification.",
  "specification": "https://semver.org/spec/v2.0.0.html"
}

ChronVer

{
  "$type": "software.release.versioningScheme",
  "name": "Chronological Versioning",
  "description": "ChronVer describes versions using YYYY.MM.DD[.CHANGESET][-FEATURE|-break]. This draft links to the current overview; a stable specification edition should be selected before publishing a canonical scheme record. Validation and comparison are consumer responsibilities.",
  "specification": "https://chronver.org/"
}