full diff

at.happyproto.registry.publishRelease

happyproto.at +4 −0
From
bafyreidl4d7esaksxsycrzq54g5rtyf5ofjczmjyt6h72bwjjihyf4mare indexed 2026-10-26 21:34 UTC View this version
To
bafyreiccjd6dykih6i6yj2heb6jyzceinjqv7ibyxpkqxzso5ejg3v34pq indexed 2026-11-01 21:46 UTC View this version

Compatibility

backward compatible No changes detected.

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "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.",
66 "errors": [
77 {
88 "description": "The caller's identity could not be determined, so there is no repo to write to.",
99 "name": "AuthRequired"
1010 },
1111 {
1212 "description": "The registry has no identity configured. An operator problem, not a caller's.",
1313 "name": "NotConfigured"
1414 },
1515 {
1616 "description": "The input breaks a rule the registry applies, so it would refuse the records. The message names the field.",
1717 "name": "InvalidRecord"
1818 },
1919 {
20 "description": "The input breaks the method's lexicon, such as a field of the wrong format or past its length, and HappyView refused it before the registry saw it. The message names the field.",
21 "name": "InvalidRequest"
22 },
23 {
2024 "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.",
2125 "name": "Upstream"
2226 },
2327 {
2428 "description": "The caller has no project of that name, or the registry has not indexed its at.happyproto.registry.project record. Call putProject first.",
2529 "name": "ProjectMissing"
2630 },
2731 {
2832 "description": "That version is already published with a different artifact. A version never changes once published; publish a new one.",
2933 "name": "VersionExists"
3034 },
3135 {
3236 "description": "The project is unavailable or retired, so the channel cannot be moved to a new version.",
3337 "name": "NotInstallable"
3438 }
3539 ],
3640 "input": {
3741 "encoding": "application/json",
3842 "schema": {
3943 "properties": {
4044 "artifact": {
4145 "description": "The plugin. Every blob it references must already be uploaded to the caller's repo.",
4246 "ref": "at.happyproto.plugin.v1",
4347 "type": "ref"
4448 },
4549 "changelog": {
4650 "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.",
4751 "maxGraphemes": 20000,
4852 "maxLength": 200000,
4953 "type": "string"
5054 },
5155 "name": {
5256 "description": "The project's name, which is the record key of its software.release.project: 1 to 64 lowercase letters, digits and interior hyphens.",
5357 "maxLength": 64,
5458 "minLength": 1,
5559 "type": "string"
5660 },
5761 "track": {
5862 "description": "The channel to move to the new version.",
5963 "knownValues": [
6064 "latest",
6165 "beta",
6266 "alpha"
6367 ],
6468 "type": "string"
6569 },
6670 "validateOnly": {
6771 "default": false,
6872 "description": "Check the input against every rule the registry applies, and write nothing. Works without authentication, but only a signed-in call is also checked against the caller's existing records.",
6973 "type": "boolean"
7074 },
7175 "version": {
7276 "description": "A semver version without build metadata, with an optional lowercase prerelease, such as `1.2.0` or `1.2.0-beta.1`.",
7377 "maxLength": 64,
7478 "minLength": 1,
7579 "type": "string"
7680 }
7781 },
7882 "required": [
7983 "name",
8084 "version",
8185 "track",
8286 "artifact"
8387 ],
8488 "type": "object"
8589 }
8690 },
8791 "output": {
8892 "encoding": "application/json",
8993 "schema": {
9094 "properties": {
9195 "changelog": {
9296 "description": "The changelog's site.standard.document, when a changelog was given.",
9397 "ref": "at.happyproto.registry.defs#ref",
9498 "type": "ref"
9599 },
96100 "channel": {
97101 "description": "The software.release.channel. Absent when validateOnly was set.",
98102 "ref": "at.happyproto.registry.defs#ref",
99103 "type": "ref"
100104 },
101105 "manifest": {
102106 "description": "The software.release.manifest. Absent when validateOnly was set.",
103107 "ref": "at.happyproto.registry.defs#ref",
104108 "type": "ref"
105109 },
106110 "resumed": {
107111 "description": "True when the version already existed with this artifact, so this call only finished what an earlier one started.",
108112 "type": "boolean"
109113 },
110114 "valid": {
111115 "description": "Always true; invalid input is an error, not a result.",
112116 "type": "boolean"
113117 },
114118 "version": {
115119 "description": "The software.release.version. Absent when validateOnly was set.",
116120 "ref": "at.happyproto.registry.defs#ref",
117121 "type": "ref"
118122 }
119123 },
120124 "required": [
121125 "valid"
122126 ],
123127 "type": "object"
124128 }
125129 },
126130 "type": "procedure"
127131 }
128132 },
129133 "id": "at.happyproto.registry.publishRelease",
130134 "lexicon": 1
131135}

Compare other versions