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.platform property returns platforms[0] and falls back to a frankenstein constant controlled by the GL_ALLOW_FRANKENSTEIN environment 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's BUILDER_FEATURES_PLATFORMS output. It should be aligned: the single-platform-or-frankenstein resolution belongs in the build layer, not in a parsing library. The library should read GARDENLINUX_PLATFORM from 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_FRANKENSTEIN and GL_ALLOW_MULTIPLE_PLATFORMS environment variables in the library are not defined by the builder and should be removed in favour of reading the already-resolved GARDENLINUX_PLATFORM value from the release file.
Expected outcome:
- The library treats
GARDENLINUX_PLATFORM from release metadata as the authoritative platform value.
- Platform resolution is no longer reimplemented in the parsing layer.
- Library-specific
GL_ALLOW_FRANKENSTEIN and GL_ALLOW_MULTIPLE_PLATFORMS controls are removed.
- Existing type-based feature filtering remains intact.
Context: ADR 0034 defines the shared terminology for Garden Linux features and clarifies that
GARDENLINUX_PLATFORMis the authoritative platform identifier exposed in release metadata.This library contains a parallel implementation of the feature type system. Align it with ADR 0034:
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.Parser.filter_as_dict()correctly separates features by type, which is consistent with ADR 0034 and can be retained.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:
GARDENLINUX_PLATFORMfrom release metadata as the authoritative platform value.GL_ALLOW_FRANKENSTEINandGL_ALLOW_MULTIPLE_PLATFORMScontrols are removed.