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.
Files changed (215) hide show
  1. {meson_python-0.16.0 → meson_python-0.17.0}/.cirrus.yml +4 -4
  2. {meson_python-0.16.0 → meson_python-0.17.0}/.github/workflows/docs.yml +4 -4
  3. {meson_python-0.16.0 → meson_python-0.17.0}/.github/workflows/tests.yml +45 -33
  4. {meson_python-0.16.0 → meson_python-0.17.0}/.pre-commit-config.yaml +5 -4
  5. {meson_python-0.16.0 → meson_python-0.17.0}/CHANGELOG.rst +27 -1
  6. {meson_python-0.16.0 → meson_python-0.17.0}/PKG-INFO +2 -2
  7. meson_python-0.16.0/docs/contributing/release-process.rst → meson_python-0.17.0/RELEASE.rst +8 -18
  8. {meson_python-0.16.0 → meson_python-0.17.0}/ci/alpine-3.docker +1 -1
  9. {meson_python-0.16.0 → meson_python-0.17.0}/ci/manylinux.docker +1 -1
  10. {meson_python-0.16.0 → meson_python-0.17.0}/ci/opensuse-15.docker +1 -1
  11. {meson_python-0.16.0 → meson_python-0.17.0}/docs/conf.py +7 -1
  12. {meson_python-0.16.0 → meson_python-0.17.0}/docs/explanations/design-old.rst +0 -15
  13. meson_python-0.17.0/docs/how-to-guides/config-settings.rst +128 -0
  14. meson_python-0.17.0/docs/how-to-guides/sdist.rst +54 -0
  15. {meson_python-0.16.0 → meson_python-0.17.0}/docs/index.rst +1 -1
  16. {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/config-settings.rst +0 -4
  17. {meson_python-0.16.0 → meson_python-0.17.0}/docs/tutorials/introduction.rst +13 -0
  18. {meson_python-0.16.0 → meson_python-0.17.0}/meson.build +1 -1
  19. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/__init__.py +110 -84
  20. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_editable.py +18 -14
  21. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_tags.py +2 -1
  22. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_util.py +5 -1
  23. {meson_python-0.16.0 → meson_python-0.17.0}/pyproject.toml +2 -2
  24. {meson_python-0.16.0 → meson_python-0.17.0}/tests/conftest.py +12 -0
  25. meson_python-0.17.0/tests/packages/complex/extension.c +33 -0
  26. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/meson.build +7 -0
  27. meson_python-0.17.0/tests/packages/long-path/meson.build +5 -0
  28. meson_python-0.17.0/tests/packages/long-path/pyproject.toml +11 -0
  29. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_editable.py +65 -15
  30. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_metadata.py +7 -1
  31. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_pep517.py +48 -0
  32. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_project.py +1 -1
  33. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_sdist.py +49 -18
  34. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_tags.py +4 -2
  35. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_wheel.py +5 -0
  36. meson_python-0.16.0/docs/changelog.rst +0 -351
  37. meson_python-0.16.0/docs/contributing/index.rst +0 -11
  38. meson_python-0.16.0/docs/how-to-guides/config-settings.rst +0 -61
  39. {meson_python-0.16.0 → meson_python-0.17.0}/.gitignore +0 -0
  40. {meson_python-0.16.0 → meson_python-0.17.0}/.mailmap +0 -0
  41. {meson_python-0.16.0 → meson_python-0.17.0}/.readthedocs.yaml +0 -0
  42. {meson_python-0.16.0 → meson_python-0.17.0}/LICENSE +0 -0
  43. {meson_python-0.16.0 → meson_python-0.17.0}/LICENSES/MIT.txt +0 -0
  44. {meson_python-0.16.0 → meson_python-0.17.0}/README.rst +0 -0
  45. {meson_python-0.16.0 → meson_python-0.17.0}/ci/archlinux.docker +0 -0
  46. {meson_python-0.16.0 → meson_python-0.17.0}/ci/debian-11.docker +0 -0
  47. {meson_python-0.16.0 → meson_python-0.17.0}/ci/debian-12.docker +0 -0
  48. {meson_python-0.16.0 → meson_python-0.17.0}/ci/debian-unstable.docker +0 -0
  49. {meson_python-0.16.0 → meson_python-0.17.0}/ci/fedora-37.docker +0 -0
  50. {meson_python-0.16.0 → meson_python-0.17.0}/ci/miniconda.docker +0 -0
  51. {meson_python-0.16.0 → meson_python-0.17.0}/codecov.yml +0 -0
  52. {meson_python-0.16.0 → meson_python-0.17.0}/docs/about.rst +0 -0
  53. {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/meson.build +0 -0
  54. {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/pyproject.toml +0 -0
  55. {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/src/__init__.py +0 -0
  56. {meson_python-0.16.0 → meson_python-0.17.0}/docs/examples/spam/src/spammodule.c +0 -0
  57. {meson_python-0.16.0 → meson_python-0.17.0}/docs/explanations/default-options.rst +0 -0
  58. {meson_python-0.16.0 → meson_python-0.17.0}/docs/how-to-guides/debug-builds.rst +0 -0
  59. {meson_python-0.16.0 → meson_python-0.17.0}/docs/how-to-guides/editable-installs.rst +0 -0
  60. {meson_python-0.16.0 → meson_python-0.17.0}/docs/how-to-guides/meson-args.rst +0 -0
  61. {meson_python-0.16.0 → meson_python-0.17.0}/docs/projects-using-meson-python.rst +0 -0
  62. {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/environment-variables.rst +0 -0
  63. {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/limitations.rst +0 -0
  64. {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/meson-compatibility.rst +0 -0
  65. {meson_python-0.16.0 → meson_python-0.17.0}/docs/reference/pyproject-settings.rst +0 -0
  66. {meson_python-0.16.0 → meson_python-0.17.0}/docs/spelling_wordlist.txt +0 -0
  67. {meson_python-0.16.0 → meson_python-0.17.0}/docs/spelling_wordlist.txt.license +0 -0
  68. {meson_python-0.16.0 → meson_python-0.17.0}/docs/static/css/contributors.css +0 -0
  69. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_compat.py +0 -0
  70. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_rpath.py +0 -0
  71. {meson_python-0.16.0 → meson_python-0.17.0}/mesonpy/_wheelfile.py +0 -0
  72. {meson_python-0.16.0 → meson_python-0.17.0}/noxfile.py +0 -0
  73. {meson_python-0.16.0 → meson_python-0.17.0}/tests/__init__.py +0 -0
  74. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/__init__.py +0 -0
  75. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/more/__init__.py +0 -0
  76. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/more/baz.pyx +0 -0
  77. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/more/meson.build +0 -0
  78. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/namespace/bar.py +0 -0
  79. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/complex/namespace/foo.py +0 -0
  80. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/foo.py +0 -0
  81. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/move.py +0 -0
  82. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/pyproject.toml +0 -0
  83. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/complex/test.pyx +0 -0
  84. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/configure-data/configure_data.py.in +0 -0
  85. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/configure-data/meson.build +0 -0
  86. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/configure-data/pyproject.toml +0 -0
  87. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/custom-target-dir/codegen.py +0 -0
  88. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/custom-target-dir/meson.build +0 -0
  89. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/custom-target-dir/pyproject.toml +0 -0
  90. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/detect-compiler/detect_compiler.c +0 -0
  91. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/detect-compiler/meson.build +0 -0
  92. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/detect-compiler/pyproject.toml +0 -0
  93. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dist-script/meson.build +0 -0
  94. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dist-script/pyproject.toml +0 -0
  95. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dynamic-version/meson.build +0 -0
  96. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/dynamic-version/pyproject.toml +0 -0
  97. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/encoding/meson.build +0 -0
  98. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/encoding/pyproject.toml +0 -0
  99. {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
  100. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable/example.c +0 -0
  101. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable/meson.build +0 -0
  102. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable/pyproject.toml +0 -0
  103. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/example-script.py +0 -0
  104. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/example.c +0 -0
  105. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/executable_module.py +0 -0
  106. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/meson.build +0 -0
  107. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/executable-bit/pyproject.toml +0 -0
  108. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/LICENSE +0 -0
  109. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/README.md +0 -0
  110. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/meson.build +0 -0
  111. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/full-metadata/pyproject.toml +0 -0
  112. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/example-script.py +0 -0
  113. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/example.c +0 -0
  114. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/executable_module.py +0 -0
  115. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/generate_version.py +0 -0
  116. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/meson.build +0 -0
  117. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/generated-files/pyproject.toml +0 -0
  118. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/meson.build +0 -0
  119. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/plat.c +0 -0
  120. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/pure.py +0 -0
  121. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/imports-itself-during-build/pyproject.toml +0 -0
  122. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/meson.build +0 -0
  123. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/nested/deep/deep.py +0 -0
  124. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/nested/deep/excluded.py +0 -0
  125. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/nested/nested.py +0 -0
  126. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/pyproject.toml +0 -0
  127. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/strip/excluded.py +0 -0
  128. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/strip/module.py +0 -0
  129. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/__init__.py +0 -0
  130. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/excluded/__init__.py +0 -0
  131. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/excluded.py +0 -0
  132. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/install-subdir/subdir/test.py +0 -0
  133. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/example.c +0 -0
  134. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/examplelib.c +0 -0
  135. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/examplelib.h +0 -0
  136. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/meson.build +0 -0
  137. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/library/pyproject.toml +0 -0
  138. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/license-file/meson.build +0 -0
  139. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/license-file/pyproject.toml +0 -0
  140. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/license-file/something/LICENSE.custom +0 -0
  141. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/meson.build +0 -0
  142. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/meson.options +0 -0
  143. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/module.c +0 -0
  144. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/limited-api/pyproject.toml +0 -0
  145. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/examplemod.c +0 -0
  146. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/lib/examplelib.c +0 -0
  147. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/lib/examplelib.h +0 -0
  148. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/lib/meson.build +0 -0
  149. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/meson.build +0 -0
  150. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/link-against-local-lib/pyproject.toml +0 -0
  151. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-dynamic-version/meson.build +0 -0
  152. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-dynamic-version/pyproject.toml +0 -0
  153. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-meson-version/meson.build +0 -0
  154. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-meson-version/pyproject.toml +0 -0
  155. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-version/meson.build +0 -0
  156. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/missing-version/pyproject.toml +0 -0
  157. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/file.py +0 -0
  158. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/meson.build +0 -0
  159. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/namespace/data.py +0 -0
  160. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/native.c +0 -0
  161. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/package/__init__.py +0 -0
  162. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/module-types/pyproject.toml +0 -0
  163. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/pure/meson.build +0 -0
  164. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/pure/pure.py +0 -0
  165. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/pure/pyproject.toml +0 -0
  166. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/meson.build +0 -0
  167. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/plat.c +0 -0
  168. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/pure.py +0 -0
  169. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-and-platlib/pyproject.toml +0 -0
  170. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/meson.build +0 -0
  171. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/plat.py +0 -0
  172. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/pure.py +0 -0
  173. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/purelib-platlib-split/pyproject.toml +0 -0
  174. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/meson.build +0 -0
  175. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/__init__.py +0 -0
  176. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/cy_extmod.pyx +0 -0
  177. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/extmod.c +0 -0
  178. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/meson.build +0 -0
  179. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/submod/__init__.py +0 -0
  180. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/mypkg/submod/unknown_filetype.npq +0 -0
  181. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/pyproject.toml +0 -0
  182. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/scipy-like/tools/generate_config.py +0 -0
  183. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/__init__.py +0 -0
  184. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/data.txt +0 -0
  185. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/data.txt.license +0 -0
  186. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/meson.build +0 -0
  187. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/pyproject.toml +0 -0
  188. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/simple/test.py +0 -0
  189. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/meson.build +0 -0
  190. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/pyproject.toml +0 -0
  191. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/__init__.py +0 -0
  192. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/a/__init__.py +0 -0
  193. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/a/b/c.py +0 -0
  194. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subdirs/subdirs/b/c.py +0 -0
  195. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/meson.build +0 -0
  196. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/pyproject.toml +0 -0
  197. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/subproject.py +0 -0
  198. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/subprojects/dep/dep.py +0 -0
  199. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/subproject/subprojects/dep/meson.build +0 -0
  200. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unknown-user-args-meson-args/pyproject.toml +0 -0
  201. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unknown-user-args-top-level/pyproject.toml +0 -0
  202. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unsupported-python-version/meson.build +0 -0
  203. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/unsupported-python-version/pyproject.toml +0 -0
  204. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/user-args/meson.build +0 -0
  205. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/user-args/pure.py +0 -0
  206. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/user-args/pyproject.toml +0 -0
  207. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/meson.build +0 -0
  208. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/meson_options.txt +0 -0
  209. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/pyproject.toml +0 -0
  210. {meson_python-0.16.0 → meson_python-0.17.0}/tests/packages/vendored-meson/third-party/meson.py +0 -0
  211. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_consistency.py +0 -0
  212. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_examples.py +0 -0
  213. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_options.py +0 -0
  214. {meson_python-0.16.0 → meson_python-0.17.0}/tests/test_output.py +0 -0
  215. {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.11_task:
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/cp311-cp311/bin/:${PATH}"
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-13-2
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-ventura-xcode
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.push.tag || github.event.inputs.tag }}
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@v2
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.event.push.tag || github.event.inputs.tag }}
49
+ if: ${{ github.event_name == 'workflow_dispatch' || github.ref_type == 'tag' }}
50
50
  steps:
51
- - uses: actions/deploy-pages@v2
51
+ - uses: actions/deploy-pages@v4
@@ -36,58 +36,69 @@ concurrency:
36
36
 
37
37
  jobs:
38
38
  test:
39
- runs-on: ${{ matrix.os }}-latest
39
+ runs-on: ${{ matrix.os }}
40
40
  strategy:
41
41
  fail-fast: false
42
42
  matrix:
43
43
  os:
44
- - ubuntu
45
- - macos
46
- - windows
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.12'
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: ${{ matrix.os == 'ubuntu' }}
114
+ if: ${{ runner.os == 'Linux' }}
104
115
 
105
116
  - name: Install Ninja
106
117
  run: brew install ninja
107
- if: ${{ matrix.os == 'macos' }}
118
+ if: ${{ runner.os == 'macOS' }}
108
119
 
109
120
  - name: Install Ninja
110
121
  run: python -m pip install ninja
111
- if: ${{ matrix.os == 'windows' }}
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.8'
282
- - '3.11'
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 repositories'
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: v4.5.0
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.1.5
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: v2.1.0
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 --- 16-04-2024
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.16.0
3
+ Version: 0.17.0
4
4
  Summary: Meson Python build backend (PEP 517)
5
- Keywords: meson build backend pep517 package
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 the
13
- `installation page`_. Before releasing please make sure your PGP key is listed
14
- there, and preferably signed by one of the other key holders.
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 the
17
- PR that added your key to the :doc:`../about` page was approved by at least one
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 `PyPI <https://pypi.org/project/meson-python/>`_
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
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20240305
5
+ # 20240817
6
6
  FROM alpine:3
7
7
  RUN apk add --no-cache python3-dev py3-pip build-base ninja-is-really-ninja git patchelf
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20221209
5
+ # 20240513
6
6
  FROM quay.io/pypa/manylinux_2_28_x86_64
7
7
  RUN dnf -y update && dnf -y install ninja-build && dnf clean all
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20230816
5
+ # 20240817
6
6
  FROM opensuse/leap:latest
7
7
  RUN zypper --non-interactive install python311 python311-pip python311-devel gcc ninja git patchelf && zypper clean --all && ln -s python3.11 /usr/bin/python3
@@ -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}{datetime.date.today().year} The meson-python developers'
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
  ------------------------
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- project('meson-python', version: '0.16.0')
5
+ project('meson-python', version: '0.17.0')
6
6
 
7
7
  py = import('python').find_installation()
8
8