software.release.channel
Schema Diff
+6 -6
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 1 non-breaking change.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "software.release.channel:body", src: "software.release.channel:body", tgt: "software.release.channel:body.name", kind: "prop", name: Some("name") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "software.release.channel:body", src: "software.release.channel:body", tgt: "software.release.channel:body.channel", kind: "prop", name: Some("channel") }
- RemovedVertex RemovedVertex { vertex_id: "software.release.channel:body.channel" }
Non-Breaking Changes (1)
- AddedVertex AddedVertex { vertex_id: "software.release.channel:body.name" }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "software.release.channel:body.channel" }
Added Elements
AddedVertex { vertex_id: "software.release.channel:body.name" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "software.release.channel:body", src: "software.release.channel:body", tgt: "software.release.channel:body.name", kind: "prop", name: Some("name") }
- Breaking: RequiredEdgeRemoved { vertex_id: "software.release.channel:body", src: "software.release.channel:body", tgt: "software.release.channel:body.channel", kind: "prop", name: Some("channel") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "A mutable named pointer to a version. Resolve the manifest through the referenced version. The record key is '{projectName}.{channelName}', making uniqueness per (project, name) mechanical and enabling AppView-free resolution. Channel names follow the project-name grammar (lowercase alphanumerics, interior hyphens, no dots). Valid only when same-DID with the referenced project and version.",
5
+
"description": "A mutable named pointer to a version. Resolve the manifest through the referenced version. The record key is '{projectName}:{channelName}', making uniqueness per (project, name) mechanical and enabling AppView-free resolution. Channel names follow the project-name grammar (lowercase alphanumerics, interior hyphens, no dots). The project name cannot contain colons, but the rkey must contain exactly one colon. Valid only when same-DID with the referenced project and version.",
6
6
"key": "any",
7
7
"record": {
8
8
"properties": {
9
-
"channel": {
10
-
"description": "Channel name (e.g. latest, next). Follows the project-name grammar. MUST match the record rkey after the first dot.",
9
+
"name": {
10
+
"description": "Channel name (e.g. latest, next). Follows the project-name grammar. MUST match the record rkey after the colon.",
11
11
"maxLength": 64,
12
12
"minLength": 1,
13
13
"type": "string"
14
14
},
15
15
"project": {
16
-
"description": "The software.release.project this pointer belongs to. Must be same-DID.",
16
+
"description": "The software.release.project this pointer belongs to. MUST be same-DID.",
17
17
"format": "at-uri",
18
18
"type": "string"
19
19
},
20
20
"version": {
21
-
"description": "Strong reference to the software.release.version this channel currently points to. Must belong to the same project.",
21
+
"description": "Strong reference to the software.release.version this channel currently points to. MUST belong to the same project.",
22
22
"ref": "com.atproto.repo.strongRef#main",
23
23
"type": "ref"
24
24
}
25
25
},
26
26
"required": [
27
27
"project",
28
-
"channel",
28
+
"name",
29
29
"version"
30
30
],
31
31
"type": "object"
32
32
},
33
33
"type": "record"
34
34
}
35
35
},
36
36
"id": "software.release.channel",
37
37
"lexicon": 1
38
38
}