at.happyproto.registry.promoteRelease
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Publish an existing version's artifact under a new version, such as `1.2.0-rc.1` as `1.2.0`, without uploading it again. The new software.release.version points at the existing manifest. Optionally moves a channel to it and adds a changelog.",
"errors": [
{
"description": "The caller's identity could not be determined, so there is no repo to write to.",
"name": "AuthRequired"
},
{
"description": "The registry has no identity configured. An operator problem, not a caller's.",
"name": "NotConfigured"
},
{
"description": "The input breaks a rule the registry applies, so it would refuse the records. The message names the field.",
"name": "InvalidRecord"
},
{
"description": "A record could not be written to the caller's repo. Records written before the failure stay, and the same call can be made again.",
"name": "Upstream"
},
{
"description": "The caller has no project of that name, or the registry has not indexed its at.happyproto.registry.project record. Call putProject first.",
"name": "ProjectMissing"
},
{
"description": "fromVersion is not an indexed version of the caller's project.",
"name": "VersionNotFound"
},
{
"description": "The new version is already published. A version never changes once published.",
"name": "VersionExists"
},
{
"description": "track was given, but the project is unavailable or retired, so a channel cannot point at the new version.",
"name": "NotInstallable"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"changelog": {
"description": "Release notes as CommonMark. The registry writes them to the caller's repo as a site.standard.document and links it from the version.",
"maxGraphemes": 20000,
"maxLength": 200000,
"type": "string"
},
"fromVersion": {
"description": "The published version whose manifest the new version reuses.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"name": {
"description": "The project's name, which is the record key of its software.release.project: 1 to 64 lowercase letters, digits and interior hyphens.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"track": {
"description": "A channel to move to the new version. No channel moves when absent.",
"knownValues": [
"latest",
"beta",
"alpha"
],
"type": "string"
},
"version": {
"description": "The new version.",
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"fromVersion",
"version"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"changelog": {
"description": "The changelog's site.standard.document, when a changelog was given.",
"ref": "at.happyproto.registry.defs#ref",
"type": "ref"
},
"channel": {
"description": "The software.release.channel, when track was given.",
"ref": "at.happyproto.registry.defs#ref",
"type": "ref"
},
"resumed": {
"description": "True when the new version already existed on the same manifest, so this call only finished what an earlier one started.",
"type": "boolean"
},
"version": {
"description": "The new software.release.version.",
"ref": "at.happyproto.registry.defs#ref",
"type": "ref"
}
},
"required": [
"version"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "at.happyproto.registry.promoteRelease",
"lexicon": 1
}
Metadata
- DID
-
did:plc:mo7vq4jbioxwafy5zkcc3eux - CID
-
bafyreihy7ocnnbqyjmnhmdqc5x7ksb6c3i5nzxvctp6l3slutigrrxnteq - Indexed At
- 2026-10-26 21:34 UTC
- AT-URI
-
at://did:plc:mo7vq4jbioxwafy5zkcc3eux/com.atproto.lexicon.schema/at.happyproto.registry.promoteRelease
Referenced Schemas (1)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
at.happyproto.registry.publishRelease procedure
Publish a version of a plugin to the caller's repo. Writes a software.release.manifest carrying the artifact, the changelog as a site.standard.document when one is given, the software.release.version, and the channel na…
-
at.happyproto.registry.retryRelease procedure
Copy a pending release's artifact again. A release is listed only once the registry has copied its artifact, which it tries once when it first indexes the release; this is how the release's publisher tries again after t…