You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: staging/operator-registry/alpha/template/semver/README.md
+64-37Lines changed: 64 additions & 37 deletions
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Since a `catalog template` is identified as an input schema which may be processed to generate a valid FBC, we can define a `semver template` as a schema which uses channel conventions to facilitate the auto-generation of channels along `semver` delimiters.
4
4
5
-
[**DISCLAIMER:** since version build metadata [MUST be ignored when determining version precedence](https://semver.org) when using semver, it cannot be used in any bundle included in the `semver template` and will result in a fatal error.]
5
+
[**DISCLAIMER:** since version build metadata [MUST be ignored when determining version precedence](https://semver.org) when using semver, rendering the template will result in an error if two bundles differ only by the build metadata.]
6
6
7
7
### Schema Goals
8
8
The `semver template` must have:
@@ -85,67 +85,81 @@ Note that if the command is called without a file argument and nothing passed in
85
85
the command will hang indefinitely. Either a file argument or file information passed
86
86
in on standard input is required by the command.
87
87
88
-
With the template attribute `GenerateMajorChannels: true` resulting major channels from the command are (skipping the rendered bundle image output):
88
+
With the template attribute `GenerateMajorChannels: true` resulting major channels from the command are (filtering out `olm.bundle` content):
89
89
```yaml
90
90
---
91
91
defaultChannel: stable-v1
92
92
name: testoperator
93
93
schema: olm.package
94
94
---
95
95
entries:
96
-
- name: testoperator.v0.1.0
97
-
- name: testoperator.v0.1.1
98
-
- name: testoperator.v0.1.2
99
-
- name: testoperator.v0.1.3
100
-
skips:
101
-
- testoperator.v0.1.0
102
-
- testoperator.v0.1.1
103
-
- testoperator.v0.1.2
104
-
- name: testoperator.v0.2.0
105
-
- name: testoperator.v0.2.1
106
-
- name: testoperator.v0.2.2
107
-
replaces: testoperator.v0.1.3
108
-
skips:
109
-
- testoperator.v0.2.0
110
-
- testoperator.v0.2.1
111
-
- name: testoperator.v0.3.0
112
-
replaces: testoperator.v0.2.2
96
+
- name: testoperator.v0.1.0
97
+
- name: testoperator.v0.1.1
98
+
- name: testoperator.v0.1.2
99
+
- name: testoperator.v0.1.3
100
+
skips:
101
+
- testoperator.v0.1.0
102
+
- testoperator.v0.1.1
103
+
- testoperator.v0.1.2
104
+
- name: testoperator.v0.2.0
105
+
- name: testoperator.v0.2.1
106
+
- name: testoperator.v0.2.2
107
+
replaces: testoperator.v0.1.3
108
+
skips:
109
+
- testoperator.v0.1.0
110
+
- testoperator.v0.1.1
111
+
- testoperator.v0.1.2
112
+
- testoperator.v0.2.0
113
+
- testoperator.v0.2.1
114
+
- name: testoperator.v0.3.0
115
+
replaces: testoperator.v0.2.2
116
+
skips:
117
+
- testoperator.v0.1.0
118
+
- testoperator.v0.1.1
119
+
- testoperator.v0.1.2
120
+
- testoperator.v0.1.3
121
+
- testoperator.v0.2.0
122
+
- testoperator.v0.2.1
113
123
name: candidate-v0
114
124
package: testoperator
115
125
schema: olm.channel
116
126
---
117
127
entries:
118
-
- name: testoperator.v1.0.0
119
-
- name: testoperator.v1.0.1
120
-
skips:
121
-
- testoperator.v1.0.0
122
-
- name: testoperator.v1.1.0
123
-
replaces: testoperator.v1.0.1
128
+
- name: testoperator.v1.0.0
129
+
- name: testoperator.v1.0.1
130
+
skips:
131
+
- testoperator.v1.0.0
132
+
- name: testoperator.v1.1.0
133
+
replaces: testoperator.v1.0.1
134
+
skips:
135
+
- testoperator.v1.0.0
124
136
name: candidate-v1
125
137
package: testoperator
126
138
schema: olm.channel
127
139
---
128
140
entries:
129
-
- name: testoperator.v0.2.1
130
-
- name: testoperator.v0.2.2
131
-
skips:
132
-
- testoperator.v0.2.1
133
-
- name: testoperator.v0.3.0
134
-
replaces: testoperator.v0.2.2
141
+
- name: testoperator.v0.2.1
142
+
- name: testoperator.v0.2.2
143
+
skips:
144
+
- testoperator.v0.2.1
145
+
- name: testoperator.v0.3.0
146
+
replaces: testoperator.v0.2.2
147
+
skips:
148
+
- testoperator.v0.2.1
135
149
name: fast-v0
136
150
package: testoperator
137
151
schema: olm.channel
138
152
---
139
153
entries:
140
-
- name: testoperator.v1.0.1
141
-
- name: testoperator.v1.1.0
142
-
replaces: testoperator.v1.0.1
154
+
- name: testoperator.v1.0.1
155
+
- name: testoperator.v1.1.0
156
+
replaces: testoperator.v1.0.1
143
157
name: fast-v1
144
158
package: testoperator
145
159
schema: olm.channel
146
160
---
147
161
entries:
148
-
- name: testoperator.v1.0.1
162
+
- name: testoperator.v1.0.1
149
163
name: stable-v1
150
164
package: testoperator
151
165
schema: olm.channel
@@ -180,6 +194,9 @@ entries:
180
194
- name: testoperator.v0.2.2
181
195
replaces: testoperator.v0.1.3
182
196
skips:
197
+
- testoperator.v0.1.0
198
+
- testoperator.v0.1.1
199
+
- testoperator.v0.1.2
183
200
- testoperator.v0.2.0
184
201
- testoperator.v0.2.1
185
202
name: candidate-v0.2
@@ -189,6 +206,13 @@ schema: olm.channel
189
206
entries:
190
207
- name: testoperator.v0.3.0
191
208
replaces: testoperator.v0.2.2
209
+
skips:
210
+
- testoperator.v0.1.0
211
+
- testoperator.v0.1.1
212
+
- testoperator.v0.1.2
213
+
- testoperator.v0.1.3
214
+
- testoperator.v0.2.0
215
+
- testoperator.v0.2.1
192
216
name: candidate-v0.3
193
217
package: testoperator
194
218
schema: olm.channel
@@ -205,6 +229,8 @@ schema: olm.channel
205
229
entries:
206
230
- name: testoperator.v1.1.0
207
231
replaces: testoperator.v1.0.1
232
+
skips:
233
+
- testoperator.v1.0.0
208
234
name: candidate-v1.1
209
235
package: testoperator
210
236
schema: olm.channel
@@ -221,6 +247,8 @@ schema: olm.channel
221
247
entries:
222
248
- name: testoperator.v0.3.0
223
249
replaces: testoperator.v0.2.2
250
+
skips:
251
+
- testoperator.v0.2.1
224
252
name: fast-v0.3
225
253
package: testoperator
226
254
schema: olm.channel
@@ -243,9 +271,8 @@ entries:
243
271
name: stable-v1.0
244
272
package: testoperator
245
273
schema: olm.channel
246
-
247
274
```
248
-
Here, a channel is generated for each template channel which differs by minor version, and each channel has a `replaces` edge from the predecessor channel to the next-lesser minor bundle version. Please note that at no time do we transgress across major-version boundaries with the channels, to be consistent with [the semver convention](https://semver.org/) for major versions, where the purpose is to make incompatible API changes.
275
+
Here, a channel is generated for each template channel which differs by minor version, each channel has a `replaces` edge from the highest version entry in the predecessor channel, and the highest version entry in each channel also has a skips list composed of all lower version entries within the same minor (Y). Please note that at no time do we transgress across major-version boundaries with the channels, to be consistent with [the semver convention](https://semver.org/) for major versions, where the purpose is to make incompatible API changes.
0 commit comments