File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed
Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -664,6 +664,9 @@ def _compute_build_time_dependencies(
664664 version = packaging.version.parse(importlib_metadata.version(name))
665665 except importlib_metadata.PackageNotFoundError as exc:
666666 raise ConfigError(f'package "{name}" specified in "build-time-pins" not found: {template!r}') from exc
667+ if version.is_devrelease or version.is_prerelease:
668+ print('meson-python: build-time pin for pre-release version "{version}" of "{name}" not generared: {template!r}')
669+ continue
667670 pin = packaging.requirements.Requirement(template.format(v=version))
668671 if pin.marker:
669672 raise ConfigError(f'requirements in "build-time-pins" cannot contain markers: {template!r}')
Original file line number Diff line number Diff line change @@ -263,3 +263,29 @@ def test_build_time_pins(wheel_dynamic_dependencies):
263263 Requires-Dist: meson-python>=0.13.0
264264 Requires-Dist: packaging~={packaging_version.major}.{packaging_version.minor}
265265 ''')
266+
267+
268+ def test_compute_build_time_dependencies(monkeypatch):
269+ versions = {
270+ 'aaa': '1.2.3',
271+ 'bbb': '4.5.6',
272+ 'ddd': '1.0.0rc1', # pre-release will not be added to build-time dependencies
273+ }
274+ monkeypatch.setattr(importlib_metadata, 'version', lambda package: versions.get(package))
275+ deps = [
276+ 'bbb>=0.1',
277+ 'ccc>=0.2',
278+ 'ddd>=0.3',
279+ ]
280+ pins = [
281+ 'aaa>={v}',
282+ 'bbb~={v.major}.{v.minor}',
283+ 'ddd=={v}',
284+ ]
285+ r = mesonpy._compute_build_time_dependencies([packaging.requirements.Requirement(x) for x in deps], pins)
286+ assert sorted(str(x) for x in r) == [
287+ 'aaa>=1.2.3',
288+ 'bbb>=0.1,~=4.5',
289+ 'ccc>=0.2',
290+ 'ddd>=0.3',
291+ ]
You can’t perform that action at this time.
0 commit comments