From 5c46dd94cae216d73c442432cc1726618c5c7468 Mon Sep 17 00:00:00 2001 From: Owen W. Taylor Date: Jan 21 2019 10:03:53 +0000 Subject: [PATCH 1/2] Clean up generated Flatpak modulemd Omit the api: section, which doesn't make sense for a Flatpak, and describe the rationale for the application package as "Application package", not "Package in api". --- diff --git a/_fedmod/flatpak_generator.py b/_fedmod/flatpak_generator.py index 005a7bb..a2b6747 100644 --- a/_fedmod/flatpak_generator.py +++ b/_fedmod/flatpak_generator.py @@ -124,6 +124,11 @@ def _load_flathub_manifest(search_term): class FlatpakGenerator(ModuleGenerator): + # The "api" for a Flatpak is that runs - other modules never depend on it + include_api_section = False + # Rationale for packages from the command line + api_component_rationale = "Application package" + def __init__(self, pkg): super().__init__([pkg]) self.rpm_branch = dataset_release_branch() diff --git a/_fedmod/module_generator.py b/_fedmod/module_generator.py index 94a11d3..485c44a 100644 --- a/_fedmod/module_generator.py +++ b/_fedmod/module_generator.py @@ -31,6 +31,12 @@ def _categorise_deps(all_rpm_deps): class ModuleGenerator(object): + # If True, packages from the command line will be put into api: in the generated modulemd + include_api_section = True + # Rationale for packages from the command line + api_component_rationale = "Package in api" + # Rationale for other packages + other_component_rationale = "Runtime dependencies" def __init__(self, pkgs): self.pkgs = pkgs @@ -87,10 +93,11 @@ class ModuleGenerator(object): # Declare the public API for pkg in self.api_srpms: - self.mmd.peek_rpm_api().add(pkg) + if self.include_api_section: + self.mmd.peek_rpm_api().add(pkg) component = Modulemd.ComponentRpm( - name=pkg, rationale="Package in api", + name=pkg, rationale=self.api_component_rationale, buildorder=self._get_build_order(pkg)) if self.rpm_branch is not None: component.props.ref = self.rpm_branch @@ -105,7 +112,7 @@ class ModuleGenerator(object): for pkg in self.run_srpms: component = Modulemd.ComponentRpm( - name=pkg, rationale="Runtime dependencies", + name=pkg, rationale=self.other_component_rationale, buildorder=self._get_build_order(pkg)) if self.rpm_branch is not None: component.props.ref = self.rpm_branch diff --git a/tests/test_flatpak_generator.py b/tests/test_flatpak_generator.py index 356744a..44ecacd 100644 --- a/tests/test_flatpak_generator.py +++ b/tests/test_flatpak_generator.py @@ -141,24 +141,27 @@ class TestFlatpak(object): with mock_koji(): modmd, container_yaml = _generate_flatpak('eog') - # Expected description for 'grep' + # Expected description for 'eog' assert modmd.props.summary == "Eye of GNOME image viewer" assert modmd.props.description.startswith( "The Eye of GNOME image viewer (eog) is") - # Expected licenses for 'grep' + # Expected licenses for 'eog' assert modmd.props.module_licenses.get() == ['MIT'] assert modmd.props.content_licenses.get() == [] - # Only given modules are listed in the public API - assert sorted(modmd.props.rpm_api.get()) == ['eog'] + # No API section for Flatpaks + assert sorted(modmd.props.rpm_api.get()) == [] # Expected components assert set(modmd.props.components_rpm) == set([ 'bubblewrap', 'eog', 'exempi', 'gnome-desktop3', 'libpeas' ]) - # Expected module dependencies for grep + assert modmd.props.components_rpm['eog'].props.rationale == "Application package" + assert modmd.props.components_rpm['exempi'].props.rationale == "Runtime dependencies" + + # Expected module dependencies for eog dependencies = modmd.props.dependencies assert len(dependencies) == 1 diff --git a/tests/test_module_generator.py b/tests/test_module_generator.py index e745460..cbca320 100644 --- a/tests/test_module_generator.py +++ b/tests/test_module_generator.py @@ -78,6 +78,8 @@ class TestMultiplePackageInput(object): expected_components = set(input_rpms) assert set(modmd.props.components_rpm) == expected_components + assert modmd.props.components_rpm['grep'].props.rationale == "Package in api" + # Expected module dependencies for grep dependencies = modmd.props.dependencies assert len(dependencies) == 1 From 4184244722d641fe991331c802deb8dbe596ef71 Mon Sep 17 00:00:00 2001 From: Owen W. Taylor Date: Jan 21 2019 10:03:53 +0000 Subject: [PATCH 2/2] Change rationale from "Runtime dependencies" to "Runtime dependency" The plural form didn't read well, especially next to "Package in api". --- diff --git a/_fedmod/module_generator.py b/_fedmod/module_generator.py index 485c44a..e5d1884 100644 --- a/_fedmod/module_generator.py +++ b/_fedmod/module_generator.py @@ -36,7 +36,7 @@ class ModuleGenerator(object): # Rationale for packages from the command line api_component_rationale = "Package in api" # Rationale for other packages - other_component_rationale = "Runtime dependencies" + other_component_rationale = "Runtime dependency" def __init__(self, pkgs): self.pkgs = pkgs diff --git a/tests/test_flatpak_generator.py b/tests/test_flatpak_generator.py index 44ecacd..be3e5fc 100644 --- a/tests/test_flatpak_generator.py +++ b/tests/test_flatpak_generator.py @@ -159,7 +159,7 @@ class TestFlatpak(object): ]) assert modmd.props.components_rpm['eog'].props.rationale == "Application package" - assert modmd.props.components_rpm['exempi'].props.rationale == "Runtime dependencies" + assert modmd.props.components_rpm['exempi'].props.rationale == "Runtime dependency" # Expected module dependencies for eog dependencies = modmd.props.dependencies