From 92ed3e8efffb2a31381edecf44826789ae80525a Mon Sep 17 00:00:00 2001 From: Aditya kumar singh <143548997+Adityakk9031@users.noreply.github.com> Date: Sun, 22 Feb 2026 16:43:44 +0530 Subject: [PATCH 1/3] Add Meson WrapDB mining pipeline #803 Signed-off-by: Aditya kumar singh <143548997+Adityakk9031@users.noreply.github.com> --- minecode_pipelines/pipelines/mine_meson.py | 68 ++++++++++++++ minecode_pipelines/pipes/meson.py | 81 +++++++++++++++++ minecode_pipelines/tests/pipes/test_meson.py | 88 +++++++++++++++++++ .../tests/test_data/meson/releases.json | 33 +++++++ pyproject-minecode_pipelines.toml | 1 + 5 files changed, 271 insertions(+) create mode 100644 minecode_pipelines/pipelines/mine_meson.py create mode 100644 minecode_pipelines/pipes/meson.py create mode 100644 minecode_pipelines/tests/pipes/test_meson.py create mode 100644 minecode_pipelines/tests/test_data/meson/releases.json diff --git a/minecode_pipelines/pipelines/mine_meson.py b/minecode_pipelines/pipelines/mine_meson.py new file mode 100644 index 00000000..c1e7cf1d --- /dev/null +++ b/minecode_pipelines/pipelines/mine_meson.py @@ -0,0 +1,68 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# http://nexb.com and https://github.com/aboutcode-org/scancode.io +# The ScanCode.io software is licensed under the Apache License version 2.0. +# Data generated with ScanCode.io is provided as-is without warranties. +# ScanCode is a trademark of nexB Inc. +# +# You may not use this software except in compliance with the License. +# You may obtain a copy of the License at: http://apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. +# +# Data Generated with ScanCode.io is provided on an "AS IS" BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, either express or implied. No content created from +# ScanCode.io should be considered or used as legal advice. Consult an Attorney +# for any legal advice. +# +# ScanCode.io is a free software code scanning tool from nexB Inc. and others. +# Visit https://github.com/aboutcode-org/scancode.io for support and download. + +import json +from pathlib import Path + +from minecode_pipelines.pipes import meson +from minecode_pipelines.pipelines import MineCodeBasePipeline +from scanpipe.pipes import federatedcode + + +class MineMeson(MineCodeBasePipeline): + """Pipeline to mine Meson WrapDB packages and publish them to FederatedCode repo.""" + + MESON_WRAPDB_REPO = "https://github.com/mesonbuild/wrapdb" + + @classmethod + def steps(cls): + return ( + cls.check_federatedcode_eligibility, + cls.create_federatedcode_working_dir, + cls.clone_wrapdb_index, + cls.fetch_federation_config, + cls.mine_and_publish_packageurls, + cls.delete_working_dir, + ) + + def clone_wrapdb_index(self): + """Clone the Meson WrapDB repository.""" + self.wrapdb_repo = federatedcode.clone_repository( + repo_url=self.MESON_WRAPDB_REPO, + clone_path=self.working_path / "wrapdb", + logger=self.log, + ) + + def packages_count(self): + releases_path = Path(self.wrapdb_repo.working_dir) / "releases.json" + if not releases_path.exists(): + return 0 + with open(releases_path, encoding="utf-8") as f: + releases = json.load(f) + return len(releases) + + def mine_packageurls(self): + """Yield PackageURLs from Meson WrapDB releases.json.""" + return meson.mine_meson_packageurls( + wrapdb_repo=self.wrapdb_repo, + logger=self.log, + ) diff --git a/minecode_pipelines/pipes/meson.py b/minecode_pipelines/pipes/meson.py new file mode 100644 index 00000000..9ea6e447 --- /dev/null +++ b/minecode_pipelines/pipes/meson.py @@ -0,0 +1,81 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# http://nexb.com and https://github.com/aboutcode-org/scancode.io +# The ScanCode.io software is licensed under the Apache License version 2.0. +# Data generated with ScanCode.io is provided as-is without warranties. +# ScanCode is a trademark of nexB Inc. +# +# You may not use this software except in compliance with the License. +# You may obtain a copy of the License at: http://apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. +# +# Data Generated with ScanCode.io is provided on an "AS IS" BASIS, WITHOUT WARRANTIES +# OR CONDITIONS OF ANY KIND, either express or implied. No content created from +# ScanCode.io should be considered or used as legal advice. Consult an Attorney +# for any legal advice. +# +# ScanCode.io is a free software code scanning tool from nexB Inc. and others. +# Visit https://github.com/aboutcode-org/scancode.io for support and download. + +import json +from pathlib import Path + +from packageurl import PackageURL + + +MESON_WRAPDB_RELEASES_URL = ( + "https://raw.githubusercontent.com/mesonbuild/wrapdb/master/releases.json" +) + + +def get_meson_packages(package_name, package_data): + """ + Return a tuple of (base_purl, [versioned_purl_strings]) for a single + Meson WrapDB package entry from ``releases.json``. + + The ``package_data`` dict has the structure:: + + { + "dependency_names": ["dep1", "dep2"], + "versions": ["1.0.0-1", "1.0.0-2", ...] + } + + WrapDB versions use a ``-N`` suffix to denote build recipe revisions that + are specific to the WrapDB and do not exist upstream. + """ + base_purl = PackageURL(type="meson", name=package_name) + versions = package_data.get("versions") or [] + versioned_purls = [ + PackageURL( + type="meson", + name=package_name, + version=str(version), + ).to_string() + for version in versions + ] + return base_purl, versioned_purls + + +def mine_meson_packageurls(wrapdb_repo, logger): + """ + Yield ``(base_purl, [versioned_purl_strings])`` tuples from a cloned + Meson WrapDB repository by parsing its ``releases.json``. + """ + releases_path = Path(wrapdb_repo.working_dir) / "releases.json" + if not releases_path.exists(): + logger(f"releases.json not found at {releases_path}") + return + + with open(releases_path, encoding="utf-8") as f: + releases = json.load(f) + + for package_name, package_data in releases.items(): + if not package_data: + continue + yield get_meson_packages( + package_name=package_name, + package_data=package_data, + ) diff --git a/minecode_pipelines/tests/pipes/test_meson.py b/minecode_pipelines/tests/pipes/test_meson.py new file mode 100644 index 00000000..315cfdcd --- /dev/null +++ b/minecode_pipelines/tests/pipes/test_meson.py @@ -0,0 +1,88 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# purldb is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/aboutcode-org/purldb for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +import json +from pathlib import Path + +from django.test import TestCase + +from minecode_pipelines.pipes.meson import get_meson_packages + +DATA_DIR = Path(__file__).parent.parent / "test_data" / "meson" + + +class MesonPipeTests(TestCase): + def test_get_meson_packages_basic(self): + """Test that get_meson_packages correctly parses a single package entry.""" + package_data = { + "dependency_names": ["ogg"], + "versions": ["1.3.6-1", "1.3.5-3", "1.3.5-2", "1.3.5-1"], + } + base_purl, versioned_purls = get_meson_packages("ogg", package_data) + + self.assertEqual(str(base_purl), "pkg:meson/ogg") + self.assertEqual(len(versioned_purls), 4) + self.assertIn("pkg:meson/ogg@1.3.6-1", versioned_purls) + self.assertIn("pkg:meson/ogg@1.3.5-1", versioned_purls) + + def test_get_meson_packages_empty_versions(self): + """Test that get_meson_packages handles empty version lists.""" + package_data = { + "dependency_names": ["empty-pkg"], + "versions": [], + } + base_purl, versioned_purls = get_meson_packages("empty-pkg", package_data) + + self.assertEqual(str(base_purl), "pkg:meson/empty-pkg") + self.assertEqual(versioned_purls, []) + + def test_get_meson_packages_no_versions_key(self): + """Test that get_meson_packages handles missing versions key.""" + package_data = { + "dependency_names": ["no-ver"], + } + base_purl, versioned_purls = get_meson_packages("no-ver", package_data) + + self.assertEqual(str(base_purl), "pkg:meson/no-ver") + self.assertEqual(versioned_purls, []) + + def test_get_meson_packages_from_releases_json(self): + """Test parsing packages from the test releases.json fixture.""" + releases_path = DATA_DIR / "releases.json" + with open(releases_path, encoding="utf-8") as f: + releases = json.load(f) + + all_results = [] + for package_name, package_data in releases.items(): + if not package_data: + continue + all_results.append( + get_meson_packages( + package_name=package_name, + package_data=package_data, + ) + ) + + self.assertEqual(len(all_results), 3) # ogg, zlib, catch2 + + # Check ogg + ogg_base, ogg_purls = all_results[0] + self.assertEqual(str(ogg_base), "pkg:meson/ogg") + self.assertEqual(len(ogg_purls), 4) + + # Check zlib + zlib_base, zlib_purls = all_results[1] + self.assertEqual(str(zlib_base), "pkg:meson/zlib") + self.assertEqual(len(zlib_purls), 3) + + # Check catch2 + catch2_base, catch2_purls = all_results[2] + self.assertEqual(str(catch2_base), "pkg:meson/catch2") + self.assertEqual(len(catch2_purls), 2) + self.assertIn("pkg:meson/catch2@3.5.2-1", catch2_purls) diff --git a/minecode_pipelines/tests/test_data/meson/releases.json b/minecode_pipelines/tests/test_data/meson/releases.json new file mode 100644 index 00000000..133825e1 --- /dev/null +++ b/minecode_pipelines/tests/test_data/meson/releases.json @@ -0,0 +1,33 @@ +{ + "ogg": { + "dependency_names": [ + "ogg" + ], + "versions": [ + "1.3.6-1", + "1.3.5-3", + "1.3.5-2", + "1.3.5-1" + ] + }, + "zlib": { + "dependency_names": [ + "zlib" + ], + "versions": [ + "1.3.1-1", + "1.2.13-2", + "1.2.13-1" + ] + }, + "catch2": { + "dependency_names": [ + "catch2", + "catch2-with-main" + ], + "versions": [ + "3.5.2-1", + "3.4.0-1" + ] + } +} diff --git a/pyproject-minecode_pipelines.toml b/pyproject-minecode_pipelines.toml index 857597e6..5953ab8e 100644 --- a/pyproject-minecode_pipelines.toml +++ b/pyproject-minecode_pipelines.toml @@ -62,6 +62,7 @@ mine_cpan = "minecode_pipelines.pipelines.mine_cpan:MineCpan" mine_cran = "minecode_pipelines.pipelines.mine_cran:MineCran" mine_swift = "minecode_pipelines.pipelines.mine_swift:MineSwift" mine_composer = "minecode_pipelines.pipelines.mine_composer:MineComposer" +mine_meson = "minecode_pipelines.pipelines.mine_meson:MineMeson" [tool.bumpversion] current_version = "0.1.1" From 912acd894b0fedff36d6733870f4811ec2355d88 Mon Sep 17 00:00:00 2001 From: Aditya kumar singh <143548997+Adityakk9031@users.noreply.github.com> Date: Wed, 4 Mar 2026 03:00:10 +0530 Subject: [PATCH 2/3] fix --- minecode_pipelines/pipelines/mine_meson.py | 37 ++++++++----------- minecode_pipelines/pipes/meson.py | 17 ++------- minecode_pipelines/tests/pipes/test_meson.py | 35 ++++++------------ .../tests/test_data/meson/expected_purls.json | 17 +++++++++ 4 files changed, 47 insertions(+), 59 deletions(-) create mode 100644 minecode_pipelines/tests/test_data/meson/expected_purls.json diff --git a/minecode_pipelines/pipelines/mine_meson.py b/minecode_pipelines/pipelines/mine_meson.py index c1e7cf1d..00b34bcb 100644 --- a/minecode_pipelines/pipelines/mine_meson.py +++ b/minecode_pipelines/pipelines/mine_meson.py @@ -20,8 +20,7 @@ # ScanCode.io is a free software code scanning tool from nexB Inc. and others. # Visit https://github.com/aboutcode-org/scancode.io for support and download. -import json -from pathlib import Path +import requests from minecode_pipelines.pipes import meson from minecode_pipelines.pipelines import MineCodeBasePipeline @@ -31,38 +30,34 @@ class MineMeson(MineCodeBasePipeline): """Pipeline to mine Meson WrapDB packages and publish them to FederatedCode repo.""" - MESON_WRAPDB_REPO = "https://github.com/mesonbuild/wrapdb" + MESON_WRAPDB_RELEASES_URL = ( + "https://raw.githubusercontent.com/mesonbuild/wrapdb/master/releases.json" + ) @classmethod def steps(cls): return ( cls.check_federatedcode_eligibility, cls.create_federatedcode_working_dir, - cls.clone_wrapdb_index, + cls.fetch_wrapdb_releases, cls.fetch_federation_config, cls.mine_and_publish_packageurls, cls.delete_working_dir, ) - def clone_wrapdb_index(self): - """Clone the Meson WrapDB repository.""" - self.wrapdb_repo = federatedcode.clone_repository( - repo_url=self.MESON_WRAPDB_REPO, - clone_path=self.working_path / "wrapdb", - logger=self.log, - ) + def fetch_wrapdb_releases(self): + """Fetch the Meson WrapDB releases.json index.""" + try: + response = requests.get(self.MESON_WRAPDB_RELEASES_URL, timeout=30) + response.raise_for_status() + self.releases = response.json() + except Exception as e: + self.log(f"Failed to fetch releases.json: {e}") + self.releases = {} def packages_count(self): - releases_path = Path(self.wrapdb_repo.working_dir) / "releases.json" - if not releases_path.exists(): - return 0 - with open(releases_path, encoding="utf-8") as f: - releases = json.load(f) - return len(releases) + return len(self.releases) if hasattr(self, "releases") and self.releases else 0 def mine_packageurls(self): """Yield PackageURLs from Meson WrapDB releases.json.""" - return meson.mine_meson_packageurls( - wrapdb_repo=self.wrapdb_repo, - logger=self.log, - ) + return meson.mine_meson_packageurls(releases=self.releases, logger=self.log) diff --git a/minecode_pipelines/pipes/meson.py b/minecode_pipelines/pipes/meson.py index 9ea6e447..ce19b890 100644 --- a/minecode_pipelines/pipes/meson.py +++ b/minecode_pipelines/pipes/meson.py @@ -20,9 +20,6 @@ # ScanCode.io is a free software code scanning tool from nexB Inc. and others. # Visit https://github.com/aboutcode-org/scancode.io for support and download. -import json -from pathlib import Path - from packageurl import PackageURL @@ -59,19 +56,11 @@ def get_meson_packages(package_name, package_data): return base_purl, versioned_purls -def mine_meson_packageurls(wrapdb_repo, logger): +def mine_meson_packageurls(releases, logger): """ - Yield ``(base_purl, [versioned_purl_strings])`` tuples from a cloned - Meson WrapDB repository by parsing its ``releases.json``. + Yield ``(base_purl, [versioned_purl_strings])`` tuples from a + Meson WrapDB ``releases.json`` mapping. """ - releases_path = Path(wrapdb_repo.working_dir) / "releases.json" - if not releases_path.exists(): - logger(f"releases.json not found at {releases_path}") - return - - with open(releases_path, encoding="utf-8") as f: - releases = json.load(f) - for package_name, package_data in releases.items(): if not package_data: continue diff --git a/minecode_pipelines/tests/pipes/test_meson.py b/minecode_pipelines/tests/pipes/test_meson.py index 315cfdcd..0d5a42f7 100644 --- a/minecode_pipelines/tests/pipes/test_meson.py +++ b/minecode_pipelines/tests/pipes/test_meson.py @@ -15,6 +15,7 @@ from minecode_pipelines.pipes.meson import get_meson_packages DATA_DIR = Path(__file__).parent.parent / "test_data" / "meson" +EXPECTED_PATH = DATA_DIR / "expected_purls.json" class MesonPipeTests(TestCase): @@ -53,36 +54,22 @@ def test_get_meson_packages_no_versions_key(self): self.assertEqual(versioned_purls, []) def test_get_meson_packages_from_releases_json(self): - """Test parsing packages from the test releases.json fixture.""" + """Test parsing packages from the test releases.json fixture with data-driven expected output.""" releases_path = DATA_DIR / "releases.json" with open(releases_path, encoding="utf-8") as f: releases = json.load(f) - all_results = [] + actual = {} for package_name, package_data in releases.items(): if not package_data: continue - all_results.append( - get_meson_packages( - package_name=package_name, - package_data=package_data, - ) + base_purl, versioned_purls = get_meson_packages( + package_name=package_name, + package_data=package_data, ) + actual[str(base_purl)] = sorted(versioned_purls) - self.assertEqual(len(all_results), 3) # ogg, zlib, catch2 - - # Check ogg - ogg_base, ogg_purls = all_results[0] - self.assertEqual(str(ogg_base), "pkg:meson/ogg") - self.assertEqual(len(ogg_purls), 4) - - # Check zlib - zlib_base, zlib_purls = all_results[1] - self.assertEqual(str(zlib_base), "pkg:meson/zlib") - self.assertEqual(len(zlib_purls), 3) - - # Check catch2 - catch2_base, catch2_purls = all_results[2] - self.assertEqual(str(catch2_base), "pkg:meson/catch2") - self.assertEqual(len(catch2_purls), 2) - self.assertIn("pkg:meson/catch2@3.5.2-1", catch2_purls) + with open(EXPECTED_PATH, encoding="utf-8") as ef: + expected = json.load(ef) + filtered_actual = {k: actual[k] for k in expected.keys()} + self.assertEqual(filtered_actual, expected) diff --git a/minecode_pipelines/tests/test_data/meson/expected_purls.json b/minecode_pipelines/tests/test_data/meson/expected_purls.json new file mode 100644 index 00000000..ff87d635 --- /dev/null +++ b/minecode_pipelines/tests/test_data/meson/expected_purls.json @@ -0,0 +1,17 @@ +{ + "pkg:meson/ogg": [ + "pkg:meson/ogg@1.3.5-1", + "pkg:meson/ogg@1.3.5-2", + "pkg:meson/ogg@1.3.5-3", + "pkg:meson/ogg@1.3.6-1" + ], + "pkg:meson/zlib": [ + "pkg:meson/zlib@1.2.13-1", + "pkg:meson/zlib@1.2.13-2", + "pkg:meson/zlib@1.3.1-1" + ], + "pkg:meson/catch2": [ + "pkg:meson/catch2@3.4.0-1", + "pkg:meson/catch2@3.5.2-1" + ] +} From d2befdedbe6d92b9c53c5fddcda5c0d0504e2428 Mon Sep 17 00:00:00 2001 From: Aditya kumar singh <143548997+Adityakk9031@users.noreply.github.com> Date: Wed, 4 Mar 2026 19:02:39 +0530 Subject: [PATCH 3/3] Address review: real test data, data-driven tests, remove unused import Signed-off-by: Aditya kumar singh <143548997+Adityakk9031@users.noreply.github.com> --- minecode_pipelines/pipelines/mine_meson.py | 5 +- minecode_pipelines/pipes/meson.py | 5 -- minecode_pipelines/tests/pipes/test_meson.py | 27 +++----- .../tests/test_data/meson/expected_purls.json | 51 +++++++++++---- .../tests/test_data/meson/releases.json | 65 +++++++++++++++---- 5 files changed, 104 insertions(+), 49 deletions(-) diff --git a/minecode_pipelines/pipelines/mine_meson.py b/minecode_pipelines/pipelines/mine_meson.py index 00b34bcb..4b55f4ac 100644 --- a/minecode_pipelines/pipelines/mine_meson.py +++ b/minecode_pipelines/pipelines/mine_meson.py @@ -24,7 +24,6 @@ from minecode_pipelines.pipes import meson from minecode_pipelines.pipelines import MineCodeBasePipeline -from scanpipe.pipes import federatedcode class MineMeson(MineCodeBasePipeline): @@ -56,6 +55,10 @@ def fetch_wrapdb_releases(self): self.releases = {} def packages_count(self): + """Return the number of packages in the WrapDB releases index. + + Used by MineCodeBasePipeline to report mining progress. + """ return len(self.releases) if hasattr(self, "releases") and self.releases else 0 def mine_packageurls(self): diff --git a/minecode_pipelines/pipes/meson.py b/minecode_pipelines/pipes/meson.py index ce19b890..7766bd4e 100644 --- a/minecode_pipelines/pipes/meson.py +++ b/minecode_pipelines/pipes/meson.py @@ -23,11 +23,6 @@ from packageurl import PackageURL -MESON_WRAPDB_RELEASES_URL = ( - "https://raw.githubusercontent.com/mesonbuild/wrapdb/master/releases.json" -) - - def get_meson_packages(package_name, package_data): """ Return a tuple of (base_purl, [versioned_purl_strings]) for a single diff --git a/minecode_pipelines/tests/pipes/test_meson.py b/minecode_pipelines/tests/pipes/test_meson.py index 0d5a42f7..da88ac69 100644 --- a/minecode_pipelines/tests/pipes/test_meson.py +++ b/minecode_pipelines/tests/pipes/test_meson.py @@ -15,23 +15,9 @@ from minecode_pipelines.pipes.meson import get_meson_packages DATA_DIR = Path(__file__).parent.parent / "test_data" / "meson" -EXPECTED_PATH = DATA_DIR / "expected_purls.json" class MesonPipeTests(TestCase): - def test_get_meson_packages_basic(self): - """Test that get_meson_packages correctly parses a single package entry.""" - package_data = { - "dependency_names": ["ogg"], - "versions": ["1.3.6-1", "1.3.5-3", "1.3.5-2", "1.3.5-1"], - } - base_purl, versioned_purls = get_meson_packages("ogg", package_data) - - self.assertEqual(str(base_purl), "pkg:meson/ogg") - self.assertEqual(len(versioned_purls), 4) - self.assertIn("pkg:meson/ogg@1.3.6-1", versioned_purls) - self.assertIn("pkg:meson/ogg@1.3.5-1", versioned_purls) - def test_get_meson_packages_empty_versions(self): """Test that get_meson_packages handles empty version lists.""" package_data = { @@ -54,11 +40,17 @@ def test_get_meson_packages_no_versions_key(self): self.assertEqual(versioned_purls, []) def test_get_meson_packages_from_releases_json(self): - """Test parsing packages from the test releases.json fixture with data-driven expected output.""" + """Test parsing packages from the real WrapDB releases.json fixture + using data-driven expected output.""" releases_path = DATA_DIR / "releases.json" + expected_path = DATA_DIR / "expected_purls.json" + with open(releases_path, encoding="utf-8") as f: releases = json.load(f) + with open(expected_path, encoding="utf-8") as f: + expected = json.load(f) + actual = {} for package_name, package_data in releases.items(): if not package_data: @@ -69,7 +61,4 @@ def test_get_meson_packages_from_releases_json(self): ) actual[str(base_purl)] = sorted(versioned_purls) - with open(EXPECTED_PATH, encoding="utf-8") as ef: - expected = json.load(ef) - filtered_actual = {k: actual[k] for k in expected.keys()} - self.assertEqual(filtered_actual, expected) + self.assertEqual(actual, expected) diff --git a/minecode_pipelines/tests/test_data/meson/expected_purls.json b/minecode_pipelines/tests/test_data/meson/expected_purls.json index ff87d635..57c69b49 100644 --- a/minecode_pipelines/tests/test_data/meson/expected_purls.json +++ b/minecode_pipelines/tests/test_data/meson/expected_purls.json @@ -1,17 +1,46 @@ { - "pkg:meson/ogg": [ - "pkg:meson/ogg@1.3.5-1", - "pkg:meson/ogg@1.3.5-2", - "pkg:meson/ogg@1.3.5-3", - "pkg:meson/ogg@1.3.6-1" + "pkg:meson/adamyaxley-obfuscate": [ + "pkg:meson/adamyaxley-obfuscate@1.0.0-1" ], - "pkg:meson/zlib": [ - "pkg:meson/zlib@1.2.13-1", - "pkg:meson/zlib@1.2.13-2", - "pkg:meson/zlib@1.3.1-1" + "pkg:meson/aklomp-base64": [ + "pkg:meson/aklomp-base64@0.5.2-1" + ], + "pkg:meson/apache-orc": [ + "pkg:meson/apache-orc@2.2.0-1", + "pkg:meson/apache-orc@2.2.1-1", + "pkg:meson/apache-orc@2.2.2-1" + ], + "pkg:meson/bzip2": [ + "pkg:meson/bzip2@1.0.8-1" ], "pkg:meson/catch2": [ + "pkg:meson/catch2@2.11.1-1", + "pkg:meson/catch2@2.11.3-1", + "pkg:meson/catch2@2.13.3-1", + "pkg:meson/catch2@2.13.3-2", + "pkg:meson/catch2@2.13.7-1", + "pkg:meson/catch2@2.13.8-1", + "pkg:meson/catch2@2.4.1-1", + "pkg:meson/catch2@2.5.0-1", + "pkg:meson/catch2@2.7.2-1", + "pkg:meson/catch2@2.8.0-1", + "pkg:meson/catch2@2.9.0-1", + "pkg:meson/catch2@3.1.0-1", + "pkg:meson/catch2@3.10.0-1", + "pkg:meson/catch2@3.11.0-1", + "pkg:meson/catch2@3.12.0-1", + "pkg:meson/catch2@3.13.0-1", + "pkg:meson/catch2@3.2.0-1", + "pkg:meson/catch2@3.3.2-1", "pkg:meson/catch2@3.4.0-1", - "pkg:meson/catch2@3.5.2-1" + "pkg:meson/catch2@3.5.2-1", + "pkg:meson/catch2@3.5.3-1", + "pkg:meson/catch2@3.5.4-1", + "pkg:meson/catch2@3.6.0-1", + "pkg:meson/catch2@3.7.0-1", + "pkg:meson/catch2@3.7.1-1", + "pkg:meson/catch2@3.8.0-1", + "pkg:meson/catch2@3.8.1-1", + "pkg:meson/catch2@3.9.1-1" ] -} +} \ No newline at end of file diff --git a/minecode_pipelines/tests/test_data/meson/releases.json b/minecode_pipelines/tests/test_data/meson/releases.json index 133825e1..f6f24724 100644 --- a/minecode_pipelines/tests/test_data/meson/releases.json +++ b/minecode_pipelines/tests/test_data/meson/releases.json @@ -1,23 +1,36 @@ { - "ogg": { + "adamyaxley-obfuscate": { "dependency_names": [ - "ogg" + "Obfuscate" ], "versions": [ - "1.3.6-1", - "1.3.5-3", - "1.3.5-2", - "1.3.5-1" + "1.0.0-1" ] }, - "zlib": { + "aklomp-base64": { "dependency_names": [ - "zlib" + "base64" ], "versions": [ - "1.3.1-1", - "1.2.13-2", - "1.2.13-1" + "0.5.2-1" + ] + }, + "apache-orc": { + "dependency_names": [ + "orc" + ], + "versions": [ + "2.2.2-1", + "2.2.1-1", + "2.2.0-1" + ] + }, + "bzip2": { + "dependency_names": [ + "bzip2" + ], + "versions": [ + "1.0.8-1" ] }, "catch2": { @@ -26,8 +39,34 @@ "catch2-with-main" ], "versions": [ + "3.13.0-1", + "3.12.0-1", + "3.11.0-1", + "3.10.0-1", + "3.9.1-1", + "3.8.1-1", + "3.8.0-1", + "3.7.1-1", + "3.7.0-1", + "3.6.0-1", + "3.5.4-1", + "3.5.3-1", "3.5.2-1", - "3.4.0-1" + "3.4.0-1", + "3.3.2-1", + "3.2.0-1", + "3.1.0-1", + "2.13.8-1", + "2.13.7-1", + "2.13.3-2", + "2.13.3-1", + "2.11.3-1", + "2.11.1-1", + "2.9.0-1", + "2.8.0-1", + "2.7.2-1", + "2.5.0-1", + "2.4.1-1" ] } -} +} \ No newline at end of file