software.release.defs
Details · defs
| Kind | defs |
|---|---|
| Authority | release.software |
| Indexed |
#blobArtifact
objectA 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
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: */*
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: 1maxLength: 255
metadata
arrayTyped 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.
#gitCommit
objectProperties
Git object hash algorithm. Consumers must report unsupported algorithms rather than treating the input as verified.
minLength: 1knownValues: sha1 | sha256
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
objectA project's Git source location, independent of any particular forge. This describes development sources rather than a pinned release input.
Properties
directory
stringRepository-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
stringFully qualified Git ref, such as refs/heads/main. Must satisfy Git ref syntax. May move over time.
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
objectA pinned Git source input for a release. The commit is authoritative; an optional ref supplies context only.
Properties
directory
stringRepository-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
stringFully 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.
Cloneable repository URI, not an arbitrary forge page. Git's scp-like shorthand is not a URI.
#target
objectCoarse 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
architectures
arraySupported 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
minLength: 1knownValues: amd64 | arm64 | 386
os
stringIntended runtime operating system. Use canonical known values where applicable, such as macos rather than darwin. Omission means unspecified, not support for every OS.
minLength: 1knownValues: linux | macos | windows | android | ios
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
io.atcr.manifest
recordA container image manifest following OCI specification, stored in ATProto
-
software.release.manifest
recordAn 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.