software.release.defs

Details · defs
Kinddefs
Authorityrelease.software
Indexed

#blobArtifact

object

A named downloadable file stored as a blob in the manifest publisher's PDS. Consumers MUST verify downloaded bytes against the blob CID. Target metadata is optional and describes coarse runtime compatibility, not installation instructions.

Properties

blob

requiredblob

The artifact bytes. The blob reference supplies the content CID, MIME type, and size. No artifact-specific size limit is imposed; hosting services may impose their own limits.

  • accept: */*

fileName

requiredstring

Suggested download filename, not a path. MUST NOT contain slashes, backslashes, or control characters, and MUST NOT be dot or dot-dot. Consumers MUST handle it as untrusted input and ensure it is safe for the destination filesystem. Filenames do not define target compatibility.

  • minLength: 1
  • maxLength: 255

Typed ecosystem-specific metadata fragments. Metadata supplements core artifact fields and MUST NOT override or contradict them. Consumers may display or offer downloads of artifacts with unknown fragment types, but MUST NOT assume those fragments impose no additional requirements for automated installation. Unknown fragment types do not establish compatibility or suitability for automated installation.

itemsunion
One of

Intended runtime target. Omission means compatibility is unspecified, not universal.

Reference

#gitCommit

object

Properties

algorithm

requiredstring

Git object hash algorithm. Consumers must report unsupported algorithms rather than treating the input as verified.

  • minLength: 1
  • knownValues: sha1 | sha256

digest

requiredstring

Full lowercase hexadecimal commit object ID, never abbreviated. Exactly 40 characters for sha1 or 64 for sha256. This hashes the Git commit object, not the source archive bytes.

  • minLength: 1

#gitRepository

object

A project's Git source location, independent of any particular forge. This describes development sources rather than a pinned release input.

Properties

directory

string

Repository-relative directory using slash separators. No leading or trailing slash, backslashes, empty segments, or dot or dot-dot segments. Omit for the repository root.

  • minLength: 1

ref

string

Fully qualified Git ref, such as refs/heads/main. Must satisfy Git ref syntax. May move over time.

repository

requiredstring · uri

Cloneable repository URI, such as an HTTPS or ssh:// clone URI, not an arbitrary forge page. Git's scp-like shorthand is not a URI.

#gitRevision

object

A pinned Git source input for a release. The commit is authoritative; an optional ref supplies context only.

Properties

commit

requiredref
Reference

directory

string

Repository-relative directory using slash separators. No leading or trailing slash, backslashes, empty segments, or dot or dot-dot segments. Omit for the repository root.

  • minLength: 1

ref

string

Fully qualified Git ref, such as refs/tags/v1.2.3. Must satisfy Git ref syntax. This is descriptive context and never overrides the pinned commit.

repository

requiredstring · uri

Cloneable repository URI, not an arbitrary forge page. Git's scp-like shorthand is not a URI.

#target

object

Coarse runtime compatibility for an artifact, not its build host. This is not a complete compatibility guarantee: OS versions, ABI, libc, and CPU features may impose additional requirements. Unknown values MUST NOT be treated as compatibility matches by consumers that do not understand them.

Properties

Supported runtime CPU architectures, with no duplicates. Each entry is an alternative supported architecture, not a simultaneous requirement. Architecture identifiers follow Go GOARCH naming as adopted by the OCI Image Specification's platform.architecture field (https://github.com/opencontainers/image-spec/blob/v1.0.2/image-index.md). Publishers SHOULD use canonical identifiers where applicable, such as amd64, arm64, and 386 rather than x86_64, aarch64, and x86. Omission means unspecified, not architecture-independent.

  • minLength: 1
itemsstring
  • minLength: 1
  • knownValues: amd64 | arm64 | 386

os

string

Intended runtime operating system. Use canonical known values where applicable, such as macos rather than darwin. Omission means unspecified, not support for every OS.

  • minLength: 1
  • knownValues: linux | macos | windows | android | ios

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A container image manifest following OCI specification, stored in ATProto

  • An immutable collection of release artifacts. Written once and never updated: all facts (artifact digests, sizes, locations) are fixed at creation. Lifecycle changes use software.release.status records and software.release.channel moves. Any update to an existing release record is treated by indexers as a probable-compromise signal. Valid only when this record's DID matches the referenced project's DID.