From febc8c958eb4f443d3750e629f97f4538edb040e Mon Sep 17 00:00:00 2001 From: Tobias Wolf Date: Tue, 10 Feb 2026 09:24:26 +0100 Subject: [PATCH] Change `modifiers` S3 artifact metadata to be a list of features Signed-off-by: Tobias Wolf On-behalf-of: SAP --- .github/actions/setup/action.yml | 2 +- pyproject.toml | 2 +- src/gardenlinux/features/cname.py | 14 ++++++++++++++ src/gardenlinux/s3/s3_artifacts.py | 8 ++++---- tests/s3/constants.py | 4 +++- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 375a67fe..8367a057 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -4,7 +4,7 @@ description: Installs the given GardenLinux Python library inputs: version: description: GardenLinux Python library version - default: "0.10.11" + default: "0.10.12" python_version: description: Python version to setup default: "3.13" diff --git a/pyproject.toml b/pyproject.toml index b7b0b7b6..605f4650 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gardenlinux" -version = "0.10.11" +version = "0.10.12" description = "Contains tools to work with the features directory of gardenlinux, for example deducting dependencies from feature sets or validating cnames" authors = ["Garden Linux Maintainers "] license = "Apache-2.0" diff --git a/src/gardenlinux/features/cname.py b/src/gardenlinux/features/cname.py index 712385ba..1fb5a0ce 100644 --- a/src/gardenlinux/features/cname.py +++ b/src/gardenlinux/features/cname.py @@ -276,6 +276,20 @@ def feature_set_platform(self) -> str: "Only one platform is supported" return platforms[0] + @property + def feature_set_list(self) -> List[str]: + """ + Returns the feature set for the cname parsed. + + :return: (list) Feature set list of the cname + :since: 0.10.12 + """ + + if self._feature_set_cached is not None: + return self._feature_set_cached.split(",") + + return Parser().filter_as_list(self.flavor) + @property def platform(self) -> str: """ diff --git a/src/gardenlinux/s3/s3_artifacts.py b/src/gardenlinux/s3/s3_artifacts.py index a777067f..09a4b17c 100644 --- a/src/gardenlinux/s3/s3_artifacts.py +++ b/src/gardenlinux/s3/s3_artifacts.py @@ -128,7 +128,7 @@ def upload_from_directory( ) arch = cname_object.arch - feature_list = cname_object.feature_set + feature_set_list = cname_object.feature_set_list release_timestamp = stat(release_file).st_ctime requirements_file = artifacts_dir.joinpath(f"{base_name}.requirements") require_uefi = None @@ -155,10 +155,10 @@ def upload_from_directory( ) if require_uefi is None: - require_uefi = "_usi" in feature_list + require_uefi = "_usi" in feature_set_list if secureboot is None: - secureboot = "_trustedboot" in feature_list + secureboot = "_trustedboot" in feature_set_list # RegEx for S3 supported characters re_object = re.compile("[^a-zA-Z0-9\\s+\\-=.\\_:/@]") @@ -182,7 +182,7 @@ def upload_from_directory( "build_timestamp": datetime.fromtimestamp(release_timestamp).isoformat(), "gardenlinux_epoch": version_epoch, "logs": None, - "modifiers": cname_object.feature_set, + "modifiers": feature_set_list, "require_uefi": require_uefi, "secureboot": secureboot, "published_image_metadata": None, diff --git a/tests/s3/constants.py b/tests/s3/constants.py index 2f127e00..73cc5c7b 100644 --- a/tests/s3/constants.py +++ b/tests/s3/constants.py @@ -19,7 +19,9 @@ build_timestamp: '{build_timestamp}' gardenlinux_epoch: '1234' logs: null -modifiers: _usi,_trustedboot +modifiers: +- _usi +- _trustedboot require_uefi: true secureboot: true published_image_metadata: null