at.happyproto.registry.promoteRelease

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.

Repository @happyproto.at did:plc:mo7vq4jbioxwafy5zkcc3eux namespace authority
Details · procedure
Kindprocedure
Authorityregistry.happyproto.at
Indexed

Showing version bafyreihy7ocnnbqyjmnhmdqc5x7ksb6c3i5nzxvctp6l3slutigrrxnteq. Show the latest

Procedure

procedure · POST

Input

application/json

changelog

string

Release notes as CommonMark. The registry writes them to the caller's repo as a site.standard.document and links it from the version.

  • maxLength: 200000
  • maxGraphemes: 20000

fromVersion

requiredstring

The published version whose manifest the new version reuses.

  • minLength: 1
  • maxLength: 64

name

requiredstring

The project's name, which is the record key of its software.release.project: 1 to 64 lowercase letters, digits and interior hyphens.

  • minLength: 1
  • maxLength: 64

track

string

A channel to move to the new version. No channel moves when absent.

  • knownValues: latest | beta | alpha

version

requiredstring

The new version.

  • minLength: 1
  • maxLength: 64

Output

application/json

The changelog's site.standard.document, when a changelog was given.

The software.release.channel, when track was given.

resumed

boolean

True when the new version already existed on the same manifest, so this call only finished what an earlier one started.

version

requiredref

The new software.release.version.

Errors

AuthRequired

The caller's identity could not be determined, so there is no repo to write to.

NotConfigured

The registry has no identity configured. An operator problem, not a caller's.

InvalidRecord

The input breaks a rule the registry applies, so it would refuse the records. The message names the field.

Upstream

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.

ProjectMissing

The caller has no project of that name, or the registry has not indexed its at.happyproto.registry.project record. Call putProject first.

VersionNotFound

fromVersion is not an indexed version of the caller's project.

VersionExists

The new version is already published. A version never changes once published.

NotInstallable

track was given, but the project is unavailable or retired, so a channel cannot point at the new version.

Similar lexicons

semantic match

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

  • 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 named by track, moved to the new version, in that order. A record is written only once everything it points at exists, so a failure part-way leaves no dangling reference. Calling again with the same input after such a failure finishes the release rather than refusing it.

  • 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 that copy failed. An active release is answered as it is, with nothing enqueued.