dev.roe.talk
Schema Diff
+3 -10
Compatibility Analysis
Breaking Changes Detected
6 breaking changes, 2 non-breaking changes.
Breaking Changes (6)
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.defs#aspectRatio" }
- RemovedVertex RemovedVertex { vertex_id: "dev.roe.talk:body.aspectRatio" }
- RemovedEdge RemovedEdge { src: "dev.roe.talk:body", tgt: "dev.roe.talk:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- RemovedEdge RemovedEdge { src: "dev.roe.talk:body.aspectRatio", tgt: "dev.roe.defs#aspectRatio", kind: "ref", name: None }
- KindChanged KindChanged { vertex_id: "dev.roe.talk:body.image", old_kind: "blob", new_kind: "ref" }
- ConstraintAdded ConstraintAdded { vertex_id: "dev.roe.talk:body.image", sort: "ref", value: "community.lexicon.app.defs#image" }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "community.lexicon.app.defs#image" }
- AddedEdge AddedEdge { src: "dev.roe.talk:body.image", tgt: "community.lexicon.app.defs#image", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "dev.roe.defs#aspectRatio" }RemovedVertex { vertex_id: "dev.roe.talk:body.aspectRatio" }
Added Elements
AddedVertex { vertex_id: "community.lexicon.app.defs#image" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "dev.roe.talk:body.image", sort: "ref", value: "community.lexicon.app.defs#image" }
Additional Notes
- Breaking: RemovedEdge { src: "dev.roe.talk:body", tgt: "dev.roe.talk:body.aspectRatio", kind: "prop", name: Some("aspectRatio") }
- Breaking: RemovedEdge { src: "dev.roe.talk:body.aspectRatio", tgt: "dev.roe.defs#aspectRatio", kind: "ref", name: None }
- Breaking: KindChanged { vertex_id: "dev.roe.talk:body.image", old_kind: "blob", new_kind: "ref" }
- Non-breaking: AddedEdge { src: "dev.roe.talk:body.image", tgt: "community.lexicon.app.defs#image", kind: "ref", name: None }
1
1
{
2
2
"id": "dev.roe.talk",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"source",
11
11
"date",
12
12
"type",
13
13
"createdAt"
14
14
],
15
15
"properties": {
16
16
"date": {
17
17
"type": "string",
18
18
"format": "datetime",
19
19
"description": "Start date of the talk/event. Date-only values are stored as midnight UTC."
20
20
},
21
21
"demo": {
22
22
"type": "string",
23
23
"format": "uri"
24
24
},
25
25
"link": {
26
26
"type": "string",
27
27
"format": "uri",
28
28
"description": "Event page, podcast episode URL, etc."
29
29
},
30
30
"repo": {
31
31
"type": "string",
32
32
"format": "uri"
33
33
},
34
34
"tags": {
35
35
"type": "array",
36
36
"items": {
37
37
"type": "string",
38
38
"maxLength": 640,
39
39
"maxGraphemes": 64
40
40
},
41
41
"maxLength": 32
42
42
},
43
43
"type": {
44
44
"type": "string",
45
45
"knownValues": [
46
46
"conference",
47
47
"meetup",
48
48
"podcast",
49
49
"workshop",
50
50
"stream",
51
51
"talk"
52
52
]
53
53
},
54
54
"group": {
55
55
"ref": "com.atproto.repo.strongRef",
56
56
"type": "ref",
57
57
"description": "Strong-ref to a dev.roe.talkGroup record."
58
58
},
59
59
"image": {
60
-
"type": "blob",
61
-
"accept": [
62
-
"image/*"
63
-
],
64
-
"maxSize": 5000000
60
+
"ref": "community.lexicon.app.defs#image",
61
+
"type": "ref",
62
+
"description": "Event or conference logo, shown on the home page carousel."
65
63
},
66
64
"title": {
67
65
"type": "string",
68
66
"maxLength": 5120,
69
67
"description": "Optional for upcoming events with no announced title. Required for past talks unless the talk is part of a group.",
70
68
"maxGraphemes": 512
71
69
},
72
70
"video": {
73
71
"type": "string",
74
72
"format": "uri"
75
73
},
76
74
"slides": {
77
75
"type": "string",
78
76
"maxLength": 512,
79
77
"description": "Identifier for slides; historically a GitHub release tag from danielroe/slides."
80
78
},
81
79
"source": {
82
80
"type": "string",
83
81
"maxLength": 5120,
84
82
"description": "Conference name, meetup, podcast title, etc.",
85
83
"maxGraphemes": 512
86
84
},
87
85
"endDate": {
88
86
"type": "string",
89
87
"format": "datetime",
90
88
"description": "End date for multi-day events. Optional."
91
89
},
92
90
"location": {
93
91
"type": "string",
94
92
"maxLength": 5120,
95
93
"description": "Free-form: city, country, or 'Online'.",
96
94
"maxGraphemes": 512
97
95
},
98
96
"createdAt": {
99
97
"type": "string",
100
98
"format": "datetime"
101
-
},
102
-
"aspectRatio": {
103
-
"ref": "dev.roe.defs#aspectRatio",
104
-
"type": "ref",
105
-
"description": "Intrinsic pixel dimensions of `image`."
106
99
},
107
100
"description": {
108
101
"type": "string",
109
102
"maxLength": 50000,
110
103
"maxGraphemes": 5000
111
104
}
112
105
}
113
106
},
114
107
"description": "A talk, podcast appearance, workshop, stream, or similar event."
115
108
}
116
109
},
117
110
"$type": "com.atproto.lexicon.schema",
118
111
"lexicon": 1
119
112
}