Skip to content

Align platform resolution with ADR 0034 #376

Description

@nkraetzschmar

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions