|
1 | 1 | = SDD 0033 - Commodore Component Instance Versioning
|
2 | 2 |
|
3 | 3 | :sdd_author: Aline Abler
|
4 |
| -:sdd_owner: Aline Abler |
5 |
| -:sdd_reviewers: SIG |
| 4 | +:sdd_owner: Aldebaran |
| 5 | +:sdd_reviewers: Simon Gerber |
6 | 6 | :sdd_date: 2025-01-08
|
7 | 7 | :sdd_status: draft
|
8 | 8 | include::partial$meta-info-table.adoc[]
|
@@ -34,7 +34,7 @@ Commodore will leverage the existing configuration options in `.parameters.compo
|
34 | 34 | Instance versions can be specified in `.parameters.components.<instance-name>` and override the value specified in `.parameters.components.<component-name>`.
|
35 | 35 | Even if all instances provide their own version, a version for the base component (`.parameters.components.<component-name>`) must still be specified.
|
36 | 36 |
|
37 |
| -Component authors must explicitly declare that their component supports multi-versioning. |
| 37 | +Component authors must explicitly declare that their component supports multi-versioning by setting component parameter `_metadata.multi_versioning=true`. |
38 | 38 | In a valid catalog, all used versions of the same component must advertise this support.
|
39 | 39 |
|
40 | 40 | Components with multi-versioning support must ensure they create no file conflicts when downloading dependencies.
|
@@ -66,9 +66,10 @@ This might force a component author to remove multi-version support in higher co
|
66 | 66 |
|
67 | 67 | === Automatically detecting multi-version support
|
68 | 68 |
|
69 |
| -It could be possible to automatically determine whether a component supports multi-versioning, by way of checking whether the `${_base_directory}` parameter is used in the component's compile configuration. |
| 69 | +We could try to automatically determine whether a component supports multi-versioning, by way of checking whether the `${_base_directory}` parameter is used in the component's compile configuration and for Jsonnet expressions that refer to downloaded data. |
70 | 70 | However, automatically declaring components to be "safe for multi-versioning" carries some risk - even if a component is configured accordingly, it is not guaranteed that its provided Jsonnet libraries and/or its Jsonnet dependencies work if used across versions.
|
71 |
| -Therefore, we deem it safer to let component authors decide if multi-versioning is safe to use for their component. |
| 71 | +Additionally, so far we've defined explicit flags for components to indicate that they support optional features, such as multiple instances. |
| 72 | +For all of those reasons, we've decided that component authors must explicitly declare whether multi-versioning is safe to use for their component. |
72 | 73 |
|
73 | 74 | === Supporting different versions of Jsonnet dependencies per instance
|
74 | 75 |
|
|
0 commit comments