diff --git a/python-scikit-build-core.changes b/python-scikit-build-core.changes index a8703b7..9489fc2 100644 --- a/python-scikit-build-core.changes +++ b/python-scikit-build-core.changes @@ -1,3 +1,230 @@ +------------------------------------------------------------------- +Sun Jun 9 18:50:49 UTC 2024 - Ben Greiner + +- Update to 0.9.5 + * Support Windows free-threading by @henryiii in #759 + * Strip whitespace around generator so that it's passed through + correctly by @vyasr in #748 +- Version 0.9.4 + * This version supports the newly available free-threading + variant of Python 3.13b1 (mostly related to skipping the stable + ABI). We test this via the manylinux/musllinux images. There's + also a new feature requested by third-party packagers; the + ability to pass args directly to the build tool + * Add build.tool-args by @henryiii in #733 + ## Fixes: + * Support free-threaded builds of Python 3.13+ on Linux by + @henryiii in #741 + * Slightly better stable ABI behavior using PyPy by @henryiii in + #741 +- Version 0.9.3 + * This version ensures the Hatchling plugin correctly indicates + editable mode is not yet supported, supports CMAKE_ARGS that + have spaces, and has a bit of other minor cleanup. + ## Fixes: + * Properly indicate lack of editable support in Hatch plugin by + @ofek in #728 + * Don't generate entrypoints.txt if none set by @henryiii in #729 + * Don't warn if lib not found on UNIX, just debug by @henryiii in + #730 + * Support CMAKE_ARGS that may have spaces inside quotes by @vyasr + in #727 +- Version 0.9.2 + * Quick fix for quick fix in 0.9.1; if cmake is a broken script + (which can happen if you pip install outside an environment + then enter an environment, there was an unbound local error + instead of ignoring the broken cmake script.) + ## Fixes: + * Unbound local error by @henryiii in #719 +- Version 0.9.1 + * Quick fix for Pyodide (WebAssembly) builds. + ## Fixes: + * Try --version if -E capabilities fails by @henryiii in #717 +- Version 0.9.0 + * This version adds the ability to inherit in override tables, + matching a similar feature added to cibuildwheel 2.17's + overrides. You can now write out extra metadata to + ${SKBUILD_METADATA_DIR}. A new Hatchling plugin is provided as + an experimental feature (will likely be made a separate package + in the future like the setuptools plugin). + * The meaning of wheel.exclude has been changed to match on the + wheel path, rather than the source path. We could not find any + projects that would be affected by this change, so it was not + added to the minimum-version protection policy. This now allows + you to ignore CMake outputs as well. + ## Features: + * Preserve additivity of cmake.define across overrides tables by + @stubbiali in #564 + * Add metadata dir access by @henryiii in #702 + * Experimental hatchling builder by @henryiii and + @aryamanjeendgar in #637 + * Vendor pyproject-metadata by @henryiii in #703 + * Always require pathspec by @henryiii in #711 + ## Fixes: + * Exclude installed files if listed in exclude by @henryiii in + #652 + * Make .git_archival.txt reproducible by @LecrisUT in #706 + * Use cmake -E capabilities instead of cmake --version by + @KyleFromNVIDIA in #675 + * Ensure many/musl tags not selected by @henryiii in #698 + * purelib should set py3 tag if unset by @henryiii in #661 + * Validate description for 0.9+ by @henryiii in #709 + * Support bools in config settings by @henryiii in #712 + ## API changes: + * extra_settings for SettingsReader by @henryiii in #697 + * GetRequires args changed by @henryiii in #699 + * Make from_file a little more powerful by @henryiii in #700 + * Metadata is part of the build backend by @henryiii in #708 +- Version 0.8.2 + * This version fixes a few small issues related to configuration. + The wheel tag is fixed when wheel.platlib is False, inplace + editable installs ignore build-dir, and install-dir no longer + affects the generate path. + ## Fixes: + * Ensure wheel.platlib being false sets - as + "none-any" by @jcfr in #655 + * Inplace editable install should ignore build-dir by @henryiii + in #644 + * install-dir shouldn't affect generate path by @henryiii in #654 + * Expand info printing by @henryiii in #651 +- Version 0.8.1 + * This version fixes two small issues with specific situations: + if ninja/cmake is present but not executable, and ninja on + Windows not respecting the build type. + ## Fixes: + * Do not exit with exec permission error in ninja check by + @thewtex in #626 + * Include CMAKE_BUILD_TYPE on Windows Ninja by @henryiii in #640 + * Use - vs _ in error message by @nbelakovski in #638 + * Make run command logged at info by @LecrisUT in #639 +- Version 0.8.0 + * This version replaces the cmake/ninja minimum-version config + option with a more powerful free-form version field. + Scikit-build-core will now respect CMAKE_EXECUTABLE for finding + CMake. You can override based on the build state, allowing + overrides for editable installs, for example. You can specify a + build tag (AKA build number). And you can define CMake + variables from environment variables. + ## Features: + * Add build-tag by @henryiii in #612 + * Add if.state to overrides by @henryiii in #600 + * Add cmake.version and ninja.version by @henryiii in #602 + * Support CMAKE_EXECUTABLE by @henryiii in #603 + * Config to set CMake variables with environment variables by + @stubbiali in #565 + ## Fixes: + * Include license file entry in search by @henryiii in #601 + * Make sure purelib is indicated by @henryiii in #613 + * Project version should always be CMake parsable by @henryiii in + #608 +- Version 0.7.1 + * This is a quick fix for a downstream change in + hatch-fancy-pypi-readme that broke our plugin wrapper. + ## Fixes: + * Patch for change in hatch-fancy-pypi-readme by @henryiii in + #593 +- Version 0.7.0 + * This release features several large improvements to overrides: + a new if.any group to allow selections based on any item being + true, and a new if.env option for selecting an override based + on environment variables. You can now build pure Python + packages with wheel.cmake = false, perfect for providing a + slower pure Python version of a package on unsupported systems + via overrides. + * There's also a new inplace mode for editable installs, which + has drawbacks but feels like the classic "--inplace" setting in + setuptools and can enable some tooling that would otherwise not + support modern editable installs to work. If you are using + Cython to access .pxd files, modern ("redirect") editable + installs now support that. And to help avoid collisions with a + future user feature, config settings can now be passed with an + optional namespace, skbuild., as well. + ## Features: + * Add inplace mode for editable installs by @henryiii in #553 + * Add wheel.exclude by @henryiii in #560 + * Support cmake-less runs (for overrides) by @henryiii in #550 + * Support if.any by @henryiii in #548 + * Support if.env by @henryiii in #549 + * Support namespaced config settings (skbuild.) by @henryiii in + #556 + ## Fixes: + * Correct issue with editable template & add more tests by + @henryiii in #552 + * Support editable installs of Cython .pxd files by @vyasr in + #516 +- Version 0.6.1 + ## Fixes: + * Editable package imports fix (regression in 0.6.0) by @henryiii + in #546 + * Filter CMAKE_ARGS and debug printout by @henryiii in #543 +- Version 0.6.0 + * This release features overrides, a system similar to mypy and + cibuildwheel's overrides, allowing static configuration of + special cases, like different settings per operating system or + Python version ranges. It also features preliminary support for + importlib.resources in editable mode. + ## Features: + * Adding overrides by @henryiii in #514 + * Overrides platform node by @0xTowel in #526 + * Support importlib.resources in editable installs by @LecrisUT + in #399 + ## Fixes: + * Better handling for -G by @henryiii in #483 + * Nicer error message when SCM version missing by @henryiii in + #528 + * (schema) Fix a typo and better metadata support by @henryiii in + #522 + * (setuptools) Remove DEBUG envvar by @henryiii in #527 +- Version 0.5.1 + ## Features: + * Add {build_type} and {state} to build-dir by @henryiii in #504 + * Include 'python' dir as an auto search path by @henryiii in + #499 + ## Fixes: + * Parse CMake version strings containing '-' by @jllllll in #508 + * Set NumPy include directory if known by @henryiii in #482 + * Adapt for setuptools_scm 8 writing change by @henryiii in #509 + * (setuptools) Support build_type set in toml by @henryiii in + #498 +- Version 0.5.0 + * This release sees the addition of a generated schema, which has + also been contributed to SchemaStore, enabling + tool.scikit-build to be understood by most editors. There's + also now a way to enable CMake during the SDist step, a new + regex plugin, and a mechanism to write metadata to a file + without having to depend on the plugin. + ## Features: + * Add option to run CMake during SDist creation by @henryiii in + #454 + * Add a schema for validate-pyproject by @henryiii in #447, #450, + #455 + * Added regex plugin and dynamic-metadata rewrite by @henryiii in + #457 + * Add configuration option to write metadata to file by @henryiii + in #459 + ## Fixes: + * Normalize sdist names by @henryiii in #434 + * Report cmake/ninja required if already present by @henryiii in + #462 +- Version 0.4.8 + * This release focus on two fixes that correct some interference + issues with other setuptools plugins. A few new features were + added (opt-in only): the ability to select build targets, + install components, and opt-in --strip (will be opt-out in 0.5 + if the minimum-version is set to 0.5+ or unset). + ## Features: + * Add build target support by @henryiii in #432 + * Add component support and strip support by @henryiii in #430 + ## Fixes: + * (setuptools) Avoid instantiating build too soon by @henryiii in + #443 + * (setuptools) Avoid interfering with other setuptools plugins by + @henryiii in #414 + * Only link to valid module paths (not things like gitignore) in + editable installs by @henryiii in #444 +- Add scikit-build-core-pr764-printversion.patch + * gh#scikit-build/scikit-build-core#764 + ------------------------------------------------------------------- Mon Apr 8 10:39:28 UTC 2024 - Dirk Müller diff --git a/python-scikit-build-core.rpmlintrc b/python-scikit-build-core.rpmlintrc deleted file mode 100644 index 7c28013..0000000 --- a/python-scikit-build-core.rpmlintrc +++ /dev/null @@ -1,6 +0,0 @@ -# False positives due to rpmlint's inability to read python versioned requires -addFilter("W: python-missing-require exceptiongroup") -addFilter("W: python-missing-require importlib-metadata") -addFilter("W: python-missing-require importlib-resources") -addFilter("W: python-missing-require typing-extensions") -addFilter("W: python-missing-require tomli") diff --git a/python-scikit-build-core.spec b/python-scikit-build-core.spec index 14ebc5f..af088c6 100644 --- a/python-scikit-build-core.spec +++ b/python-scikit-build-core.spec @@ -18,52 +18,55 @@ %{?sle15_python_module_pythons} Name: python-scikit-build-core -Version: 0.4.7 +Version: 0.9.5 Release: 0 Summary: Build backend for CMake based projects License: Apache-2.0 URL: https://github.com/scikit-build/scikit-build-core Source0: https://files.pythonhosted.org/packages/source/s/scikit_build_core/scikit_build_core-%{version}.tar.gz -Source1: %{name}.rpmlintrc +# PATCH-FIX-UPSTREAM scikit-build-core-pr764-printversion.patch gh#scikit-build/scikit-build-core#764 +Patch0: scikit-build-core-pr764-printversion.patch # PATCH-FEATURE-OPENSUSE scikit-build-core-offline-wheelhouse.patch provide the testing wheels without runtime download code@bnavigator.de Patch1: scikit-build-core-offline-wheelhouse.patch BuildRequires: %{python_module base >= 3.7} BuildRequires: %{python_module hatch-vcs} BuildRequires: %{python_module hatchling} -BuildRequires: %{python_module packaging >= 20.9} +BuildRequires: %{python_module packaging >= 21.3} BuildRequires: %{python_module pip} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: cmake >= 3.15 -Requires: python-packaging >= 20.9 -Requires: (python-exceptiongroup if python-base < 3.11) +Requires: python-packaging >= 21.3 +Requires: python-pathspec >= 0.10.1 +Requires: (python-exceptiongroup >= 1 if python-base < 3.11) +Requires: (python-importlib-metadata >= 4.13 if python-base < 3.8) Requires: (python-importlib-resources >= 1.3 if python-base < 3.9) -Requires: (python-tomli >= 1.1 if python-base < 3.11) -Requires: (python-typing-extensions >= 3.10.0 if python-base < 3.8) +Requires: (python-tomli >= 1.2.2 if python-base < 3.11) +Requires: (python-typing-extensions >= 3.10.0 if python-base < 3.9) Recommends: ninja Recommends: python-rich Provides: python-scikit_build_core = %{version}-%{release} # SECTION require runtime -BuildRequires: %{python_module exceptiongroup if %python-base < 3.11} +BuildRequires: %{python_module exceptiongroup >= 1 if %python-base < 3.11} +BuildRequires: %{python_module importlib-metadata >= 4.13 if %python-base < 3.8} BuildRequires: %{python_module importlib-resources >= 1.3 if %python-base < 3.9} -BuildRequires: %{python_module tomli >= 1.1 if %python-base < 3.11} -BuildRequires: %{python_module typing-extensions >= 3.10.0 if %python-base < 3.8} +BuildRequires: %{python_module pathspec >= 0.10.1} +BuildRequires: %{python_module tomli >= 1.2.2 if %python-base < 3.11} +BuildRequires: %{python_module typing-extensions >= 3.10.0 if %python-base < 3.9} BuildRequires: cmake >= 3.15 BuildArch: noarch # /SECITON # SECTION test requirements -BuildRequires: %{python_module build} +BuildRequires: %{python_module build >= 0.8} BuildRequires: %{python_module cattrs >= 22.2.0} BuildRequires: %{python_module devel} BuildRequires: %{python_module distlib >= 0.3.5} -BuildRequires: %{python_module importlib-metadata if %python-base < 3.8} -BuildRequires: %{python_module pathspec >= 0.10.1} -BuildRequires: %{python_module pybind11-devel} -BuildRequires: %{python_module pyproject-metadata >= 0.5} +BuildRequires: %{python_module pybind11-devel >= 2.11} BuildRequires: %{python_module pytest >= 7.2} BuildRequires: %{python_module pytest-subprocess >= 1.5.0} BuildRequires: %{python_module rich} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module virtualenv >= 20.20} BuildRequires: %{python_module wheel} BuildRequires: gcc-c++ BuildRequires: ninja @@ -87,9 +90,6 @@ Features over classic Scikit-build: %package pyproject Summary: The scikit_build_core[pyproject] extra -Requires: python-distlib >= 0.3.5 -Requires: python-pathspec >= 0.10.1 -Requires: python-pyproject-metadata >= 0.5 Requires: python-scikit-build-core = %{version} Provides: python-scikit_build_core-pyproject = %{version}-%{release} diff --git a/scikit-build-core-offline-wheelhouse.patch b/scikit-build-core-offline-wheelhouse.patch index 5128027..815b228 100644 --- a/scikit-build-core-offline-wheelhouse.patch +++ b/scikit-build-core-offline-wheelhouse.patch @@ -2,7 +2,7 @@ Index: scikit_build_core-0.4.7/tests/conftest.py =================================================================== --- scikit_build_core-0.4.7.orig/tests/conftest.py +++ scikit_build_core-0.4.7/tests/conftest.py -@@ -36,50 +36,7 @@ BASE = DIR.parent +@@ -34,52 +34,7 @@ BASE = DIR.parent @pytest.fixture(scope="session") def pep518_wheelhouse(tmp_path_factory: pytest.TempPathFactory) -> Path: @@ -16,14 +16,16 @@ Index: scikit_build_core-0.4.7/tests/conftest.py - "wheel", - "--wheel-dir", - str(wheelhouse), -- f"{BASE}[pyproject]", +- f"{BASE}", - ], - check=True, - ) - packages = [ - "build", +- "cython", - "hatchling", -- "pip>=23", +- "pip>=23; python_version<'3.13'", +- "pip>=24.1b1; python_version>='3.13'", - "pybind11", - "setuptools", - "virtualenv", @@ -53,4 +55,4 @@ Index: scikit_build_core-0.4.7/tests/conftest.py + return os.getcwd() + '/build' - class VEnv(EnvBuilder): + class VEnv: diff --git a/scikit-build-core-pr764-printversion.patch b/scikit-build-core-pr764-printversion.patch new file mode 100644 index 0000000..6493fc0 --- /dev/null +++ b/scikit-build-core-pr764-printversion.patch @@ -0,0 +1,85 @@ +From bc81cb1250ab4488fef55c081feccf6620e28144 Mon Sep 17 00:00:00 2001 +From: Ben Greiner +Date: Sun, 9 Jun 2024 22:07:19 +0200 +Subject: [PATCH 1/3] Only replace rich if the color is defined + +--- + src/scikit_build_core/_logging.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/scikit_build_core/_logging.py b/src/scikit_build_core/_logging.py +index c449c74f..ad1433b7 100644 +--- a/src/scikit_build_core/_logging.py ++++ b/src/scikit_build_core/_logging.py +@@ -116,10 +116,16 @@ def colors() -> dict[str, str]: + return _COLORS + return _NO_COLORS + ++def _sub_rich(m: re.Match) -> str: ++ try: ++ r = "".join(colors()[x] for x in m.group(1).split()) ++ except KeyError: ++ r = m.group(0) ++ return r + + def _process_rich(msg: object) -> str: + return ANY_ESCAPE.sub( +- lambda m: "".join(colors()[x] for x in m.group(1).split()), ++ _sub_rich, + str(msg), + ) + + +From aa97911dacb0460f9d6eef27240bee92894aa364 Mon Sep 17 00:00:00 2001 +From: "pre-commit-ci[bot]" + <66853113+pre-commit-ci[bot]@users.noreply.github.com> +Date: Sun, 9 Jun 2024 20:11:51 +0000 +Subject: [PATCH 2/3] style: pre-commit fixes + +--- + src/scikit_build_core/_logging.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/scikit_build_core/_logging.py b/src/scikit_build_core/_logging.py +index ad1433b7..a824ac24 100644 +--- a/src/scikit_build_core/_logging.py ++++ b/src/scikit_build_core/_logging.py +@@ -116,6 +116,7 @@ def colors() -> dict[str, str]: + return _COLORS + return _NO_COLORS + ++ + def _sub_rich(m: re.Match) -> str: + try: + r = "".join(colors()[x] for x in m.group(1).split()) +@@ -123,6 +124,7 @@ def _sub_rich(m: re.Match) -> str: + r = m.group(0) + return r + ++ + def _process_rich(msg: object) -> str: + return ANY_ESCAPE.sub( + _sub_rich, + +From bbbd406e90a7f3e001bf7c7df367e97af5cf32ba Mon Sep 17 00:00:00 2001 +From: Ben Greiner +Date: Sun, 9 Jun 2024 22:25:27 +0200 +Subject: [PATCH 3/3] Fix typing annotation + +--- + src/scikit_build_core/_logging.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/scikit_build_core/_logging.py b/src/scikit_build_core/_logging.py +index a824ac24..66957d32 100644 +--- a/src/scikit_build_core/_logging.py ++++ b/src/scikit_build_core/_logging.py +@@ -117,7 +117,7 @@ def colors() -> dict[str, str]: + return _NO_COLORS + + +-def _sub_rich(m: re.Match) -> str: ++def _sub_rich(m: re.Match[Any]) -> str: + try: + r = "".join(colors()[x] for x in m.group(1).split()) + except KeyError: diff --git a/scikit_build_core-0.4.7.tar.gz b/scikit_build_core-0.4.7.tar.gz deleted file mode 100644 index bec802c..0000000 --- a/scikit_build_core-0.4.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa53b045c0869005a21af6aa5f6c2bd70d0a1af93e8a098ea6ee1b47e3dea183 -size 161024 diff --git a/scikit_build_core-0.9.5.tar.gz b/scikit_build_core-0.9.5.tar.gz new file mode 100644 index 0000000..88db501 --- /dev/null +++ b/scikit_build_core-0.9.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a4cb119cc968fe87ae05582979657cc0e7be45655798446eabbe490e61ce072 +size 228404