meson-python 0.18.0__tar.gz → 0.19.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 (261) hide show
  1. {meson_python-0.18.0 → meson_python-0.19.0}/.cirrus.yml +6 -5
  2. meson_python-0.19.0/.gitattributes +8 -0
  3. {meson_python-0.18.0 → meson_python-0.19.0}/.github/workflows/docs.yml +1 -1
  4. meson_python-0.19.0/.github/workflows/release.yml +46 -0
  5. {meson_python-0.18.0 → meson_python-0.19.0}/.github/workflows/tests.yml +35 -28
  6. {meson_python-0.18.0 → meson_python-0.19.0}/.pre-commit-config.yaml +0 -1
  7. meson_python-0.19.0/.vscode/settings.json +7 -0
  8. {meson_python-0.18.0 → meson_python-0.19.0}/CHANGELOG.rst +16 -0
  9. {meson_python-0.18.0 → meson_python-0.19.0}/PKG-INFO +5 -18
  10. {meson_python-0.18.0 → meson_python-0.19.0}/ci/alpine-3.docker +2 -2
  11. {meson_python-0.18.0 → meson_python-0.19.0}/ci/archlinux.docker +2 -2
  12. {meson_python-0.18.0 → meson_python-0.19.0}/ci/debian-11.docker +2 -2
  13. {meson_python-0.18.0 → meson_python-0.19.0}/ci/debian-12.docker +2 -2
  14. meson_python-0.19.0/ci/debian-unstable.docker +7 -0
  15. {meson_python-0.18.0 → meson_python-0.19.0}/ci/fedora-41.docker +2 -2
  16. meson_python-0.19.0/ci/miniconda.docker +7 -0
  17. {meson_python-0.18.0 → meson_python-0.19.0}/ci/opensuse-15.docker +2 -2
  18. {meson_python-0.18.0 → meson_python-0.19.0}/docs/changelog.rst +16 -0
  19. {meson_python-0.18.0 → meson_python-0.19.0}/docs/how-to-guides/config-settings.rst +29 -28
  20. meson_python-0.19.0/docs/how-to-guides/contributing.rst +86 -0
  21. {meson_python-0.18.0 → meson_python-0.19.0}/docs/how-to-guides/editable-installs.rst +56 -1
  22. {meson_python-0.18.0 → meson_python-0.19.0}/docs/how-to-guides/meson-args.rst +40 -32
  23. {meson_python-0.18.0 → meson_python-0.19.0}/docs/how-to-guides/shared-libraries.rst +47 -41
  24. {meson_python-0.18.0 → meson_python-0.19.0}/docs/index.rst +1 -0
  25. {meson_python-0.18.0 → meson_python-0.19.0}/docs/reference/environment-variables.rst +25 -9
  26. {meson_python-0.18.0 → meson_python-0.19.0}/docs/reference/meson-compatibility.rst +4 -0
  27. {meson_python-0.18.0 → meson_python-0.19.0}/docs/reference/pyproject-settings.rst +33 -5
  28. {meson_python-0.18.0 → meson_python-0.19.0}/docs/tutorials/introduction.rst +12 -7
  29. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/__init__.py +71 -12
  30. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/_compat.py +0 -8
  31. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/_editable.py +1 -0
  32. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/_tags.py +21 -1
  33. {meson_python-0.18.0 → meson_python-0.19.0}/pyproject.toml +32 -16
  34. {meson_python-0.18.0 → meson_python-0.19.0}/tests/conftest.py +41 -2
  35. meson_python-0.19.0/tests/packages/cmake-subproject/cmakesubproject.pyx +13 -0
  36. meson_python-0.19.0/tests/packages/cmake-subproject/meson.build +25 -0
  37. meson_python-0.19.0/tests/packages/cmake-subproject/subprojects/cmaketest/CMakeLists.txt +17 -0
  38. meson_python-0.19.0/tests/packages/cmake-subproject/subprojects/cmaketest/cmaketest.cpp +13 -0
  39. meson_python-0.19.0/tests/packages/cmake-subproject/subprojects/cmaketest/cmaketest.hpp +14 -0
  40. meson_python-0.19.0/tests/packages/cmake-subproject/subprojects/cmaketest.wrap +9 -0
  41. meson_python-0.19.0/tests/packages/install-data/__init__.py +8 -0
  42. meson_python-0.19.0/tests/packages/install-data/data.txt +1 -0
  43. meson_python-0.19.0/tests/packages/install-data/meson.build +25 -0
  44. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/limited-api/meson.build +1 -1
  45. meson_python-0.19.0/tests/packages/simple/pyproject.toml +7 -0
  46. meson_python-0.19.0/tests/packages/subproject/pyproject.toml +16 -0
  47. meson_python-0.19.0/tests/packages/subproject/subprojects/dep/data.txt +1 -0
  48. meson_python-0.19.0/tests/packages/subproject/subprojects/dep/meson.build +20 -0
  49. meson_python-0.19.0/tests/packages/symlinks/submodule/__init__.py +3 -0
  50. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/user-args/pyproject.toml +1 -1
  51. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_editable.py +6 -0
  52. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_project.py +45 -8
  53. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_sdist.py +10 -1
  54. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_tags.py +25 -0
  55. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_wheel.py +18 -5
  56. meson_python-0.18.0/ci/debian-unstable.docker +0 -7
  57. meson_python-0.18.0/ci/miniconda.docker +0 -7
  58. meson_python-0.18.0/docs/examples/spam/meson.build +0 -32
  59. meson_python-0.18.0/docs/examples/spam/pyproject.toml +0 -15
  60. meson_python-0.18.0/docs/examples/spam/src/__init__.py +0 -5
  61. meson_python-0.18.0/docs/examples/spam/src/spammodule.c +0 -32
  62. meson_python-0.18.0/tests/packages/subproject/subprojects/dep/meson.build +0 -9
  63. meson_python-0.18.0/tests/test_examples.py +0 -34
  64. {meson_python-0.18.0 → meson_python-0.19.0}/.gitignore +0 -0
  65. {meson_python-0.18.0 → meson_python-0.19.0}/.mailmap +0 -0
  66. {meson_python-0.18.0 → meson_python-0.19.0}/.readthedocs.yaml +0 -0
  67. {meson_python-0.18.0 → meson_python-0.19.0}/LICENSE +0 -0
  68. {meson_python-0.18.0 → meson_python-0.19.0}/LICENSES/MIT.txt +0 -0
  69. {meson_python-0.18.0 → meson_python-0.19.0}/README.rst +0 -0
  70. {meson_python-0.18.0 → meson_python-0.19.0}/RELEASE.rst +0 -0
  71. {meson_python-0.18.0 → meson_python-0.19.0}/ci/manylinux.docker +0 -0
  72. {meson_python-0.18.0 → meson_python-0.19.0}/codecov.yml +0 -0
  73. {meson_python-0.18.0 → meson_python-0.19.0}/docs/about.rst +1 -1
  74. {meson_python-0.18.0 → meson_python-0.19.0}/docs/conf.py +0 -0
  75. {meson_python-0.18.0 → meson_python-0.19.0}/docs/explanations/default-options.rst +0 -0
  76. {meson_python-0.18.0 → meson_python-0.19.0}/docs/explanations/design-old.rst +0 -0
  77. {meson_python-0.18.0 → meson_python-0.19.0}/docs/how-to-guides/debug-builds.rst +0 -0
  78. {meson_python-0.18.0 → meson_python-0.19.0}/docs/how-to-guides/sdist.rst +0 -0
  79. {meson_python-0.18.0 → meson_python-0.19.0}/docs/projects-using-meson-python.rst +0 -0
  80. {meson_python-0.18.0 → meson_python-0.19.0}/docs/reference/config-settings.rst +0 -0
  81. {meson_python-0.18.0 → meson_python-0.19.0}/docs/reference/limitations.rst +0 -0
  82. {meson_python-0.18.0 → meson_python-0.19.0}/docs/spelling_wordlist.txt +0 -0
  83. {meson_python-0.18.0 → meson_python-0.19.0}/docs/spelling_wordlist.txt.license +0 -0
  84. {meson_python-0.18.0 → meson_python-0.19.0}/meson.build +0 -0
  85. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/_rpath.py +0 -0
  86. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/_util.py +0 -0
  87. {meson_python-0.18.0 → meson_python-0.19.0}/mesonpy/_wheelfile.py +0 -0
  88. {meson_python-0.18.0 → meson_python-0.19.0}/tests/__init__.py +0 -0
  89. {meson_python-0.18.0/tests/packages/complex → meson_python-0.19.0/tests/packages/cmake-subproject}/pyproject.toml +0 -0
  90. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/complex/__init__.py +0 -0
  91. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/complex/more/__init__.py +0 -0
  92. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/complex/more/baz.pyx +0 -0
  93. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/complex/more/meson.build +0 -0
  94. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/complex/namespace/bar.py +0 -0
  95. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/complex/namespace/foo.py +0 -0
  96. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/extension.c +0 -0
  97. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/foo.py +0 -0
  98. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/meson.build +0 -0
  99. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/move.py +0 -0
  100. {meson_python-0.18.0/tests/packages/configure-data → meson_python-0.19.0/tests/packages/complex}/pyproject.toml +0 -0
  101. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/complex/test.pyx +0 -0
  102. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/configure-data/configure_data.py.in +0 -0
  103. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/configure-data/meson.build +0 -0
  104. {meson_python-0.18.0/tests/packages/install-subdir → meson_python-0.19.0/tests/packages/configure-data}/pyproject.toml +0 -0
  105. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/custom-target-dir/codegen.py +0 -0
  106. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/custom-target-dir/meson.build +0 -0
  107. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/custom-target-dir/pyproject.toml +0 -0
  108. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/detect-compiler/detect_compiler.c +0 -0
  109. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/detect-compiler/meson.build +0 -0
  110. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/detect-compiler/pyproject.toml +0 -0
  111. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/dist-script/meson.build +0 -0
  112. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/dist-script/pyproject.toml +0 -0
  113. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/dynamic-version/meson.build +0 -0
  114. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/dynamic-version/pyproject.toml +0 -0
  115. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/encoding/meson.build +0 -0
  116. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/encoding/pyproject.toml +0 -0
  117. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/encoding//343/203/206/343/202/271/343/203/210.py" +0 -0
  118. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable/example.c +0 -0
  119. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable/meson.build +0 -0
  120. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable/pyproject.toml +0 -0
  121. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable-bit/example-script.py +0 -0
  122. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable-bit/example.c +0 -0
  123. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable-bit/executable_module.py +0 -0
  124. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable-bit/meson.build +0 -0
  125. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/executable-bit/pyproject.toml +0 -0
  126. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/full-metadata/LICENSE +0 -0
  127. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/full-metadata/README.md +0 -0
  128. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/full-metadata/meson.build +0 -0
  129. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/full-metadata/pyproject.toml +0 -0
  130. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/generated-files/example-script.py +0 -0
  131. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/generated-files/example.c +0 -0
  132. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/generated-files/executable_module.py +0 -0
  133. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/generated-files/generate_version.py +0 -0
  134. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/generated-files/meson.build +0 -0
  135. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/generated-files/pyproject.toml +0 -0
  136. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/imports-itself-during-build/meson.build +0 -0
  137. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/imports-itself-during-build/plat.c +0 -0
  138. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/imports-itself-during-build/pure.py +0 -0
  139. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/imports-itself-during-build/pyproject.toml +0 -0
  140. /meson_python-0.18.0/tests/packages/symlinks/__init__.py → /meson_python-0.19.0/tests/packages/install-data/data.txt.license +0 -0
  141. {meson_python-0.18.0/tests/packages/missing-meson-version → meson_python-0.19.0/tests/packages/install-data}/pyproject.toml +0 -0
  142. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/meson.build +0 -0
  143. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/nested/deep/deep.py +0 -0
  144. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/nested/deep/excluded.py +0 -0
  145. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/nested/nested.py +0 -0
  146. {meson_python-0.18.0/tests/packages/library → meson_python-0.19.0/tests/packages/install-subdir}/pyproject.toml +0 -0
  147. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/strip/excluded.py +0 -0
  148. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/strip/module.py +0 -0
  149. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/subdir/__init__.py +0 -0
  150. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/subdir/excluded/__init__.py +0 -0
  151. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/subdir/excluded.py +0 -0
  152. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/install-subdir/subdir/test.py +0 -0
  153. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/library/example.c +0 -0
  154. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/library/examplelib.c +0 -0
  155. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/library/examplelib.h +0 -0
  156. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/library/meson.build +0 -0
  157. {meson_python-0.18.0/tests/packages/pure → meson_python-0.19.0/tests/packages/library}/pyproject.toml +0 -0
  158. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-file/meson.build +0 -0
  159. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-file/pyproject.toml +0 -0
  160. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-file/something/LICENSE.custom +0 -0
  161. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-pep639/LICENSES/BSD-3-Clause.txt +0 -0
  162. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-pep639/LICENSES/MIT.txt +0 -0
  163. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-pep639/meson.build +0 -0
  164. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/license-pep639/pyproject.toml +0 -0
  165. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/limited-api/meson.options +0 -0
  166. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/limited-api/module.c +0 -0
  167. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/limited-api/pyproject.toml +0 -0
  168. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/__init__.py +0 -0
  169. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/examplemod.c +0 -0
  170. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/lib/examplelib.c +0 -0
  171. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/lib/examplelib.h +0 -0
  172. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/lib/meson.build +0 -0
  173. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/meson.build +0 -0
  174. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-against-local-lib/pyproject.toml +0 -0
  175. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/foo/__init__.py +0 -0
  176. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/foo/_examplemod.c +0 -0
  177. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/foo/meson.build +0 -0
  178. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/meson.build +0 -0
  179. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/pyproject.toml +0 -0
  180. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/subprojects/bar/bar_dll.h +0 -0
  181. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/subprojects/bar/examplelib.c +0 -0
  182. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/subprojects/bar/examplelib.h +0 -0
  183. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/link-library-in-subproject/subprojects/bar/meson.build +0 -0
  184. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/long-path/meson.build +0 -0
  185. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/long-path/pyproject.toml +0 -0
  186. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/missing-dynamic-version/meson.build +0 -0
  187. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/missing-dynamic-version/pyproject.toml +0 -0
  188. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/missing-meson-version/meson.build +0 -0
  189. {meson_python-0.18.0/tests/packages/subproject → meson_python-0.19.0/tests/packages/missing-meson-version}/pyproject.toml +0 -0
  190. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/module-types/file.py +0 -0
  191. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/module-types/meson.build +0 -0
  192. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/module-types/namespace/data.py +0 -0
  193. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/module-types/native.c +0 -0
  194. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/module-types/package/__init__.py +0 -0
  195. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/module-types/pyproject.toml +0 -0
  196. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/pure/meson.build +0 -0
  197. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/pure/pure.py +0 -0
  198. {meson_python-0.18.0/tests/packages/purelib-and-platlib → meson_python-0.19.0/tests/packages/pure}/pyproject.toml +0 -0
  199. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/purelib-and-platlib/meson.build +0 -0
  200. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/purelib-and-platlib/plat.c +0 -0
  201. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/purelib-and-platlib/pure.py +0 -0
  202. {meson_python-0.18.0/tests/packages/purelib-platlib-split → meson_python-0.19.0/tests/packages/purelib-and-platlib}/pyproject.toml +0 -0
  203. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/purelib-platlib-split/meson.build +0 -0
  204. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/purelib-platlib-split/plat.py +0 -0
  205. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/purelib-platlib-split/pure.py +0 -0
  206. {meson_python-0.18.0/tests/packages/simple → meson_python-0.19.0/tests/packages/purelib-platlib-split}/pyproject.toml +0 -0
  207. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/meson.build +0 -0
  208. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/mypkg/__init__.py +0 -0
  209. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/mypkg/cy_extmod.pyx +0 -0
  210. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/mypkg/extmod.c +0 -0
  211. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/mypkg/meson.build +0 -0
  212. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/mypkg/submod/__init__.py +0 -0
  213. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/mypkg/submod/unknown_filetype.npq +0 -0
  214. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/pyproject.toml +0 -0
  215. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/scipy-like/tools/generate_config.py +0 -0
  216. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/meson.build +0 -0
  217. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/__init__.py +0 -0
  218. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/_examplemod.c +0 -0
  219. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/examplelib.c +0 -0
  220. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/examplelib.h +0 -0
  221. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/meson.build +0 -0
  222. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/sub/examplelib2.c +0 -0
  223. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/sub/examplelib2.h +0 -0
  224. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/sub/meson.build +0 -0
  225. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/mypkg/sub/mypkg_dll.h +0 -0
  226. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/sharedlib-in-package/pyproject.toml +0 -0
  227. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/simple/__init__.py +0 -0
  228. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/simple/data.txt +0 -0
  229. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/simple/data.txt.license +0 -0
  230. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/simple/meson.build +0 -0
  231. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/simple/test.py +0 -0
  232. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subdirs/meson.build +0 -0
  233. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subdirs/pyproject.toml +0 -0
  234. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subdirs/subdirs/__init__.py +0 -0
  235. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subdirs/subdirs/a/__init__.py +0 -0
  236. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subdirs/subdirs/a/b/c.py +0 -0
  237. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subdirs/subdirs/b/c.py +0 -0
  238. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subproject/meson.build +0 -0
  239. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subproject/subproject.py +0 -0
  240. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/subproject/subprojects/dep/dep.py +0 -0
  241. {meson_python-0.18.0/tests/packages/symlinks/submodule → meson_python-0.19.0/tests/packages/symlinks}/__init__.py +0 -0
  242. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/symlinks/meson.build +0 -0
  243. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/symlinks/pyproject.toml +0 -0
  244. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/symlinks/submodule/aaa.py +0 -0
  245. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/symlinks/submodule/bbb.py +0 -0
  246. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/unknown-user-args-meson-args/pyproject.toml +0 -0
  247. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/unknown-user-args-top-level/pyproject.toml +0 -0
  248. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/unsupported-python-version/meson.build +0 -0
  249. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/unsupported-python-version/pyproject.toml +0 -0
  250. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/user-args/meson.build +0 -0
  251. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/user-args/pure.py +0 -0
  252. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/vendored-meson/meson.build +0 -0
  253. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/vendored-meson/meson_options.txt +0 -0
  254. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/vendored-meson/pyproject.toml +0 -0
  255. {meson_python-0.18.0 → meson_python-0.19.0}/tests/packages/vendored-meson/third-party/meson.py +0 -0
  256. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_consistency.py +0 -0
  257. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_metadata.py +0 -0
  258. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_options.py +0 -0
  259. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_output.py +0 -0
  260. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_pep517.py +0 -0
  261. {meson_python-0.18.0 → meson_python-0.19.0}/tests/test_wheelfile.py +0 -0
@@ -8,7 +8,8 @@ test_template: &test
8
8
  - python3 --version
9
9
  - python3 -m venv env
10
10
  - . env/bin/activate
11
- - python3 -m pip install .[test]
11
+ - python3 -m pip install -U pip
12
+ - python3 -m pip install . --group test
12
13
  - python3 -m pytest
13
14
 
14
15
  alpine-3_task:
@@ -55,12 +56,12 @@ manylinux-python3.13t_task:
55
56
  PATH: "/opt/python/cp313-cp313t/bin/:${PATH}"
56
57
  << : *test
57
58
 
58
- manylinux-python3.8_task:
59
+ manylinux-python3.9_task:
59
60
  container:
60
61
  dockerfile: ci/manylinux.docker
61
62
  cpu: 1
62
63
  env:
63
- PATH: "/opt/python/cp38-cp38/bin/:${PATH}"
64
+ PATH: "/opt/python/cp39-cp39/bin/:${PATH}"
64
65
  << : *test
65
66
 
66
67
  miniconda_task:
@@ -77,12 +78,12 @@ opensuse-15_task:
77
78
 
78
79
  freebsd_task:
79
80
  freebsd_instance:
80
- image_family: freebsd-14-2
81
+ image_family: freebsd-14-3
81
82
  install_script: pkg install -y git ninja patchelf
82
83
  << : *test
83
84
 
84
85
  macos-arm64_task:
85
86
  macos_instance:
86
- image: ghcr.io/cirruslabs/macos-sonoma-xcode
87
+ image: ghcr.io/cirruslabs/macos-runner:sonoma
87
88
  install_script: brew install git ninja python@3.11
88
89
  << : *test
@@ -0,0 +1,8 @@
1
+ # SPDX-FileCopyrightText: 2025 The meson-python developers
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ # These test files contain symlinks to outside the repo (hence invalid - on
6
+ # purpose) so exclude them to prevent warnings. See gh-728 for context.
7
+ tests/packages/symlinks/baz.py export-ignore
8
+ tests/packages/symlinks/qux.py export-ignore
@@ -32,7 +32,7 @@ jobs:
32
32
  - uses: actions/checkout@v4
33
33
  with:
34
34
  ref: ${{ github.event.inputs.tag || github.ref }}
35
- - run: python -m pip install .[docs]
35
+ - run: python -m pip install --group docs
36
36
  - run: python -m sphinx -W docs/ build/docs/
37
37
  - uses: actions/upload-pages-artifact@v3
38
38
  with:
@@ -0,0 +1,46 @@
1
+ # SPDX-FileCopyrightText: 2025 The meson-python developers
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ name: release
6
+ on:
7
+ push:
8
+ tags:
9
+ - '[0-9]+.[0-9]+.[0-9]+'
10
+ pull_request:
11
+ branches:
12
+ - main
13
+ - release-*
14
+
15
+ jobs:
16
+
17
+ build:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: '3.14'
24
+ - run: python -m pip install build
25
+ - run: python -m build
26
+ - uses: actions/upload-artifact@v4
27
+ with:
28
+ path: dist/*
29
+
30
+ upload:
31
+ needs: build
32
+ runs-on: ubuntu-latest
33
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
34
+ environment:
35
+ name: pypi
36
+ url: https://pypi.org/p/meson-python
37
+ permissions:
38
+ id-token: write
39
+ steps:
40
+ - uses: actions/download-artifact@v4
41
+ with:
42
+ merge-multiple: true
43
+ path: dist
44
+ - uses: pypa/gh-action-pypi-publish@release/v1
45
+ with:
46
+ print-hash: true
@@ -17,7 +17,6 @@ on:
17
17
  # This is spelt like this to do not ignore the docs/examples/ folder.
18
18
  - '**'
19
19
  - '!docs/**'
20
- - 'docs/examples/**'
21
20
  - '!CHANGELOG.rst'
22
21
  - '!LICENSE'
23
22
  - '!LICENSES/**'
@@ -42,34 +41,30 @@ jobs:
42
41
  matrix:
43
42
  os:
44
43
  - 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
44
+ # macOS 14 on arm64 is covered by the Cirrus CI jobs, stick to macOS
45
+ # on x86-64 here as long as we can: macOS 15 is currently planned as
46
+ # the last supported image based on Intel CPU on GitHub Actions.
47
+ - macos-15-intel
51
48
  - windows-latest
52
49
  python:
53
- - '3.8'
54
- - '3.13'
50
+ - '3.9'
51
+ - '3.14'
55
52
  meson:
56
53
  -
57
- pyproject_metadata:
54
+ dependencies:
58
55
  -
59
56
  include:
60
57
  - os: ubuntu-latest
61
58
  python: 'pypy-3.9'
62
59
  - os: ubuntu-latest
63
60
  python: 'pypy-3.11'
64
- - os: ubuntu-latest
65
- python: '3.8'
66
- - os: ubuntu-latest
67
- python: '3.9'
68
61
  - os: ubuntu-latest
69
62
  python: '3.10'
70
63
  # Test with older supported Meson version. Meson up to
71
64
  # version 1.2.3 requires distutils, which has been removed
72
65
  # from the stdlib in Python 3.12, thus test with Pythn 3.11.
66
+ # To avoid having too many CI jobs, combine this with tests
67
+ # with the minimum version of other dependencies.
73
68
  - os: ubuntu-latest
74
69
  python: '3.11'
75
70
  meson: '~=0.64.0'
@@ -91,12 +86,24 @@ jobs:
91
86
  - os: ubuntu-latest
92
87
  python: '3.12'
93
88
  meson: '~=1.5.0'
94
- # Test with Meson master branch.
89
+ dependencies: 'packaging==23.2 pyproject-metadata==0.9.0'
95
90
  - os: ubuntu-latest
96
91
  python: '3.12'
92
+ meson: '~=1.6.0'
93
+ dependencies: 'pyproject-metadata==0.9.0'
94
+ - os: ubuntu-latest
95
+ python: '3.12'
96
+ meson: '~=1.7.0'
97
+ dependencies: 'packaging==23.2'
98
+ - os: ubuntu-latest
99
+ python: '3.13'
100
+ meson: '~=1.8.0'
101
+ # Test with Meson master branch.
102
+ - os: ubuntu-latest
103
+ python: '3.14'
97
104
  meson: '@git+https://github.com/mesonbuild/meson.git'
98
105
  - os: windows-latest
99
- python: '3.12'
106
+ python: '3.14'
100
107
  meson: '@git+https://github.com/mesonbuild/meson.git'
101
108
 
102
109
  steps:
@@ -124,12 +131,12 @@ jobs:
124
131
  run: python -m pip install "meson ${{ matrix.meson }}"
125
132
  if: ${{ matrix.meson }}
126
133
 
127
- - name: Install pyproject-metadata
128
- run: python -m pip install "pyproject-metadata ${{ matrix.pyproject_metadata }}"
129
- if: ${{ matrix.pyproject_metadata }}
134
+ - name: Install dependencies
135
+ run: python -m pip install ${{ matrix.dependencies }}
136
+ if: ${{ matrix.dependencies }}
130
137
 
131
138
  - name: Install
132
- run: python -m pip install .[test]
139
+ run: python -m pip install . --group test
133
140
 
134
141
  - name: Run tests
135
142
  run: python -m pytest --showlocals -vv --cov --cov-report=xml
@@ -172,7 +179,7 @@ jobs:
172
179
  if: ${{ matrix.meson }}
173
180
 
174
181
  - name: Install
175
- run: python -m pip install .[test]
182
+ run: python -m pip install . --group test
176
183
 
177
184
  - name: Run tests
178
185
  run: python -m pytest --showlocals -vv
@@ -245,7 +252,7 @@ jobs:
245
252
  pushd /usr/share/python-wheels/
246
253
  python -m pip download setuptools pip
247
254
  popd
248
- python -m pip install .[test]
255
+ python -m pip install . --group test
249
256
  shell: C:\cygwin\bin\env.exe CYGWIN_NOWINPATH=1 CHERE_INVOKING=1 C:\cygwin\bin\bash.exe -leo pipefail -o igncr {0}
250
257
 
251
258
  - name: Run tests
@@ -270,21 +277,21 @@ jobs:
270
277
  - name: Install Homebrew Python
271
278
  run: |
272
279
  brew install --overwrite python@${{ matrix.python }}
273
- echo /usr/local/opt/python@${{ matrix.python }}/libexec/bin/ >> $GITHUB_PATH
280
+ echo /opt/homebrew/opt/python@${{ matrix.python }}/libexec/bin/ >> $GITHUB_PATH
281
+ python${{ matrix.python }} -m pip config set global.break-system-packages true
282
+
283
+ - name: Check Python version
284
+ run: python --version | grep ${{ matrix.python }}
274
285
 
275
286
  - name: Install Ninja
276
287
  run: brew install ninja
277
288
 
278
- - name: Update pip
279
- # pip >= 23.0 fixes https://github.com/pypa/pip/issues/11539
280
- run: python -m pip install --upgrade "pip >= 23.0"
281
-
282
289
  - name: Install Meson
283
290
  run: python -m pip install "meson ${{ matrix.meson }}"
284
291
  if: ${{ matrix.meson }}
285
292
 
286
293
  - name: Install
287
- run: python -m pip install .[test]
294
+ run: python -m pip install . --group test
288
295
 
289
296
  - name: Run tests
290
297
  run: python -m pytest --showlocals -vv
@@ -18,7 +18,6 @@ repos:
18
18
  - id: check-yaml
19
19
  - id: check-toml
20
20
  - id: debug-statements
21
- - id: double-quote-string-fixer
22
21
  - id: end-of-file-fixer
23
22
  - id: trailing-whitespace
24
23
  - repo: https://github.com/astral-sh/ruff-pre-commit
@@ -0,0 +1,7 @@
1
+ {
2
+ "python.testing.pytestArgs": [
3
+ "."
4
+ ],
5
+ "python.testing.unittestEnabled": false,
6
+ "python.testing.pytestEnabled": true
7
+ }
@@ -11,6 +11,22 @@
11
11
  Changelog
12
12
  +++++++++
13
13
 
14
+ 0.19.0
15
+ ======
16
+
17
+ - Drop Python 3.8 support.
18
+ - Development-related extras were moved to dependency groups.
19
+ - Add support for targeting the iOS platform.
20
+ - The ``strip`` binary is now included in synthesized cross files.
21
+ - Documentation improvements: add more examples for specific use cases, and a
22
+ contributing guide.
23
+ - Use trusted publishing with digital attestations to upload release artifacts
24
+ to PyPI.
25
+
26
+ Andrew Annex, Daniele Nicolodi, Michał Górny, Ralf Gommers, Russell
27
+ Keith-Magee, Tobias Diez --- 14-01-2026.
28
+
29
+
14
30
  0.18.0
15
31
  ======
16
32
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meson-python
3
- Version: 0.18.0
3
+ Version: 0.19.0
4
4
  Summary: Meson Python build backend (PEP 517)
5
5
  Keywords: meson,build,backend,pep517,package
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>
6
+ Maintainer-Email: Ralf Gommers <ralf.gommers@gmail.com>, Daniele Nicolodi <daniele@grinta.net>, Henry Schreiner <HenrySchreinerIII@gmail.com>
7
7
  License-Expression: MIT
8
8
  License-File: LICENSES/MIT.txt
9
9
  Classifier: Development Status :: 5 - Production/Stable
@@ -13,26 +13,13 @@ Project-URL: homepage, https://github.com/mesonbuild/meson-python
13
13
  Project-URL: repository, https://github.com/mesonbuild/meson-python
14
14
  Project-URL: documentation, https://mesonbuild.com/meson-python/
15
15
  Project-URL: changelog, https://mesonbuild.com/meson-python/changelog.html
16
- Requires-Python: >=3.8
16
+ Requires-Python: >=3.9
17
17
  Requires-Dist: meson>=0.64.0; python_version < "3.12"
18
18
  Requires-Dist: meson>=1.2.3; python_version >= "3.12"
19
- Requires-Dist: packaging>=23.2
19
+ Requires-Dist: packaging>=23.2; sys_platform != "ios"
20
+ Requires-Dist: packaging>=24.2; sys_platform == "ios"
20
21
  Requires-Dist: pyproject-metadata>=0.9.0
21
22
  Requires-Dist: tomli>=1.0.0; python_version < "3.11"
22
- Provides-Extra: test
23
- Requires-Dist: build; extra == "test"
24
- Requires-Dist: pytest>=6.0; extra == "test"
25
- Requires-Dist: pytest-cov[toml]; extra == "test"
26
- Requires-Dist: pytest-mock; extra == "test"
27
- Requires-Dist: cython>=3.0.3; extra == "test"
28
- Requires-Dist: wheel; extra == "test"
29
- Requires-Dist: typing-extensions>=3.7.4; python_version < "3.11" and extra == "test"
30
- Provides-Extra: docs
31
- Requires-Dist: furo>=2024.08.06; extra == "docs"
32
- Requires-Dist: sphinx~=8.1.0; extra == "docs"
33
- Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
34
- Requires-Dist: sphinx-design>=0.1.0; extra == "docs"
35
- Requires-Dist: sphinxext-opengraph>=0.7.0; extra == "docs"
36
23
  Description-Content-Type: text/x-rst
37
24
 
38
25
  .. SPDX-FileCopyrightText: 2021 The meson-python developers
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20250212
5
+ # 20260108
6
6
  FROM alpine:3
7
- RUN apk add --no-cache python3-dev py3-pip build-base ninja-is-really-ninja git patchelf
7
+ RUN apk add --no-cache python3-dev py3-pip build-base ninja-is-really-ninja git patchelf cmake
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20250127
5
+ # 20260108
6
6
  FROM archlinux:latest
7
- RUN pacman -Syu --noconfirm && pacman -S --noconfirm python python-pip gcc ninja git patchelf
7
+ RUN pacman -Syu --noconfirm && pacman -S --noconfirm python python-pip gcc ninja git patchelf cmake
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20250212
5
+ # 20260108
6
6
  FROM debian:bullseye
7
- RUN apt-get update && apt-get install -y git ninja-build patchelf python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
7
+ RUN apt-get update && apt-get install -y git ninja-build patchelf python3-pip python3-venv cmake && rm -rf /var/lib/apt/lists/*
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20250127
5
+ # 20260108
6
6
  FROM debian:bookworm
7
- RUN apt-get update && apt-get install -y git ninja-build patchelf python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
7
+ RUN apt-get update && apt-get install -y git ninja-build patchelf python3-pip python3-venv cmake && rm -rf /var/lib/apt/lists/*
@@ -0,0 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2022 The meson-python developers
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ # 20260108
6
+ FROM debian:unstable
7
+ RUN apt-get update && apt-get install -y gcc g++ git ninja-build patchelf python3-pip python3-venv cmake && rm -rf /var/lib/apt/lists/*
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20250127
5
+ # 20260108
6
6
  FROM fedora:41
7
- RUN dnf -y update && dnf -y install python3-devel python3-pip gcc ninja-build git patchelf && dnf clean all
7
+ RUN dnf -y update && dnf -y install python3-devel python3-pip gcc gcc-c++ ninja-build git patchelf cmake && dnf clean all
@@ -0,0 +1,7 @@
1
+ # SPDX-FileCopyrightText: 2022 The meson-python developers
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ # 20260108
6
+ FROM continuumio/miniconda3
7
+ RUN apt-get update && apt-get install -y gcc g++ ninja-build git patchelf cmake && rm -rf /var/lib/apt/lists/*
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20240817
5
+ # 20260108
6
6
  FROM opensuse/leap:latest
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
7
+ RUN zypper --non-interactive install python311 python311-pip python311-devel gcc gcc-c++ ninja git patchelf cmake && zypper clean --all && ln -sf python3.11 /usr/bin/python3
@@ -11,6 +11,22 @@
11
11
  Changelog
12
12
  +++++++++
13
13
 
14
+ 0.19.0
15
+ ======
16
+
17
+ - Drop Python 3.8 support.
18
+ - Development-related extras were moved to dependency groups.
19
+ - Add support for targeting the iOS platform.
20
+ - The ``strip`` binary is now included in synthesized cross files.
21
+ - Documentation improvements: add more examples for specific use cases, and a
22
+ contributing guide.
23
+ - Use trusted publishing with digital attestations to upload release artifacts
24
+ to PyPI.
25
+
26
+ Andrew Annex, Daniele Nicolodi, Michał Górny, Ralf Gommers, Russell
27
+ Keith-Magee, Tobias Diez --- 14-01-2026.
28
+
29
+
14
30
  0.18.0
15
31
  ======
16
32
 
@@ -19,25 +19,25 @@ the ``-C`` short command line option:
19
19
 
20
20
  .. tab-set::
21
21
 
22
- .. tab-item:: pypa/build
23
- :sync: key_pypa_build
22
+ .. tab-item:: pypa/build
23
+ :sync: key_pypa_build
24
24
 
25
- .. code-block:: console
25
+ .. code-block:: console
26
26
 
27
- $ python -m build \
27
+ $ python -m build --wheel \
28
28
  -Csetup-args="-Doption=true" \
29
29
  -Csetup-args="-Dvalue=1" \
30
30
  -Ccompile-args="-j6"
31
31
 
32
- .. tab-item:: pip
33
- :sync: key_pip
34
-
35
- .. code-block:: console
32
+ .. tab-item:: pip
33
+ :sync: key_pip
36
34
 
37
- $ python -m pip wheel . \
38
- --config-settings=setup-args="-Doption=disable" \
39
- --config-settings=compile-args="-j6"
35
+ .. code-block:: console
40
36
 
37
+ $ python -m pip wheel . \
38
+ -Csetup-args="-Doption=true" \
39
+ -Csetup-args="-Dvalue=1" \
40
+ -Ccompile-args="-j6"
41
41
 
42
42
  Refer to the `build`_ and `pip`_ documentation for details. This
43
43
  example uses the ``python -m pip wheel`` command to build a Python wheel
@@ -46,15 +46,16 @@ immediately install it, replace ``wheel`` with ``install``. See the
46
46
  :ref:`how-to-guides-meson-args` guide for more examples.
47
47
 
48
48
 
49
- .. admonition:: Passing multiple settings
49
+ .. admonition:: Older pip versions
50
50
  :class: caution
51
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.
52
+ Please note that prior to version 23.1 ``pip`` did not support the ``-C``
53
+ short command line switch for the ``--config-settings`` options and did not
54
+ offer a way to set a build config setting to a list of strings: later
55
+ values for the same key passed to ``--config-settings`` override earlier
56
+ ones, effectively limiting the number of options that can be passed to each
57
+ command invoked in the build process to one. This limitation has been
58
+ lifted in ``pip`` release 23.1.
58
59
 
59
60
 
60
61
  .. _build: https://pypa-build.readthedocs.io/en/stable/
@@ -67,25 +68,25 @@ Using a persistent build directory
67
68
  By default, ``meson-python`` uses a temporary build directory which is
68
69
  deleted when the build terminates. A persistent build directory allows
69
70
  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:
71
+ build artifacts. The :option:`build-dir` config setting can be used to
72
+ build in a user-specified build directory which will not be deleted.
73
+ For example:
73
74
 
74
75
  .. tab-set::
75
76
 
76
77
  .. tab-item:: pypa/build
77
- :sync: key_pypa_build
78
+ :sync: key_pypa_build
78
79
 
79
- .. code-block:: console
80
+ .. code-block:: console
80
81
 
81
- $ python -m build -Cbuild-dir=build
82
+ $ python -m build --wheel -Cbuild-dir=build
82
83
 
83
84
  .. tab-item:: pip
84
- :sync: key_pip
85
+ :sync: key_pip
85
86
 
86
- .. code-block:: console
87
+ .. code-block:: console
87
88
 
88
- $ python -m pip install . -Cbuild-dir=build
89
+ $ python -m pip install . -Cbuild-dir=build
89
90
 
90
91
  After running this command, the ``build`` directory will contain all
91
92
  the build artifacts and support files created by ``meson``, ``ninja``
@@ -114,7 +115,7 @@ shows the detailed Meson setup log when the build fails:
114
115
  - name: Build the package
115
116
  run: python -m build --wheel -Cbuild-dir=build
116
117
  - name: Show meson-log.txt
117
- if: failure()
118
+ if: ${{ failure() }}
118
119
  run: cat build/meson-logs/meson-log.txt
119
120
 
120
121
  Replacing ``failure()`` with ``always()`` in the code above will
@@ -0,0 +1,86 @@
1
+ .. SPDX-FileCopyrightText: 2021 The meson-python developers
2
+ ..
3
+ .. SPDX-License-Identifier: MIT
4
+
5
+ .. _how-to-guides-contributing:
6
+
7
+ Contributing
8
+ ============
9
+
10
+ Thank you for your interest in contributing. ``meson-python`` development is
11
+ hosted on GitHub_ and uses the ubiquitous pull-request based workflow. The
12
+ usual Python development practices apply. Python source code should adhere to
13
+ the `PEP 8`_ code style with a maximum line length of 127 characters. Single
14
+ quotes are used as string delimiters. Python code uses type annotations
15
+ verified via Mypy_ and is kept clean linting it with Ruff_.
16
+
17
+ ``meson-python`` focus is producing Python wheels containing extension modules
18
+ and thus running its test suite requires C and C++ compilers, and CMake. The
19
+ ``patchelf`` utility is required on Linux. These are best installed via the
20
+ system package manager.
21
+
22
+ The documentation is written in reST format and the published version is
23
+ generated with Sphinx_.
24
+
25
+ To work on the code:
26
+
27
+ 1. Fork the repository.
28
+
29
+ 2. Set up the development environment by creating a virtual environment and
30
+ installing the necessary dependencies for development and testing:
31
+
32
+ .. code-block:: console
33
+
34
+ $ uv venv
35
+ $ source .venv/bin/activate
36
+ $ uv pip install meson ninja pyproject-metadata
37
+ $ uv pip install --no-build-isolation --editable .
38
+ $ uv pip install --group test
39
+ $ uv pip install ruff mypy
40
+
41
+ 3. Create your branch from the ``main`` branch.
42
+
43
+ 4. Hack away. Add tests as necessary.
44
+
45
+ 5. Run the linter, the type checker, and the test suite:
46
+
47
+ .. code-block:: console
48
+
49
+ $ ruff check
50
+ $ mypy
51
+ $ pytest
52
+
53
+ 6. Organize your changes in logical commits with clear, concise, and well
54
+ formatted commit messages describing the motivation for the change. Commit
55
+ messages should be organized in a subject line, describing the commit
56
+ briefly, followed by a blank line, and more test if needed. Lines should be
57
+ word wrapped at 72 characters.
58
+
59
+ The subject line should start with a capitalized acronym indicating the
60
+ nature of the commit, followed by a colon. Used acronyms include: "BUG" for
61
+ bug fixes, "ENH" for new features and other enhancements, "TST" for
62
+ addition or modification of tests, "MAINT" for maintenance commits,
63
+ typically refactoring, typo or code style fixes, "DOC" for documentation,
64
+ "CI" for changes to the continuous integration setup.
65
+
66
+ To work on the documentation:
67
+
68
+ 1. Install the required tools:
69
+
70
+ .. code-block:: console
71
+
72
+ $ uv pip install --group docs
73
+
74
+ 2. Generate and inspect the HTML documentation:
75
+
76
+ .. code-block:: console
77
+
78
+ $ python -m sphinx docs html
79
+ $ open html/index.html
80
+
81
+
82
+ .. _GitHub: https://github.com/meson/meson-python/
83
+ .. _Mypy: https://mypy.readthedocs.io
84
+ .. _PEP 8: https://www.python.org/dev/peps/pep-0008/
85
+ .. _Ruff: https://docs.astral.sh/ruff/
86
+ .. _Sphinx: https://www.sphinx-doc.org