Skip to content

Commit c3348bf

Browse files
authored
feat: 0.11+ default to metadata 2.2 (#986)
This has big performance benefits, and should be well supported now. Signed-off-by: Henry Schreiner <[email protected]>
1 parent 122ed79 commit c3348bf

File tree

8 files changed

+23
-16
lines changed

8 files changed

+23
-16
lines changed

src/scikit_build_core/build/metadata.py

+6
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,10 @@ def get_standard_metadata(
104104
"Packaging 24.2+ required for license normalization. Please update (Python 3.8+ required)"
105105
)
106106

107+
# For scikit-build-core >= 0.11, we set METADATA 2.2 as minimum
108+
if (
109+
settings.minimum_version is None or settings.minimum_version >= Version("0.11")
110+
) and metadata.auto_metadata_version == "2.1":
111+
metadata.metadata_version = "2.2"
112+
107113
return metadata

src/scikit_build_core/resources/find_python/FindPython/Support.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ if (NOT DEFINED _${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR)
3434
message (FATAL_ERROR "FindPython: INTERNAL ERROR")
3535
endif()
3636
if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "3")
37-
set(_${_PYTHON_PREFIX}_VERSIONS 3.12 3.11 3.10 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
37+
set(_${_PYTHON_PREFIX}_VERSIONS 3.14 3.13 3.12 3.11 3.10 3.9 3.8 3.7 3.6 3.5 3.4 3.3 3.2 3.1 3.0)
3838
elseif (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "2")
3939
set(_${_PYTHON_PREFIX}_VERSIONS 2.7 2.6 2.5 2.4 2.3 2.2 2.1 2.0)
4040
else()

tests/conftest.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,10 @@ def package_simple_pyproject_ext(
211211
) -> PackageInfo:
212212
package = PackageInfo(
213213
"simple_pyproject_ext",
214-
"72cd37019e113cbabebdceb79bc867f8e1a4fc7323b6a272e6a77d6ea384d3e8",
215-
"be15157c8659f258b73eb474616473d60945c4d45693796b55234ec83893263a",
216-
"d97cd496aa6c46df2caf5064a7765588c831b8db9d7b46a536026ed951ce724a",
217-
"b1182a2aa7a2b81365b3ad7ae1839b20d983ef10b6c3de16b681c23f536ca1b7",
214+
"58a92cd71f7750633296b0a44363e661ed83a908985158b83c187043ace6de4a",
215+
"83c81c1b9ce2e065ac30d129d48628e01a37248f15035a8427a045a7d8e40c43",
216+
"d04620a35f173ce8c94dbfdc48543e7b9f33474d6ee51221eec78b49f38b8766",
217+
"d8b64bff613747b421f7c705bd9ce41b95164772a5b96789b27df79d83836148",
218218
)
219219
process_package(package, tmp_path, monkeypatch)
220220
return package

tests/test_prepare_metadata.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def test_prepare_metadata_for_build(fp, editable):
3535
assert (
3636
textwrap.dedent(
3737
"""\
38-
Metadata-Version: 2.1
38+
Metadata-Version: 2.2
3939
Name: simplest
4040
Version: 0.0.1"""
4141
)

tests/test_pyproject_pep517.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def test_pep517_sdist():
4747
expected_metadata = (
4848
inspect.cleandoc(
4949
"""
50-
Metadata-Version: 2.1
50+
Metadata-Version: 2.2
5151
Name: CMake.Example
5252
Version: 0.0.1
5353
Requires-Python: >=3.7
@@ -226,7 +226,7 @@ def test_pep517_wheel(virtualenv):
226226

227227
print(entry_points == ENTRYPOINTS)
228228
assert 'Requires-Dist: pytest>=6.0; extra == "test"' in metadata
229-
assert "Metadata-Version: 2.1" in metadata
229+
assert "Metadata-Version: 2.2" in metadata
230230
assert "Name: CMake.Example" in metadata
231231
assert "Version: 0.0.1" in metadata
232232
assert "Requires-Python: >=3.7" in metadata
@@ -279,7 +279,7 @@ def test_pep517_wheel_source_dir(virtualenv):
279279

280280
print(entry_points == ENTRYPOINTS)
281281
assert 'Requires-Dist: pytest>=6.0; extra == "test"' in metadata
282-
assert "Metadata-Version: 2.1" in metadata
282+
assert "Metadata-Version: 2.2" in metadata
283283
assert "Name: CMake.Example" in metadata
284284
assert "Version: 0.0.1" in metadata
285285
assert "Requires-Python: >=3.7" in metadata
@@ -331,7 +331,7 @@ def test_pep517_wheel_time_hash(monkeypatch):
331331
def test_prepare_metdata_for_build_wheel():
332332
metadata = build.util.project_wheel_metadata(str(Path.cwd()), isolated=False)
333333
answer = {
334-
"Metadata-Version": "2.1",
334+
"Metadata-Version": "2.2",
335335
"Name": "CMake.Example",
336336
"Version": "0.0.1",
337337
"Requires-Python": ">=3.7",
@@ -353,7 +353,7 @@ def test_prepare_metdata_for_build_wheel_by_hand(tmp_path):
353353
print("Metadata dir:", (mddir / out).resolve())
354354
metadata = PathDistribution(mddir / out).metadata
355355
answer = {
356-
"Metadata-Version": "2.1",
356+
"Metadata-Version": "2.2",
357357
"Name": "CMake.Example",
358358
"Version": "0.0.1",
359359
"Requires-Python": ">=3.7",

tests/test_pyproject_pep518.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def compute_uncompressed_hash(inp: Path):
2828
def test_pep518_sdist(isolated, package_simple_pyproject_ext):
2929
correct_metadata = textwrap.dedent(
3030
"""\
31-
Metadata-Version: 2.1
31+
Metadata-Version: 2.2
3232
Name: CMake.Example
3333
Version: 0.0.1
3434
Requires-Python: >=3.7
@@ -74,7 +74,7 @@ def test_pep518_sdist_with_cmake_config(isolated, cleanup_overwrite):
7474

7575
correct_metadata = textwrap.dedent(
7676
"""\
77-
Metadata-Version: 2.1
77+
Metadata-Version: 2.2
7878
Name: sdist_config
7979
Version: 0.1.0
8080

tests/test_pyproject_pep660.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def test_pep660_wheel(editable_mode: str):
4545
assert "_simplest_editable.py" not in file_names
4646
assert "_simplest_editable.pth" in file_names
4747

48-
assert "Metadata-Version: 2.1" in metadata
48+
assert "Metadata-Version: 2.2" in metadata
4949
assert "Name: simplest" in metadata
5050
assert "Version: 0.0.1" in metadata
5151

tests/test_wheelfile_utils.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ def test_wheel_writer_simple(tmp_path, monkeypatch):
2424
"name": "something",
2525
"version": "1.2.3",
2626
},
27-
}
27+
},
28+
metadata_version="2.3",
2829
)
2930
out_dir = tmp_path / "out"
3031

@@ -46,7 +47,7 @@ def test_wheel_writer_simple(tmp_path, monkeypatch):
4647

4748
dist_info = wheel.dist_info_contents()
4849
assert dist_info == {
49-
"METADATA": b"Metadata-Version: 2.1\nName: something\nVersion: 1.2.3\n\n",
50+
"METADATA": b"Metadata-Version: 2.3\nName: something\nVersion: 1.2.3\n\n",
5051
"WHEEL": b"Wheel-Version: 1.0\nGenerator: scikit-build-core 1.2.3\nRoot-Is-Purelib: false\nTag: py3-none-any\n\n",
5152
}
5253

0 commit comments

Comments
 (0)