meson-python 0.16.0__tar.gz → 0.17.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {meson_python-0.16.0 → meson_python-0.17.1}/.cirrus.yml +4 -4
- {meson_python-0.16.0 → meson_python-0.17.1}/.github/workflows/docs.yml +4 -4
- {meson_python-0.16.0 → meson_python-0.17.1}/.github/workflows/tests.yml +48 -33
- {meson_python-0.16.0 → meson_python-0.17.1}/.pre-commit-config.yaml +5 -4
- {meson_python-0.16.0 → meson_python-0.17.1}/CHANGELOG.rst +35 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/PKG-INFO +30 -29
- meson_python-0.16.0/docs/contributing/release-process.rst → meson_python-0.17.1/RELEASE.rst +8 -18
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/alpine-3.docker +1 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/manylinux.docker +1 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/opensuse-15.docker +1 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/conf.py +7 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/explanations/design-old.rst +0 -15
- meson_python-0.17.1/docs/how-to-guides/config-settings.rst +128 -0
- meson_python-0.17.1/docs/how-to-guides/sdist.rst +54 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/index.rst +1 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/reference/config-settings.rst +0 -4
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/tutorials/introduction.rst +13 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/meson.build +1 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/__init__.py +111 -85
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/_editable.py +18 -14
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/_tags.py +2 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/_util.py +5 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/pyproject.toml +3 -2
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/conftest.py +19 -0
- meson_python-0.17.1/tests/packages/complex/extension.c +33 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/meson.build +7 -0
- meson_python-0.17.1/tests/packages/long-path/meson.build +5 -0
- meson_python-0.17.1/tests/packages/long-path/pyproject.toml +11 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_editable.py +65 -15
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_metadata.py +9 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_pep517.py +48 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_project.py +1 -1
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_sdist.py +74 -34
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_tags.py +4 -2
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_wheel.py +5 -0
- meson_python-0.16.0/docs/changelog.rst +0 -351
- meson_python-0.16.0/docs/contributing/index.rst +0 -11
- meson_python-0.16.0/docs/how-to-guides/config-settings.rst +0 -61
- {meson_python-0.16.0 → meson_python-0.17.1}/.gitignore +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/.mailmap +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/.readthedocs.yaml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/LICENSE +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/LICENSES/MIT.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/README.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/archlinux.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/debian-11.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/debian-12.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/debian-unstable.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/fedora-37.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/ci/miniconda.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/codecov.yml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/about.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/examples/spam/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/examples/spam/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/examples/spam/src/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/examples/spam/src/spammodule.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/explanations/default-options.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/how-to-guides/debug-builds.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/how-to-guides/editable-installs.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/how-to-guides/meson-args.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/projects-using-meson-python.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/reference/environment-variables.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/reference/limitations.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/reference/meson-compatibility.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/reference/pyproject-settings.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/spelling_wordlist.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/spelling_wordlist.txt.license +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/docs/static/css/contributors.css +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/_compat.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/_rpath.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/mesonpy/_wheelfile.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/noxfile.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/complex/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/complex/more/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/complex/more/baz.pyx +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/complex/more/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/complex/namespace/bar.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/complex/namespace/foo.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/foo.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/move.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/complex/test.pyx +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/configure-data/configure_data.py.in +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/configure-data/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/configure-data/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/custom-target-dir/codegen.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/custom-target-dir/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/custom-target-dir/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/detect-compiler/detect_compiler.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/detect-compiler/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/detect-compiler/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/dist-script/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/dist-script/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/dynamic-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/dynamic-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/encoding/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/encoding/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/encoding//343/203/206/343/202/271/343/203/210.py" +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable-bit/example-script.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable-bit/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable-bit/executable_module.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable-bit/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/executable-bit/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/full-metadata/LICENSE +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/full-metadata/README.md +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/full-metadata/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/full-metadata/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/generated-files/example-script.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/generated-files/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/generated-files/executable_module.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/generated-files/generate_version.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/generated-files/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/generated-files/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/imports-itself-during-build/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/imports-itself-during-build/plat.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/imports-itself-during-build/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/imports-itself-during-build/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/nested/deep/deep.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/nested/deep/excluded.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/nested/nested.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/strip/excluded.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/strip/module.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/subdir/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/subdir/excluded/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/subdir/excluded.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/install-subdir/subdir/test.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/library/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/library/examplelib.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/library/examplelib.h +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/library/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/library/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/license-file/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/license-file/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/license-file/something/LICENSE.custom +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/limited-api/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/limited-api/meson.options +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/limited-api/module.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/limited-api/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/link-against-local-lib/examplemod.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/link-against-local-lib/lib/examplelib.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/link-against-local-lib/lib/examplelib.h +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/link-against-local-lib/lib/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/link-against-local-lib/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/link-against-local-lib/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/missing-dynamic-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/missing-dynamic-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/missing-meson-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/missing-meson-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/missing-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/missing-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/module-types/file.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/module-types/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/module-types/namespace/data.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/module-types/native.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/module-types/package/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/module-types/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/pure/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/pure/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/pure/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-and-platlib/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-and-platlib/plat.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-and-platlib/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-and-platlib/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-platlib-split/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-platlib-split/plat.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-platlib-split/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/purelib-platlib-split/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/mypkg/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/mypkg/cy_extmod.pyx +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/mypkg/extmod.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/mypkg/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/mypkg/submod/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/mypkg/submod/unknown_filetype.npq +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/scipy-like/tools/generate_config.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/simple/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/simple/data.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/simple/data.txt.license +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/simple/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/simple/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/simple/test.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subdirs/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subdirs/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subdirs/subdirs/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subdirs/subdirs/a/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subdirs/subdirs/a/b/c.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subdirs/subdirs/b/c.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subproject/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subproject/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subproject/subproject.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subproject/subprojects/dep/dep.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/subproject/subprojects/dep/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/unknown-user-args-meson-args/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/unknown-user-args-top-level/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/unsupported-python-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/unsupported-python-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/user-args/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/user-args/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/user-args/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/vendored-meson/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/vendored-meson/meson_options.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/vendored-meson/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/packages/vendored-meson/third-party/meson.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_consistency.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_examples.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_options.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_output.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.1}/tests/test_wheelfile.py +0 -0
|
@@ -47,12 +47,12 @@ fedora-37_task:
|
|
|
47
47
|
cpu: 1
|
|
48
48
|
<< : *test
|
|
49
49
|
|
|
50
|
-
manylinux-python3.
|
|
50
|
+
manylinux-python3.13t_task:
|
|
51
51
|
container:
|
|
52
52
|
dockerfile: ci/manylinux.docker
|
|
53
53
|
cpu: 1
|
|
54
54
|
env:
|
|
55
|
-
PATH: "/opt/python/
|
|
55
|
+
PATH: "/opt/python/cp313-cp313t/bin/:${PATH}"
|
|
56
56
|
<< : *test
|
|
57
57
|
|
|
58
58
|
manylinux-python3.7_task:
|
|
@@ -77,12 +77,12 @@ opensuse-15_task:
|
|
|
77
77
|
|
|
78
78
|
freebsd_task:
|
|
79
79
|
freebsd_instance:
|
|
80
|
-
image_family: freebsd-
|
|
80
|
+
image_family: freebsd-14-0
|
|
81
81
|
install_script: pkg install -y git ninja
|
|
82
82
|
<< : *test
|
|
83
83
|
|
|
84
84
|
macos-arm64_task:
|
|
85
85
|
macos_instance:
|
|
86
|
-
image: ghcr.io/cirruslabs/macos-
|
|
86
|
+
image: ghcr.io/cirruslabs/macos-sonoma-xcode
|
|
87
87
|
install_script: brew install git ninja python@3.11
|
|
88
88
|
<< : *test
|
|
@@ -31,10 +31,10 @@ jobs:
|
|
|
31
31
|
python-version: '3.11'
|
|
32
32
|
- uses: actions/checkout@v4
|
|
33
33
|
with:
|
|
34
|
-
ref: ${{ github.event.
|
|
34
|
+
ref: ${{ github.event.inputs.tag || github.ref }}
|
|
35
35
|
- run: python -m pip install .[docs]
|
|
36
36
|
- run: python -m sphinx -W docs/ build/docs/
|
|
37
|
-
- uses: actions/upload-pages-artifact@
|
|
37
|
+
- uses: actions/upload-pages-artifact@v3
|
|
38
38
|
with:
|
|
39
39
|
path: build/docs/
|
|
40
40
|
|
|
@@ -46,6 +46,6 @@ jobs:
|
|
|
46
46
|
environment:
|
|
47
47
|
name: github-pages
|
|
48
48
|
runs-on: ubuntu-latest
|
|
49
|
-
if: ${{ github.
|
|
49
|
+
if: ${{ github.event_name == 'workflow_dispatch' || github.ref_type == 'tag' }}
|
|
50
50
|
steps:
|
|
51
|
-
- uses: actions/deploy-pages@
|
|
51
|
+
- uses: actions/deploy-pages@v4
|
|
@@ -36,58 +36,72 @@ concurrency:
|
|
|
36
36
|
|
|
37
37
|
jobs:
|
|
38
38
|
test:
|
|
39
|
-
runs-on: ${{ matrix.os }}
|
|
39
|
+
runs-on: ${{ matrix.os }}
|
|
40
40
|
strategy:
|
|
41
41
|
fail-fast: false
|
|
42
42
|
matrix:
|
|
43
43
|
os:
|
|
44
|
-
- ubuntu
|
|
45
|
-
-
|
|
46
|
-
|
|
44
|
+
- ubuntu-latest
|
|
45
|
+
# actions/setup-python do not support Python 3.7 on macOS on
|
|
46
|
+
# arm64. The latest macOS version available is macOS 14 but
|
|
47
|
+
# it is arm64 only. Stick to macos-13 as long as we want to
|
|
48
|
+
# test Python 3.7 on macOS. macOS 14 on arm64 is covered by
|
|
49
|
+
# the Cirrus CI jobs.
|
|
50
|
+
- macos-13
|
|
51
|
+
- windows-latest
|
|
47
52
|
python:
|
|
48
53
|
- '3.7'
|
|
49
|
-
- '3.
|
|
54
|
+
- '3.13'
|
|
50
55
|
meson:
|
|
51
56
|
-
|
|
57
|
+
pyproject_metadata:
|
|
58
|
+
-
|
|
52
59
|
include:
|
|
53
|
-
- os: ubuntu
|
|
60
|
+
- os: ubuntu-latest
|
|
54
61
|
python: 'pypy-3.9'
|
|
55
|
-
- os: ubuntu
|
|
62
|
+
- os: ubuntu-latest
|
|
56
63
|
python: 'pypy-3.10'
|
|
57
|
-
- os: ubuntu
|
|
64
|
+
- os: ubuntu-latest
|
|
58
65
|
python: '3.8'
|
|
59
|
-
- os: ubuntu
|
|
66
|
+
- os: ubuntu-latest
|
|
60
67
|
python: '3.9'
|
|
61
|
-
- os: ubuntu
|
|
68
|
+
- os: ubuntu-latest
|
|
62
69
|
python: '3.10'
|
|
63
70
|
# Test with older supported Meson version. Meson up to
|
|
64
71
|
# version 1.2.3 requires distutils, which has been removed
|
|
65
72
|
# from the stdlib in Python 3.12, thus test with Pythn 3.11.
|
|
66
|
-
- os: ubuntu
|
|
73
|
+
- os: ubuntu-latest
|
|
67
74
|
python: '3.11'
|
|
68
75
|
meson: '~=0.63.3'
|
|
69
|
-
- os: ubuntu
|
|
76
|
+
- os: ubuntu-latest
|
|
70
77
|
python: '3.11'
|
|
71
78
|
meson: '~=0.64.0'
|
|
72
|
-
- os: ubuntu
|
|
79
|
+
- os: ubuntu-latest
|
|
73
80
|
python: '3.11'
|
|
74
81
|
meson: '~=1.0.0'
|
|
75
|
-
- os: ubuntu
|
|
82
|
+
- os: ubuntu-latest
|
|
76
83
|
python: '3.11'
|
|
77
84
|
meson: '~=1.1.0'
|
|
78
|
-
- os: ubuntu
|
|
85
|
+
- os: ubuntu-latest
|
|
79
86
|
python: '3.12'
|
|
80
87
|
meson: '~=1.2.3'
|
|
81
|
-
- os: ubuntu
|
|
88
|
+
- os: ubuntu-latest
|
|
82
89
|
python: '3.12'
|
|
83
90
|
meson: '~=1.3'
|
|
84
91
|
# Test with Meson master branch.
|
|
85
|
-
- os: ubuntu
|
|
92
|
+
- os: ubuntu-latest
|
|
86
93
|
python: '3.12'
|
|
87
94
|
meson: '@git+https://github.com/mesonbuild/meson.git'
|
|
88
|
-
- os: windows
|
|
95
|
+
- os: windows-latest
|
|
89
96
|
python: '3.12'
|
|
90
97
|
meson: '@git+https://github.com/mesonbuild/meson.git'
|
|
98
|
+
# Test with older supported pyproject-metadata
|
|
99
|
+
- os: ubuntu-latest
|
|
100
|
+
python: '3.12'
|
|
101
|
+
pyproject_metadata: '==0.7.1'
|
|
102
|
+
- os: ubuntu-latest
|
|
103
|
+
python: '3.12'
|
|
104
|
+
pyproject_metadata: '==0.8.0'
|
|
91
105
|
|
|
92
106
|
steps:
|
|
93
107
|
- name: Checkout
|
|
@@ -100,30 +114,35 @@ jobs:
|
|
|
100
114
|
|
|
101
115
|
- name: Install Ninja
|
|
102
116
|
run: sudo apt-get install ninja-build
|
|
103
|
-
if: ${{
|
|
117
|
+
if: ${{ runner.os == 'Linux' }}
|
|
104
118
|
|
|
105
119
|
- name: Install Ninja
|
|
106
120
|
run: brew install ninja
|
|
107
|
-
if: ${{
|
|
121
|
+
if: ${{ runner.os == 'macOS' }}
|
|
108
122
|
|
|
109
123
|
- name: Install Ninja
|
|
110
124
|
run: python -m pip install ninja
|
|
111
|
-
if: ${{
|
|
125
|
+
if: ${{ runner.os == 'Windows' }}
|
|
112
126
|
|
|
113
127
|
- name: Install Meson
|
|
114
128
|
run: python -m pip install "meson ${{ matrix.meson }}"
|
|
115
129
|
if: ${{ matrix.meson }}
|
|
116
130
|
|
|
131
|
+
- name: Install pyproject-metadata
|
|
132
|
+
run: python -m pip install "pyproject-metadata ${{ matrix.pyproject_metadata }}"
|
|
133
|
+
if: ${{ matrix.pyproject_metadata }}
|
|
134
|
+
|
|
117
135
|
- name: Install
|
|
118
136
|
run: python -m pip install .[test]
|
|
119
137
|
|
|
120
138
|
- name: Run tests
|
|
121
|
-
run:
|
|
122
|
-
python -m pytest --showlocals -vv --cov --cov-report=xml
|
|
139
|
+
run: python -m pytest --showlocals -vv --cov --cov-report=xml
|
|
123
140
|
|
|
124
141
|
- name: Upload coverage report
|
|
125
142
|
uses: codecov/codecov-action@v4
|
|
126
143
|
if: ${{ always() }}
|
|
144
|
+
env:
|
|
145
|
+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
127
146
|
|
|
128
147
|
msvc:
|
|
129
148
|
runs-on: windows-latest
|
|
@@ -160,8 +179,7 @@ jobs:
|
|
|
160
179
|
run: python -m pip install .[test]
|
|
161
180
|
|
|
162
181
|
- name: Run tests
|
|
163
|
-
run:
|
|
164
|
-
python -m pytest --showlocals -vv
|
|
182
|
+
run: python -m pytest --showlocals -vv
|
|
165
183
|
|
|
166
184
|
cygwin:
|
|
167
185
|
runs-on: windows-latest
|
|
@@ -235,8 +253,7 @@ jobs:
|
|
|
235
253
|
shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -leo pipefail -o igncr {0}
|
|
236
254
|
|
|
237
255
|
- name: Run tests
|
|
238
|
-
run:
|
|
239
|
-
python -m pytest --showlocals -vv
|
|
256
|
+
run: python -m pytest --showlocals -vv
|
|
240
257
|
shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -leo pipefail -o igncr {0}
|
|
241
258
|
|
|
242
259
|
pyston:
|
|
@@ -269,8 +286,7 @@ jobs:
|
|
|
269
286
|
run: pyston -m pip install .[test]
|
|
270
287
|
|
|
271
288
|
- name: Run tests
|
|
272
|
-
run:
|
|
273
|
-
pyston -m pytest --showlocals -vv
|
|
289
|
+
run: pyston -m pytest --showlocals -vv
|
|
274
290
|
|
|
275
291
|
homebrew:
|
|
276
292
|
runs-on: macos-latest
|
|
@@ -278,8 +294,8 @@ jobs:
|
|
|
278
294
|
fail-fast: false
|
|
279
295
|
matrix:
|
|
280
296
|
python:
|
|
281
|
-
- '3.
|
|
282
|
-
- '3.
|
|
297
|
+
- '3.9'
|
|
298
|
+
- '3.12'
|
|
283
299
|
meson:
|
|
284
300
|
-
|
|
285
301
|
|
|
@@ -307,8 +323,7 @@ jobs:
|
|
|
307
323
|
run: python -m pip install .[test]
|
|
308
324
|
|
|
309
325
|
- name: Run tests
|
|
310
|
-
run:
|
|
311
|
-
python -m pytest --showlocals -vv
|
|
326
|
+
run: python -m pytest --showlocals -vv
|
|
312
327
|
|
|
313
328
|
mypy:
|
|
314
329
|
runs-on: ubuntu-latest
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
ci:
|
|
6
6
|
autofix_prs: false
|
|
7
|
-
autoupdate_commit_msg: 'MAINT: bump
|
|
7
|
+
autoupdate_commit_msg: 'MAINT: bump pre-commit dependencies'
|
|
8
|
+
autoupdate_schedule: 'quarterly'
|
|
8
9
|
|
|
9
10
|
repos:
|
|
10
11
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
11
|
-
rev:
|
|
12
|
+
rev: v5.0.0
|
|
12
13
|
hooks:
|
|
13
14
|
- id: check-ast
|
|
14
15
|
- id: check-builtin-literals
|
|
@@ -21,12 +22,12 @@ repos:
|
|
|
21
22
|
- id: end-of-file-fixer
|
|
22
23
|
- id: trailing-whitespace
|
|
23
24
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
24
|
-
rev: v0.
|
|
25
|
+
rev: v0.6.9
|
|
25
26
|
hooks:
|
|
26
27
|
- id: ruff
|
|
27
28
|
args: [--fix, --show-fixes, --output-format, grouped]
|
|
28
29
|
- repo: https://github.com/fsfe/reuse-tool
|
|
29
|
-
rev:
|
|
30
|
+
rev: v4.0.3
|
|
30
31
|
hooks:
|
|
31
32
|
- id: reuse
|
|
32
33
|
name: add SPDX headers
|
|
@@ -11,6 +11,40 @@
|
|
|
11
11
|
Changelog
|
|
12
12
|
+++++++++
|
|
13
13
|
|
|
14
|
+
0.17.1
|
|
15
|
+
======
|
|
16
|
+
|
|
17
|
+
- Update tests to work with newly released ``pyproject-metadata`` 0.9.0.
|
|
18
|
+
- Fix tests to work when not executed in a git work tree.
|
|
19
|
+
|
|
20
|
+
Daniele Nicolodi --- 23-10-2024.
|
|
21
|
+
|
|
22
|
+
0.17.0
|
|
23
|
+
======
|
|
24
|
+
|
|
25
|
+
- Refuse to build wheels targeting the limited API and free-threaded CPython:
|
|
26
|
+
the free-threaded CPython build does not support the limited API yet.
|
|
27
|
+
- Always use UTF-8 encoding for writing Meson native and cross files. Always
|
|
28
|
+
use UTF-8 encoding for reading read Meson introspection data and
|
|
29
|
+
``pyproject.toml``.
|
|
30
|
+
- Do not include uncommitted changes when creating source distributions.
|
|
31
|
+
Previously, uncommitted changes to files under version control were
|
|
32
|
+
included, but not untracked files. There was no strong use case for this
|
|
33
|
+
behavior and it was too surprising to keep it.
|
|
34
|
+
- Make source distribution reproducible: use the modification time of
|
|
35
|
+
``pyproject.toml`` for the generated files in the source distribution
|
|
36
|
+
archives.
|
|
37
|
+
- Disable the ``abi3`` wheel tag for PyPy when building wheels targeting the
|
|
38
|
+
limited API: PyPy supports the limited API but not the stable ABI.
|
|
39
|
+
- Raise ``ImportError`` when the package rebuild fails when importing an
|
|
40
|
+
editable install.
|
|
41
|
+
- Fix the wheel platform tag for GraalPy.
|
|
42
|
+
- Add ``.gitignore`` and ``.hgignore`` files to build directory if it is empty.
|
|
43
|
+
- Allow ``install_subdir()`` of missing directories.
|
|
44
|
+
|
|
45
|
+
Christian Clauss, Daniele Nicolodi, Jonathan J. Helmus, Leo Singer, Loïc
|
|
46
|
+
Estève, Michael Simacek, Ralf Gommers, Simon McVittie --- 19-10-2024.
|
|
47
|
+
|
|
14
48
|
0.16.0
|
|
15
49
|
======
|
|
16
50
|
|
|
@@ -38,7 +72,7 @@ Changelog
|
|
|
38
72
|
emit a message indicating that the package is being rebuilt but
|
|
39
73
|
suppress any output when there is no work to do.
|
|
40
74
|
|
|
41
|
-
Daniele Nicolodi, Loïc Estève, Ralf Gommers
|
|
75
|
+
Daniele Nicolodi, Loïc Estève, Ralf Gommers --- 16-04-2024
|
|
42
76
|
|
|
43
77
|
|
|
44
78
|
0.15.0
|
|
@@ -1,58 +1,59 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: meson-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.17.1
|
|
4
4
|
Summary: Meson Python build backend (PEP 517)
|
|
5
|
-
Keywords: meson
|
|
6
|
-
Home-page: https://github.com/mesonbuild/meson-python
|
|
5
|
+
Keywords: meson,build,backend,pep517,package
|
|
7
6
|
Maintainer-Email: Ralf Gommers <ralf.gommers@gmail.com>, Daniele Nicolodi <daniele@grinta.net>, Henry Schreiner <HenrySchreinerIII@gmail.com>, Thomas Li <47963215+lithomas1@users.noreply.github.com>
|
|
8
7
|
License: Copyright © 2022 the meson-python contributors
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
Copyright © 2021 Quansight Labs and Filipe Laíns
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
|
11
|
+
copy of this software and associated documentation files (the "Software"),
|
|
12
|
+
to deal in the Software without restriction, including without limitation
|
|
13
|
+
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
14
|
+
and/or sell copies of the Software, and to permit persons to whom the
|
|
15
|
+
Software is furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice (including the next
|
|
18
|
+
paragraph) shall be included in all copies or substantial portions of the
|
|
19
|
+
Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
24
|
+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
26
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
27
|
+
DEALINGS IN THE SOFTWARE.
|
|
28
|
+
|
|
29
29
|
Classifier: Development Status :: 5 - Production/Stable
|
|
30
30
|
Classifier: Programming Language :: Python
|
|
31
31
|
Classifier: Topic :: Software Development :: Build Tools
|
|
32
|
-
Project-URL:
|
|
33
|
-
Project-URL:
|
|
34
|
-
Project-URL:
|
|
35
|
-
Project-URL:
|
|
32
|
+
Project-URL: homepage, https://github.com/mesonbuild/meson-python
|
|
33
|
+
Project-URL: repository, https://github.com/mesonbuild/meson-python
|
|
34
|
+
Project-URL: documentation, https://mesonbuild.com/meson-python/
|
|
35
|
+
Project-URL: changelog, https://mesonbuild.com/meson-python/changelog.html
|
|
36
36
|
Requires-Python: >=3.7
|
|
37
37
|
Requires-Dist: meson>=0.63.3; python_version < "3.12"
|
|
38
38
|
Requires-Dist: meson>=1.2.3; python_version >= "3.12"
|
|
39
39
|
Requires-Dist: packaging>=19.0
|
|
40
40
|
Requires-Dist: pyproject-metadata>=0.7.1
|
|
41
41
|
Requires-Dist: tomli>=1.0.0; python_version < "3.11"
|
|
42
|
+
Provides-Extra: test
|
|
42
43
|
Requires-Dist: build; extra == "test"
|
|
44
|
+
Requires-Dist: packaging>=23.1; extra == "test"
|
|
43
45
|
Requires-Dist: pytest>=6.0; extra == "test"
|
|
44
46
|
Requires-Dist: pytest-cov[toml]; extra == "test"
|
|
45
47
|
Requires-Dist: pytest-mock; extra == "test"
|
|
46
48
|
Requires-Dist: cython>=3.0.3; extra == "test"
|
|
47
49
|
Requires-Dist: wheel; extra == "test"
|
|
48
50
|
Requires-Dist: typing-extensions>=3.7.4; python_version < "3.11" and extra == "test"
|
|
51
|
+
Provides-Extra: docs
|
|
49
52
|
Requires-Dist: furo>=2023.5.20; extra == "docs"
|
|
50
53
|
Requires-Dist: sphinx~=6.2; extra == "docs"
|
|
51
54
|
Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
|
|
52
55
|
Requires-Dist: sphinx-design>=0.1.0; extra == "docs"
|
|
53
56
|
Requires-Dist: sphinxext-opengraph>=0.7.0; extra == "docs"
|
|
54
|
-
Provides-Extra: test
|
|
55
|
-
Provides-Extra: docs
|
|
56
57
|
Description-Content-Type: text/x-rst
|
|
57
58
|
|
|
58
59
|
.. SPDX-FileCopyrightText: 2021 The meson-python developers
|
|
@@ -2,20 +2,16 @@
|
|
|
2
2
|
..
|
|
3
3
|
.. SPDX-License-Identifier: MIT
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
.. _contributing-release-process:
|
|
7
|
-
|
|
8
|
-
***************
|
|
9
5
|
Release Process
|
|
10
|
-
|
|
6
|
+
===============
|
|
11
7
|
|
|
12
|
-
All releases are PGP signed with one of the keys listed in
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
All releases are PGP signed with one of the keys listed in ``docs/about.rst``.
|
|
9
|
+
Before releasing please make sure your PGP key is listed there, and preferably
|
|
10
|
+
signed by one of the other key holders.
|
|
15
11
|
|
|
16
|
-
If your key is not signed by one of the other key holders, please make sure
|
|
17
|
-
PR that added your key to
|
|
18
|
-
other maintainer.
|
|
12
|
+
If your key is not signed by one of the other key holders, please make sure
|
|
13
|
+
that the PR that added your key to ``docs/about.rst`` was approved by at least
|
|
14
|
+
one other maintainer.
|
|
19
15
|
|
|
20
16
|
After that is done, you may release the project by following these steps:
|
|
21
17
|
|
|
@@ -44,7 +40,7 @@ After that is done, you may release the project by following these steps:
|
|
|
44
40
|
$ git push
|
|
45
41
|
$ git push --tags
|
|
46
42
|
|
|
47
|
-
#. Release to
|
|
43
|
+
#. Release to PyPI:
|
|
48
44
|
|
|
49
45
|
#. Build the Python artifacts:
|
|
50
46
|
|
|
@@ -60,9 +56,3 @@ After that is done, you may release the project by following these steps:
|
|
|
60
56
|
|
|
61
57
|
There is no need to GPG-sign the artifacts: PyPI no longer
|
|
62
58
|
supports uploading GPG signatures.
|
|
63
|
-
|
|
64
|
-
If you have any questions, please look at previous releases and/or ping the
|
|
65
|
-
other maintainers.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
.. _installation page: installation
|
|
@@ -16,15 +16,21 @@
|
|
|
16
16
|
|
|
17
17
|
import datetime
|
|
18
18
|
import os
|
|
19
|
+
import time
|
|
19
20
|
import sys
|
|
20
21
|
sys.path.insert(0, os.path.abspath('..'))
|
|
21
22
|
import mesonpy
|
|
22
23
|
|
|
24
|
+
build_date = datetime.datetime.fromtimestamp(
|
|
25
|
+
int(os.environ.get('SOURCE_DATE_EPOCH', time.time())),
|
|
26
|
+
tz=datetime.timezone.utc,
|
|
27
|
+
)
|
|
28
|
+
|
|
23
29
|
|
|
24
30
|
# -- Project information -----------------------------------------------------
|
|
25
31
|
|
|
26
32
|
project = 'meson-python'
|
|
27
|
-
copyright = f'2021\N{EN DASH}{
|
|
33
|
+
copyright = f'2021\N{EN DASH}{build_date.year} The meson-python developers'
|
|
28
34
|
|
|
29
35
|
# The short X.Y version
|
|
30
36
|
version = mesonpy.__version__
|
|
@@ -31,21 +31,6 @@ Python tool (pip_, `pypa/build`_, etc.) to build and install the project.
|
|
|
31
31
|
``meson-python`` will build a Python sdist (source distribution) or
|
|
32
32
|
wheel (binary distribution) from Meson_ project.
|
|
33
33
|
|
|
34
|
-
Source distribution (sdist)
|
|
35
|
-
---------------------------
|
|
36
|
-
|
|
37
|
-
The source distribution is based on ``meson dist``, so make sure all your files
|
|
38
|
-
are included there. In git projects, Meson_ will not include files that are not
|
|
39
|
-
checked into git, keep that in mind when developing. By default, all files
|
|
40
|
-
under version control will be included in the sdist. In order to exclude files,
|
|
41
|
-
use ``export-ignore`` or ``export-subst`` attributes in ``.gitattributes`` (see
|
|
42
|
-
the ``git-archive`` documentation for details; ``meson dist`` uses
|
|
43
|
-
``git-archive`` under the hood).
|
|
44
|
-
|
|
45
|
-
Local (uncommitted) changes to files that are under version control will be
|
|
46
|
-
included. This is often needed when applying patches, e.g. for build issues
|
|
47
|
-
found during packaging, to work around test failures, to amend the license for
|
|
48
|
-
vendored components in wheels, etc.
|
|
49
34
|
|
|
50
35
|
Binary distribution (wheels)
|
|
51
36
|
----------------------------
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
.. SPDX-FileCopyrightText: 2023 The meson-python developers
|
|
2
|
+
..
|
|
3
|
+
.. SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
.. _how-to-guides-config-settings:
|
|
6
|
+
|
|
7
|
+
***************************
|
|
8
|
+
Using build config settings
|
|
9
|
+
***************************
|
|
10
|
+
|
|
11
|
+
Build config settings can be used to customize some aspects of the
|
|
12
|
+
build. See the :doc:`../reference/config-settings` reference for a list
|
|
13
|
+
of the settings implemented by ``meson-python``.
|
|
14
|
+
|
|
15
|
+
How build config settings are specified depends on the Python package
|
|
16
|
+
build front-end used. The most popular build front-end are `build`_ and
|
|
17
|
+
`pip`_. These use the ``--config-settings`` long command line option or
|
|
18
|
+
the ``-C`` short command line option:
|
|
19
|
+
|
|
20
|
+
.. tab-set::
|
|
21
|
+
|
|
22
|
+
.. tab-item:: pypa/build
|
|
23
|
+
:sync: key_pypa_build
|
|
24
|
+
|
|
25
|
+
.. code-block:: console
|
|
26
|
+
|
|
27
|
+
$ python -m build \
|
|
28
|
+
-Csetup-args="-Doption=true" \
|
|
29
|
+
-Csetup-args="-Dvalue=1" \
|
|
30
|
+
-Ccompile-args="-j6"
|
|
31
|
+
|
|
32
|
+
.. tab-item:: pip
|
|
33
|
+
:sync: key_pip
|
|
34
|
+
|
|
35
|
+
.. code-block:: console
|
|
36
|
+
|
|
37
|
+
$ python -m pip wheel . \
|
|
38
|
+
--config-settings=setup-args="-Doption=disable" \
|
|
39
|
+
--config-settings=compile-args="-j6"
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
Refer to the `build`_ and `pip`_ documentation for details. This
|
|
43
|
+
example uses the ``python -m pip wheel`` command to build a Python wheel
|
|
44
|
+
that can be later installed or distributed. To build a package and
|
|
45
|
+
immediately install it, replace ``wheel`` with ``install``. See the
|
|
46
|
+
:ref:`how-to-guides-meson-args` guide for more examples.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
.. admonition:: Passing multiple settings
|
|
50
|
+
:class: caution
|
|
51
|
+
|
|
52
|
+
Please note that ``pip`` prior to 23.1 did not offer a way to set a
|
|
53
|
+
build config setting to a list of strings: later values for the
|
|
54
|
+
same key passed to ``--config-settings`` override earlier ones,
|
|
55
|
+
effectively limiting the number of options that can be passed to
|
|
56
|
+
each command invoked in the build process to one. This limitation
|
|
57
|
+
has been lifted in ``pip`` release 23.1.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
.. _build: https://pypa-build.readthedocs.io/en/stable/
|
|
61
|
+
.. _pip: https://pip.pypa.io/
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
Using a persistent build directory
|
|
65
|
+
==================================
|
|
66
|
+
|
|
67
|
+
By default, ``meson-python`` uses a temporary build directory which is
|
|
68
|
+
deleted when the build terminates. A persistent build directory allows
|
|
69
|
+
faster incremental builds and to access build logs and intermediate
|
|
70
|
+
build artifacts. The ``build-dir`` :ref:`config setting
|
|
71
|
+
<reference-config-settings>` instructs ``meson-python`` to use a
|
|
72
|
+
user-specified build directory which will not be deleted. For example:
|
|
73
|
+
|
|
74
|
+
.. tab-set::
|
|
75
|
+
|
|
76
|
+
.. tab-item:: pypa/build
|
|
77
|
+
:sync: key_pypa_build
|
|
78
|
+
|
|
79
|
+
.. code-block:: console
|
|
80
|
+
|
|
81
|
+
$ python -m build -Cbuild-dir=build
|
|
82
|
+
|
|
83
|
+
.. tab-item:: pip
|
|
84
|
+
:sync: key_pip
|
|
85
|
+
|
|
86
|
+
.. code-block:: console
|
|
87
|
+
|
|
88
|
+
$ python -m pip install . -Cbuild-dir=build
|
|
89
|
+
|
|
90
|
+
After running this command, the ``build`` directory will contain all
|
|
91
|
+
the build artifacts and support files created by ``meson``, ``ninja``
|
|
92
|
+
and ``meson-python``. The same build directory can be used by
|
|
93
|
+
subsequent invocations of ``meson-python``, avoiding the need to
|
|
94
|
+
rebuild the whole project when testing changes during development.
|
|
95
|
+
|
|
96
|
+
Using a permanent build directory also aids in debugging a failing
|
|
97
|
+
build by allowing access to build logs and intermediate build outputs,
|
|
98
|
+
including the Meson introspection files and detailed log. The latter
|
|
99
|
+
is stored in the ``meson-logs/meson-log.txt`` file in the build
|
|
100
|
+
directory and can be useful to diagnose why a build fails at the
|
|
101
|
+
project configuration stage. For example, to understand why dependency
|
|
102
|
+
detection failed, it is often necessary to look at the ``pkg-config``
|
|
103
|
+
or other dependency detection methods output.
|
|
104
|
+
|
|
105
|
+
Access to detailed logs and intermediate build outputs is particularly
|
|
106
|
+
helpful in CI setups where introspecting the build environment is
|
|
107
|
+
usually more difficult than on a local system. Therefore, it can be
|
|
108
|
+
useful to show the more detailed log files when the CI build step
|
|
109
|
+
fails. For example, the following GitHub Actions workflow file snippet
|
|
110
|
+
shows the detailed Meson setup log when the build fails:
|
|
111
|
+
|
|
112
|
+
.. code-block:: yaml
|
|
113
|
+
|
|
114
|
+
- name: Build the package
|
|
115
|
+
run: python -m build --wheel -Cbuild-dir=build
|
|
116
|
+
- name: Show meson-log.txt
|
|
117
|
+
if: failure()
|
|
118
|
+
run: cat build/meson-logs/meson-log.txt
|
|
119
|
+
|
|
120
|
+
Replacing ``failure()`` with ``always()`` in the code above will
|
|
121
|
+
result in the Meson log file always being shown. See the GitHub
|
|
122
|
+
Actions documentation__ for more details. Please be aware that the
|
|
123
|
+
setup log can become very long for complex projects, and the GitHub
|
|
124
|
+
Actions web interface becomes unresponsive when the running job emits
|
|
125
|
+
many output lines.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
__ https://docs.github.com/en/actions/learn-github-actions/expressions#status-check-functions
|