From 9ba96154e4bc09dc466ebe6cbbe24daddfa45238 Mon Sep 17 00:00:00 2001 From: Callahan Date: Tue, 16 Apr 2024 17:44:21 -0500 Subject: [PATCH] chore: mark gnome-extension experimental for core24 (#4736) gnome-extension will be experimental in core24 until support for streamlined graphics support is finalized. See https://forum.snapcraft.io/t/39718 Signed-off-by: Callahan Kovacs --- snapcraft/extensions/gnome.py | 5 +++++ snapcraft/services/provider.py | 6 ++++++ tests/spread/core24/linters-pack/task.yaml | 2 ++ tests/unit/extensions/test_gnome.py | 12 +++++++++--- tests/unit/services/test_provider.py | 5 +++++ 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/snapcraft/extensions/gnome.py b/snapcraft/extensions/gnome.py index 2f6ac9d9c1..32f27de940 100644 --- a/snapcraft/extensions/gnome.py +++ b/snapcraft/extensions/gnome.py @@ -82,6 +82,11 @@ def get_supported_confinement() -> Tuple[str, ...]: @staticmethod @overrides def is_experimental(base: Optional[str]) -> bool: + # core24 is experimental until streamlined graphics support is finalized + # see https://forum.snapcraft.io/t/39718 + if base == "core24": + return True + return False @overrides diff --git a/snapcraft/services/provider.py b/snapcraft/services/provider.py index d8c1f1a8f7..2ed2b59083 100644 --- a/snapcraft/services/provider.py +++ b/snapcraft/services/provider.py @@ -30,3 +30,9 @@ def setup(self) -> None: self.environment["SNAPCRAFT_BUILD_INFO"] = build_info if image_info := os.getenv("SNAPCRAFT_IMAGE_INFO"): self.environment["SNAPCRAFT_IMAGE_INFO"] = image_info + if experimental_extensions := os.getenv( + "SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS" + ): + self.environment["SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS"] = ( + experimental_extensions + ) diff --git a/tests/spread/core24/linters-pack/task.yaml b/tests/spread/core24/linters-pack/task.yaml index 9a3855ebad..ad40bfb6dd 100644 --- a/tests/spread/core24/linters-pack/task.yaml +++ b/tests/spread/core24/linters-pack/task.yaml @@ -9,6 +9,8 @@ environment: SNAP/library_ignored_mixed: library-ignored-mixed SNAP/library_missing: library-missing SNAP/library_unused: library-unused + # gnome-extension core24 is experimental + SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS: "1" restore: | cd "${SNAP}" diff --git a/tests/unit/extensions/test_gnome.py b/tests/unit/extensions/test_gnome.py index bd17eba4d8..fcc7d1d191 100644 --- a/tests/unit/extensions/test_gnome.py +++ b/tests/unit/extensions/test_gnome.py @@ -68,9 +68,15 @@ def test_get_supported_confinement(): assert gnome.GNOME.get_supported_confinement() == ("strict", "devmode") -@pytest.mark.parametrize("base", ["core22", "core24"]) -def test_is_experimental(base): - assert gnome.GNOME.is_experimental(base=base) is False +@pytest.mark.parametrize( + ("base", "is_experimental"), + [ + ("core22", False), + ("core24", True), + ], +) +def test_is_experimental(base, is_experimental): + assert gnome.GNOME.is_experimental(base=base) is is_experimental def test_get_app_snippet(gnome_extension): diff --git a/tests/unit/services/test_provider.py b/tests/unit/services/test_provider.py index 12ffd40030..8735e4d763 100644 --- a/tests/unit/services/test_provider.py +++ b/tests/unit/services/test_provider.py @@ -20,6 +20,11 @@ def test_provider(provider_service, monkeypatch): monkeypatch.setenv("SNAPCRAFT_BUILD_INFO", "foo") monkeypatch.setenv("SNAPCRAFT_IMAGE_INFO", "bar") + monkeypatch.setenv("SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS", "baz") provider_service.setup() assert provider_service.environment["SNAPCRAFT_BUILD_INFO"] == "foo" assert provider_service.environment["SNAPCRAFT_IMAGE_INFO"] == "bar" + assert ( + provider_service.environment["SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS"] + == "baz" + )