meson-python 0.16.0__tar.gz → 0.17.0__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.0}/.cirrus.yml +4 -4
- {meson_python-0.16.0 → meson_python-0.17.0}/.github/workflows/docs.yml +4 -4
- {meson_python-0.16.0 → meson_python-0.17.0}/.github/workflows/tests.yml +45 -33
- {meson_python-0.16.0 → meson_python-0.17.0}/.pre-commit-config.yaml +5 -4
- {meson_python-0.16.0 → meson_python-0.17.0}/CHANGELOG.rst +27 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/PKG-INFO +2 -2
- meson_python-0.16.0/docs/contributing/release-process.rst → meson_python-0.17.0/RELEASE.rst +8 -18
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/alpine-3.docker +1 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/manylinux.docker +1 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/opensuse-15.docker +1 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/conf.py +7 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/explanations/design-old.rst +0 -15
- meson_python-0.17.0/docs/how-to-guides/config-settings.rst +128 -0
- meson_python-0.17.0/docs/how-to-guides/sdist.rst +54 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/index.rst +1 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/config-settings.rst +0 -4
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/tutorials/introduction.rst +13 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/meson.build +1 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/__init__.py +110 -84
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_editable.py +18 -14
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_tags.py +2 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_util.py +5 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/pyproject.toml +2 -2
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/conftest.py +12 -0
- meson_python-0.17.0/tests/packages/complex/extension.c +33 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/meson.build +7 -0
- meson_python-0.17.0/tests/packages/long-path/meson.build +5 -0
- meson_python-0.17.0/tests/packages/long-path/pyproject.toml +11 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_editable.py +65 -15
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_metadata.py +7 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_pep517.py +48 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_project.py +1 -1
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_sdist.py +49 -18
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_tags.py +4 -2
- {meson_python-0.16.0 → meson_python-0.17.0}/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.0}/.gitignore +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/.mailmap +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/.readthedocs.yaml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/LICENSE +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/LICENSES/MIT.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/README.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/archlinux.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/debian-11.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/debian-12.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/debian-unstable.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/fedora-37.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/ci/miniconda.docker +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/codecov.yml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/about.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/src/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/src/spammodule.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/explanations/default-options.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/how-to-guides/debug-builds.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/how-to-guides/editable-installs.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/how-to-guides/meson-args.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/projects-using-meson-python.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/environment-variables.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/limitations.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/meson-compatibility.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/pyproject-settings.rst +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/spelling_wordlist.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/spelling_wordlist.txt.license +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/docs/static/css/contributors.css +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_compat.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_rpath.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_wheelfile.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/noxfile.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/more/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/more/baz.pyx +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/more/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/namespace/bar.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/namespace/foo.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/foo.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/move.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/test.pyx +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/configure-data/configure_data.py.in +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/configure-data/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/configure-data/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/custom-target-dir/codegen.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/custom-target-dir/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/custom-target-dir/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/detect-compiler/detect_compiler.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/detect-compiler/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/detect-compiler/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dist-script/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dist-script/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dynamic-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dynamic-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/encoding/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/encoding/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/encoding//343/203/206/343/202/271/343/203/210.py" +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/example-script.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/executable_module.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/LICENSE +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/README.md +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/example-script.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/executable_module.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/generate_version.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/plat.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/nested/deep/deep.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/nested/deep/excluded.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/nested/nested.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/strip/excluded.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/strip/module.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/excluded/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/excluded.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/test.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/example.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/examplelib.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/examplelib.h +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/license-file/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/license-file/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/license-file/something/LICENSE.custom +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/meson.options +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/module.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/examplemod.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/lib/examplelib.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/lib/examplelib.h +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/lib/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-dynamic-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-dynamic-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-meson-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-meson-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/file.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/namespace/data.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/native.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/package/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/pure/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/pure/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/pure/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/plat.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/plat.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/cy_extmod.pyx +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/extmod.c +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/submod/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/submod/unknown_filetype.npq +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/tools/generate_config.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/data.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/data.txt.license +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/test.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/a/__init__.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/a/b/c.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/b/c.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/subproject.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/subprojects/dep/dep.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/subprojects/dep/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unknown-user-args-meson-args/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unknown-user-args-top-level/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unsupported-python-version/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unsupported-python-version/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/user-args/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/user-args/pure.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/user-args/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/meson.build +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/meson_options.txt +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/pyproject.toml +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/third-party/meson.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_consistency.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_examples.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_options.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_output.py +0 -0
- {meson_python-0.16.0 → meson_python-0.17.0}/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,69 @@ 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 oldest supported pyproject-metadata
|
|
99
|
+
- os: ubuntu-latest
|
|
100
|
+
python: '3.12'
|
|
101
|
+
pyproject_metadata: '==0.7.1'
|
|
91
102
|
|
|
92
103
|
steps:
|
|
93
104
|
- name: Checkout
|
|
@@ -100,30 +111,35 @@ jobs:
|
|
|
100
111
|
|
|
101
112
|
- name: Install Ninja
|
|
102
113
|
run: sudo apt-get install ninja-build
|
|
103
|
-
if: ${{
|
|
114
|
+
if: ${{ runner.os == 'Linux' }}
|
|
104
115
|
|
|
105
116
|
- name: Install Ninja
|
|
106
117
|
run: brew install ninja
|
|
107
|
-
if: ${{
|
|
118
|
+
if: ${{ runner.os == 'macOS' }}
|
|
108
119
|
|
|
109
120
|
- name: Install Ninja
|
|
110
121
|
run: python -m pip install ninja
|
|
111
|
-
if: ${{
|
|
122
|
+
if: ${{ runner.os == 'Windows' }}
|
|
112
123
|
|
|
113
124
|
- name: Install Meson
|
|
114
125
|
run: python -m pip install "meson ${{ matrix.meson }}"
|
|
115
126
|
if: ${{ matrix.meson }}
|
|
116
127
|
|
|
128
|
+
- name: Install pyproject-metadata
|
|
129
|
+
run: python -m pip install "pyproject-metadata ${{ matrix.pyproject_metadata }}"
|
|
130
|
+
if: ${{ matrix.pyproject_metadata }}
|
|
131
|
+
|
|
117
132
|
- name: Install
|
|
118
133
|
run: python -m pip install .[test]
|
|
119
134
|
|
|
120
135
|
- name: Run tests
|
|
121
|
-
run:
|
|
122
|
-
python -m pytest --showlocals -vv --cov --cov-report=xml
|
|
136
|
+
run: python -m pytest --showlocals -vv --cov --cov-report=xml
|
|
123
137
|
|
|
124
138
|
- name: Upload coverage report
|
|
125
139
|
uses: codecov/codecov-action@v4
|
|
126
140
|
if: ${{ always() }}
|
|
141
|
+
env:
|
|
142
|
+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
127
143
|
|
|
128
144
|
msvc:
|
|
129
145
|
runs-on: windows-latest
|
|
@@ -160,8 +176,7 @@ jobs:
|
|
|
160
176
|
run: python -m pip install .[test]
|
|
161
177
|
|
|
162
178
|
- name: Run tests
|
|
163
|
-
run:
|
|
164
|
-
python -m pytest --showlocals -vv
|
|
179
|
+
run: python -m pytest --showlocals -vv
|
|
165
180
|
|
|
166
181
|
cygwin:
|
|
167
182
|
runs-on: windows-latest
|
|
@@ -235,8 +250,7 @@ jobs:
|
|
|
235
250
|
shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -leo pipefail -o igncr {0}
|
|
236
251
|
|
|
237
252
|
- name: Run tests
|
|
238
|
-
run:
|
|
239
|
-
python -m pytest --showlocals -vv
|
|
253
|
+
run: python -m pytest --showlocals -vv
|
|
240
254
|
shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -leo pipefail -o igncr {0}
|
|
241
255
|
|
|
242
256
|
pyston:
|
|
@@ -269,8 +283,7 @@ jobs:
|
|
|
269
283
|
run: pyston -m pip install .[test]
|
|
270
284
|
|
|
271
285
|
- name: Run tests
|
|
272
|
-
run:
|
|
273
|
-
pyston -m pytest --showlocals -vv
|
|
286
|
+
run: pyston -m pytest --showlocals -vv
|
|
274
287
|
|
|
275
288
|
homebrew:
|
|
276
289
|
runs-on: macos-latest
|
|
@@ -278,8 +291,8 @@ jobs:
|
|
|
278
291
|
fail-fast: false
|
|
279
292
|
matrix:
|
|
280
293
|
python:
|
|
281
|
-
- '3.
|
|
282
|
-
- '3.
|
|
294
|
+
- '3.9'
|
|
295
|
+
- '3.12'
|
|
283
296
|
meson:
|
|
284
297
|
-
|
|
285
298
|
|
|
@@ -307,8 +320,7 @@ jobs:
|
|
|
307
320
|
run: python -m pip install .[test]
|
|
308
321
|
|
|
309
322
|
- name: Run tests
|
|
310
|
-
run:
|
|
311
|
-
python -m pytest --showlocals -vv
|
|
323
|
+
run: python -m pytest --showlocals -vv
|
|
312
324
|
|
|
313
325
|
mypy:
|
|
314
326
|
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,32 @@
|
|
|
11
11
|
Changelog
|
|
12
12
|
+++++++++
|
|
13
13
|
|
|
14
|
+
0.17.0
|
|
15
|
+
======
|
|
16
|
+
|
|
17
|
+
- Refuse to build wheels targeting the limited API and free-threaded CPython:
|
|
18
|
+
the free-threaded CPython build does not support the limited API yet.
|
|
19
|
+
- Always use UTF-8 encoding for writing Meson native and cross files. Always
|
|
20
|
+
use UTF-8 encoding for reading read Meson introspection data and
|
|
21
|
+
``pyproject.toml``.
|
|
22
|
+
- Do not include uncommitted changes when creating source distributions.
|
|
23
|
+
Previously, uncommitted changes to files under version control were
|
|
24
|
+
included, but not untracked files. There was no strong use case for this
|
|
25
|
+
behavior and it was too surprising to keep it.
|
|
26
|
+
- Make source distribution reproducible: use the modification time of
|
|
27
|
+
``pyproject.toml`` for the generated files in the source distribution
|
|
28
|
+
archives.
|
|
29
|
+
- Disable the ``abi3`` wheel tag for PyPy when building wheels targeting the
|
|
30
|
+
limited API: PyPy supports the limited API but not the stable ABI.
|
|
31
|
+
- Raise ``ImportError`` when the package rebuild fails when importing an
|
|
32
|
+
editable install.
|
|
33
|
+
- Fix the wheel platform tag for GraalPy.
|
|
34
|
+
- Add ``.gitignore`` and ``.hgignore`` files to build directory if it is empty.
|
|
35
|
+
- Allow ``install_subdir()`` of missing directories.
|
|
36
|
+
|
|
37
|
+
Christian Clauss, Daniele Nicolodi, Jonathan J. Helmus, Leo Singer, Loïc
|
|
38
|
+
Estève, Michael Simacek, Ralf Gommers, Simon McVittie --- 19-10-2024.
|
|
39
|
+
|
|
14
40
|
0.16.0
|
|
15
41
|
======
|
|
16
42
|
|
|
@@ -38,7 +64,7 @@ Changelog
|
|
|
38
64
|
emit a message indicating that the package is being rebuilt but
|
|
39
65
|
suppress any output when there is no work to do.
|
|
40
66
|
|
|
41
|
-
Daniele Nicolodi, Loïc Estève, Ralf Gommers
|
|
67
|
+
Daniele Nicolodi, Loïc Estève, Ralf Gommers --- 16-04-2024
|
|
42
68
|
|
|
43
69
|
|
|
44
70
|
0.15.0
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: meson-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.17.0
|
|
4
4
|
Summary: Meson Python build backend (PEP 517)
|
|
5
|
-
Keywords: meson
|
|
5
|
+
Keywords: meson,build,backend,pep517,package
|
|
6
6
|
Home-page: https://github.com/mesonbuild/meson-python
|
|
7
7
|
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
8
|
License: Copyright © 2022 the meson-python contributors
|
|
@@ -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
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
.. SPDX-FileCopyrightText: 2024 The meson-python developers
|
|
2
|
+
..
|
|
3
|
+
.. SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
.. _sdist:
|
|
6
|
+
|
|
7
|
+
******************************
|
|
8
|
+
Creating a source distribution
|
|
9
|
+
******************************
|
|
10
|
+
|
|
11
|
+
A source distribution for the project can be created executing
|
|
12
|
+
|
|
13
|
+
.. code-block:: console
|
|
14
|
+
|
|
15
|
+
$ python -m build --sdist .
|
|
16
|
+
|
|
17
|
+
in the project root folder. This will create a ``.tar.gz`` archive in the
|
|
18
|
+
``dist`` folder in the project root folder. This archive contains the full
|
|
19
|
+
contents of the latest commit in revision control with all revision control
|
|
20
|
+
metadata removed. Uncommitted modifications and files unknown to the revision
|
|
21
|
+
control system are not included.
|
|
22
|
+
|
|
23
|
+
The source distribution archive is created by adding the required metadata
|
|
24
|
+
files to the archive obtained by executing the ``meson dist --no-tests
|
|
25
|
+
--allow-dirty`` command. To generate a source distribution, ``meson-python``
|
|
26
|
+
must successfully configure the Meson project by running the ``meson setup``
|
|
27
|
+
command. Additional arguments can be passed to ``meson dist`` to alter its
|
|
28
|
+
behavior. Refer to the relevant `Meson documentation`__ and to the
|
|
29
|
+
:ref:`how-to-guides-meson-args` guide for details.
|
|
30
|
+
|
|
31
|
+
The ``meson dist`` command uses the archival tool of the underlying revision
|
|
32
|
+
control system for creating the archive. This implies that a source
|
|
33
|
+
distribution can only be created for a project versioned in a revision control
|
|
34
|
+
system. Meson supports the Git and Mercurial revision control systems.
|
|
35
|
+
|
|
36
|
+
Files can be excluded from the source distribution via the relevant mechanism
|
|
37
|
+
provided by the revision control system. When using Git as a revision control
|
|
38
|
+
system, it is possible to exclude files from the source distribution setting
|
|
39
|
+
the ``export-ignore`` attribute. For example, adding a ``.gitattributes``
|
|
40
|
+
files containing
|
|
41
|
+
|
|
42
|
+
.. code-block:: none
|
|
43
|
+
|
|
44
|
+
dev/** export-ignore
|
|
45
|
+
|
|
46
|
+
would result in the ``dev`` folder to be excluded from the source
|
|
47
|
+
distribution. Refer to the ``git archive`` documentation__ for
|
|
48
|
+
details. Another mechanism to alter the content of the source distribution is
|
|
49
|
+
offered by dist scripts. Refer to the relevant `Meson documentation`__ for
|
|
50
|
+
details.
|
|
51
|
+
|
|
52
|
+
__ https://mesonbuild.com/Creating-releases.html
|
|
53
|
+
__ https://git-scm.com/docs/git-archive#ATTRIBUTES
|
|
54
|
+
__ https://mesonbuild.com/Reference-manual_builtin_meson.html#mesonadd_dist_script
|
|
@@ -77,6 +77,7 @@ the use of ``meson-python`` and Meson for Python packaging.
|
|
|
77
77
|
:hidden:
|
|
78
78
|
|
|
79
79
|
tutorials/introduction
|
|
80
|
+
how-to-guides/sdist
|
|
80
81
|
how-to-guides/editable-installs
|
|
81
82
|
how-to-guides/config-settings
|
|
82
83
|
how-to-guides/meson-args
|
|
@@ -100,7 +101,6 @@ the use of ``meson-python`` and Meson for Python packaging.
|
|
|
100
101
|
|
|
101
102
|
changelog
|
|
102
103
|
about
|
|
103
|
-
contributing/index
|
|
104
104
|
Discussions <https://github.com/mesonbuild/meson-python/discussions>
|
|
105
105
|
Source Code <https://github.com/mesonbuild/meson-python>
|
|
106
106
|
Issue Tracker <https://github.com/mesonbuild/meson-python/issues>
|
|
@@ -23,10 +23,6 @@ them.
|
|
|
23
23
|
exists and contains a valid Meson build directory setup, the
|
|
24
24
|
project will be reconfigured using ``meson setup --reconfigure``.
|
|
25
25
|
|
|
26
|
-
The same build directory can be used by subsequent invocations of
|
|
27
|
-
``meson-python``. This avoids having to rebuild the whole project
|
|
28
|
-
when testing changes during development.
|
|
29
|
-
|
|
30
26
|
For backward compatibility reasons, the alternative ``builddir``
|
|
31
27
|
spelling is also accepted.
|
|
32
28
|
|
|
@@ -255,6 +255,19 @@ If the build succeeded, you'll have the binary artifacts in the ``dist`` folder.
|
|
|
255
255
|
easier, we recommend checking out the cibuildwheel_ project, which allows you
|
|
256
256
|
to automate it.
|
|
257
257
|
|
|
258
|
+
Build isolation
|
|
259
|
+
```````````````
|
|
260
|
+
|
|
261
|
+
Building with ``python -m build`` or with ``pip`` uses build isolation by
|
|
262
|
+
default. I.e., the build frontend creates a new, temporary virtual environment
|
|
263
|
+
with all build dependencies before calling ``meson-python`` to build a wheel.
|
|
264
|
+
|
|
265
|
+
If you disable build isolation, you are responsible for ensuring that
|
|
266
|
+
``meson-python`` and all other build dependencies for the package are installed
|
|
267
|
+
already in the Python environment. Note that if you use a virtual environment
|
|
268
|
+
to build in, it must be activated (otherwise ``meson`` or another executable
|
|
269
|
+
may not be found).
|
|
270
|
+
|
|
258
271
|
|
|
259
272
|
Distributing the project
|
|
260
273
|
------------------------
|