Align platform resolution with ADR 0034 #376
Copy link
Copy link
Open
Milestone
Description
Context: ADR 0034 defines the shared terminology for Garden Linux features and clarifies that GARDENLINUX_PLATFORM is the authoritative platform identifier exposed in release metadata.
This library contains a parallel implementation of the feature type system. Align it with ADR 0034:
- The
CName.platformproperty returnsplatforms[0]and falls back to afrankensteinconstant controlled by theGL_ALLOW_FRANKENSTEINenvironment variable. This logic duplicates the single-platform-or-frankenstein resolution from the build layer, but with different environment variable names and without being tied to the builder'sBUILDER_FEATURES_PLATFORMSoutput. It should be aligned: the single-platform-or-frankenstein resolution belongs in the build layer, not in a parsing library. The library should readGARDENLINUX_PLATFORMfrom release files rather than re-deriving it from the feature list. - The library's
Parser.filter_as_dict()correctly separates features by type, which is consistent with ADR 0034 and can be retained. - The
GL_ALLOW_FRANKENSTEINandGL_ALLOW_MULTIPLE_PLATFORMSenvironment variables in the library are not defined by the builder and should be removed in favour of reading the already-resolvedGARDENLINUX_PLATFORMvalue from the release file.
Expected outcome:
- The library treats
GARDENLINUX_PLATFORMfrom release metadata as the authoritative platform value. - Platform resolution is no longer reimplemented in the parsing layer.
- Library-specific
GL_ALLOW_FRANKENSTEINandGL_ALLOW_MULTIPLE_PLATFORMScontrols are removed. - Existing type-based feature filtering remains intact.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
NotTheEvilOne commentedon Sep 29, 2026
The changes for ADR 0034 are implemented in #393. As the Python library needs to validate external input not only limited but to ensure input values are available for later execution this can not be whitelisted unfortunately. Use of the environment variables are implementation specific.