|
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