meson-python 0.13.0__tar.gz → 0.13.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. {meson_python-0.13.0 → meson_python-0.13.1}/CHANGELOG.rst +19 -0
  2. {meson_python-0.13.0 → meson_python-0.13.1}/PKG-INFO +1 -1
  3. {meson_python-0.13.0 → meson_python-0.13.1}/docs/changelog.rst +19 -0
  4. {meson_python-0.13.0 → meson_python-0.13.1}/docs/security.rst +4 -0
  5. {meson_python-0.13.0 → meson_python-0.13.1}/meson.build +1 -1
  6. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/__init__.py +16 -14
  7. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_util.py +6 -9
  8. {meson_python-0.13.0 → meson_python-0.13.1}/tests/conftest.py +5 -23
  9. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_editable.py +3 -3
  10. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_project.py +4 -3
  11. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_wheel.py +9 -0
  12. {meson_python-0.13.0 → meson_python-0.13.1}/.cirrus.yml +0 -0
  13. {meson_python-0.13.0 → meson_python-0.13.1}/.github/workflows/docs.yml +0 -0
  14. {meson_python-0.13.0 → meson_python-0.13.1}/.github/workflows/tests.yml +0 -0
  15. {meson_python-0.13.0 → meson_python-0.13.1}/.gitignore +0 -0
  16. {meson_python-0.13.0 → meson_python-0.13.1}/.pre-commit-config.yaml +0 -0
  17. {meson_python-0.13.0 → meson_python-0.13.1}/.readthedocs.yml +0 -0
  18. {meson_python-0.13.0 → meson_python-0.13.1}/LICENSE +0 -0
  19. {meson_python-0.13.0 → meson_python-0.13.1}/LICENSES/MIT.txt +0 -0
  20. {meson_python-0.13.0 → meson_python-0.13.1}/README.rst +0 -0
  21. {meson_python-0.13.0 → meson_python-0.13.1}/ci/alpine-3.docker +0 -0
  22. {meson_python-0.13.0 → meson_python-0.13.1}/ci/archlinux.docker +0 -0
  23. {meson_python-0.13.0 → meson_python-0.13.1}/ci/debian-11.docker +0 -0
  24. {meson_python-0.13.0 → meson_python-0.13.1}/ci/debian-unstable.docker +0 -0
  25. {meson_python-0.13.0 → meson_python-0.13.1}/ci/fedora-37.docker +0 -0
  26. {meson_python-0.13.0 → meson_python-0.13.1}/ci/manylinux.docker +0 -0
  27. {meson_python-0.13.0 → meson_python-0.13.1}/ci/miniconda.docker +0 -0
  28. {meson_python-0.13.0 → meson_python-0.13.1}/ci/opensuse-15.docker +0 -0
  29. {meson_python-0.13.0 → meson_python-0.13.1}/codecov.yml +0 -0
  30. {meson_python-0.13.0 → meson_python-0.13.1}/docs/conf.py +0 -0
  31. {meson_python-0.13.0 → meson_python-0.13.1}/docs/contributing/commit-format.rst +0 -0
  32. {meson_python-0.13.0 → meson_python-0.13.1}/docs/contributing/documentation.rst +0 -0
  33. {meson_python-0.13.0 → meson_python-0.13.1}/docs/contributing/getting-started.rst +0 -0
  34. {meson_python-0.13.0 → meson_python-0.13.1}/docs/contributing/release-process.rst +0 -0
  35. {meson_python-0.13.0 → meson_python-0.13.1}/docs/contributing/test-suite.rst +0 -0
  36. {meson_python-0.13.0 → meson_python-0.13.1}/docs/examples/spam/meson.build +0 -0
  37. {meson_python-0.13.0 → meson_python-0.13.1}/docs/examples/spam/pyproject.toml +0 -0
  38. {meson_python-0.13.0 → meson_python-0.13.1}/docs/examples/spam/src/__init__.py +0 -0
  39. {meson_python-0.13.0 → meson_python-0.13.1}/docs/examples/spam/src/spammodule.c +0 -0
  40. {meson_python-0.13.0 → meson_python-0.13.1}/docs/explanations/default-options.rst +0 -0
  41. {meson_python-0.13.0 → meson_python-0.13.1}/docs/explanations/design-old.rst +0 -0
  42. {meson_python-0.13.0 → meson_python-0.13.1}/docs/explanations/design.rst +0 -0
  43. {meson_python-0.13.0 → meson_python-0.13.1}/docs/explanations/editable-installs.rst +0 -0
  44. {meson_python-0.13.0 → meson_python-0.13.1}/docs/explanations/internal-dependencies.rst +0 -0
  45. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/add-dependencies.rst +0 -0
  46. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/build-directory.rst +0 -0
  47. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/config-settings.rst +0 -0
  48. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/editable-installs.rst +0 -0
  49. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/executable-with-internal-dependencies.rst +0 -0
  50. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/first-project.rst +0 -0
  51. {meson_python-0.13.0 → meson_python-0.13.1}/docs/how-to-guides/meson-args.rst +0 -0
  52. {meson_python-0.13.0 → meson_python-0.13.1}/docs/index.rst +0 -0
  53. {meson_python-0.13.0 → meson_python-0.13.1}/docs/projects-using-meson-python.rst +0 -0
  54. {meson_python-0.13.0 → meson_python-0.13.1}/docs/reference/config-settings.rst +0 -0
  55. {meson_python-0.13.0 → meson_python-0.13.1}/docs/reference/environment-variables.rst +0 -0
  56. {meson_python-0.13.0 → meson_python-0.13.1}/docs/reference/limitations.rst +0 -0
  57. {meson_python-0.13.0 → meson_python-0.13.1}/docs/reference/pyproject-settings.rst +0 -0
  58. {meson_python-0.13.0 → meson_python-0.13.1}/docs/reference/quirks.rst +0 -0
  59. {meson_python-0.13.0 → meson_python-0.13.1}/docs/spelling_wordlist.txt +0 -0
  60. {meson_python-0.13.0 → meson_python-0.13.1}/docs/spelling_wordlist.txt.license +0 -0
  61. {meson_python-0.13.0 → meson_python-0.13.1}/docs/static/css/contributors.css +0 -0
  62. {meson_python-0.13.0 → meson_python-0.13.1}/docs/tutorials/data.rst +0 -0
  63. {meson_python-0.13.0 → meson_python-0.13.1}/docs/tutorials/entrypoints.rst +0 -0
  64. {meson_python-0.13.0 → meson_python-0.13.1}/docs/tutorials/executable.rst +0 -0
  65. {meson_python-0.13.0 → meson_python-0.13.1}/docs/tutorials/introduction.rst +0 -0
  66. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_compat.py +0 -0
  67. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_dylib.py +0 -0
  68. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_editable.py +0 -0
  69. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_elf.py +0 -0
  70. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_tags.py +0 -0
  71. {meson_python-0.13.0 → meson_python-0.13.1}/mesonpy/_wheelfile.py +0 -0
  72. {meson_python-0.13.0 → meson_python-0.13.1}/noxfile.py +0 -0
  73. {meson_python-0.13.0 → meson_python-0.13.1}/pyproject.toml +0 -0
  74. {meson_python-0.13.0 → meson_python-0.13.1}/tests/__init__.py +0 -0
  75. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/complex/__init__.py +0 -0
  76. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/complex/more/__init__.py +0 -0
  77. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/complex/namespace/bar.py +0 -0
  78. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/complex/namespace/foo.py +0 -0
  79. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/meson.build +0 -0
  80. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/pyproject.toml +0 -0
  81. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/complex/test.pyx +0 -0
  82. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/configure-data/configure_data.py.in +0 -0
  83. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/configure-data/meson.build +0 -0
  84. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/configure-data/pyproject.toml +0 -0
  85. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/detect-compiler/detect_compiler.c +0 -0
  86. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/detect-compiler/meson.build +0 -0
  87. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/detect-compiler/pyproject.toml +0 -0
  88. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/dist-script/meson.build +0 -0
  89. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/dist-script/pyproject.toml +0 -0
  90. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/dynamic-version/meson.build +0 -0
  91. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/dynamic-version/pyproject.toml +0 -0
  92. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable/example.c +0 -0
  93. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable/meson.build +0 -0
  94. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable/pyproject.toml +0 -0
  95. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable-bit/example-script.py +0 -0
  96. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable-bit/example.c +0 -0
  97. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable-bit/executable_module.py +0 -0
  98. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable-bit/meson.build +0 -0
  99. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/executable-bit/pyproject.toml +0 -0
  100. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/full-metadata/LICENSE +0 -0
  101. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/full-metadata/README.md +0 -0
  102. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/full-metadata/meson.build +0 -0
  103. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/full-metadata/pyproject.toml +0 -0
  104. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/generated-files/example-script.py +0 -0
  105. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/generated-files/example.c +0 -0
  106. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/generated-files/executable_module.py +0 -0
  107. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/generated-files/generate_version.py +0 -0
  108. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/generated-files/meson.build +0 -0
  109. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/generated-files/pyproject.toml +0 -0
  110. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/imports-itself-during-build/meson.build +0 -0
  111. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/imports-itself-during-build/plat.c +0 -0
  112. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/imports-itself-during-build/pure.py +0 -0
  113. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/imports-itself-during-build/pyproject.toml +0 -0
  114. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library/example.c +0 -0
  115. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library/examplelib.c +0 -0
  116. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library/examplelib.h +0 -0
  117. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library/meson.build +0 -0
  118. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library/pyproject.toml +0 -0
  119. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library-pep621/example.c +0 -0
  120. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library-pep621/examplelib.c +0 -0
  121. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library-pep621/meson.build +0 -0
  122. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/library-pep621/pyproject.toml +0 -0
  123. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/license-file/meson.build +0 -0
  124. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/license-file/pyproject.toml +0 -0
  125. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/license-file/something/LICENSE.custom +0 -0
  126. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/link-against-local-lib/examplelib.c +0 -0
  127. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/link-against-local-lib/examplelib.h +0 -0
  128. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/link-against-local-lib/examplemod.c +0 -0
  129. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/link-against-local-lib/meson.build +0 -0
  130. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/link-against-local-lib/pyproject.toml +0 -0
  131. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/module-types/file.py +0 -0
  132. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/module-types/meson.build +0 -0
  133. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/module-types/namespace/data.py +0 -0
  134. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/module-types/native.c +0 -0
  135. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/module-types/package/__init__.py +0 -0
  136. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/module-types/pyproject.toml +0 -0
  137. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/pure/meson.build +0 -0
  138. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/pure/pure.py +0 -0
  139. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/pure/pyproject.toml +0 -0
  140. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-and-platlib/meson.build +0 -0
  141. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-and-platlib/plat.c +0 -0
  142. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-and-platlib/pure.py +0 -0
  143. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-and-platlib/pyproject.toml +0 -0
  144. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-platlib-split/meson.build +0 -0
  145. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-platlib-split/plat.py +0 -0
  146. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-platlib-split/pure.py +0 -0
  147. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/purelib-platlib-split/pyproject.toml +0 -0
  148. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/meson.build +0 -0
  149. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/mypkg/__init__.py +0 -0
  150. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/mypkg/cy_extmod.pyx +0 -0
  151. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/mypkg/extmod.c +0 -0
  152. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/mypkg/meson.build +0 -0
  153. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/mypkg/submod/__init__.py +0 -0
  154. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/mypkg/submod/unknown_filetype.npq +0 -0
  155. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/pyproject.toml +0 -0
  156. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/scipy-like/tools/generate_config.py +0 -0
  157. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/simple/__init__.py +0 -0
  158. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/simple/data.txt +0 -0
  159. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/simple/data.txt.license +0 -0
  160. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/simple/meson.build +0 -0
  161. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/simple/pyproject.toml +0 -0
  162. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/simple/test.py +0 -0
  163. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/subdirs/meson.build +0 -0
  164. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/subdirs/pyproject.toml +0 -0
  165. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/subdirs/subdirs/__init__.py +0 -0
  166. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/subdirs/subdirs/a/__init__.py +0 -0
  167. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/subdirs/subdirs/a/b/c.py +0 -0
  168. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/subdirs/subdirs/b/c.py +0 -0
  169. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/unknown-user-args-meson-args/pyproject.toml +0 -0
  170. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/unknown-user-args-top-level/pyproject.toml +0 -0
  171. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/unsupported-dynamic/meson.build +0 -0
  172. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/unsupported-dynamic/pyproject.toml +0 -0
  173. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/unsupported-python-version/meson.build +0 -0
  174. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/unsupported-python-version/pyproject.toml +0 -0
  175. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/user-args/meson.build +0 -0
  176. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/user-args/pure.py +0 -0
  177. {meson_python-0.13.0 → meson_python-0.13.1}/tests/packages/user-args/pyproject.toml +0 -0
  178. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_consistency.py +0 -0
  179. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_examples.py +0 -0
  180. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_metadata.py +0 -0
  181. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_output.py +0 -0
  182. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_pep517.py +0 -0
  183. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_pep518.py +0 -0
  184. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_sdist.py +0 -0
  185. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_tags.py +0 -0
  186. {meson_python-0.13.0 → meson_python-0.13.1}/tests/test_wheelfile.py +0 -0
@@ -12,6 +12,25 @@ Change-log
12
12
  ++++++++++
13
13
 
14
14
 
15
+ 0.13.1
16
+ ======
17
+
18
+ - Fix regression in cross-compilation via ``$ARCHFLAGS`` on macOS where the
19
+ cross file was written in the build directory before it was created,
20
+ resulting in an error.
21
+ - Do not require setting ``$_PYTHON_HOST_PLATFORM`` when cross-compiling via
22
+ ``$ARCHFLAGS`` on macOS.
23
+ - Add the ``--quiet`` option when invoking ``meson install``. The installation
24
+ paths are a detail of the ``meson-python`` implementation and are generally
25
+ not interesting for the user.
26
+ - Fix terminal logging when overriding the current line when listing files
27
+ added to the wheel.
28
+ - Improve the error message emitted when a package split between the
29
+ ``purelib`` and ``platlib`` wheel locations is detected.
30
+
31
+ Daniele Nicolodi, Ralf Gommers --- 28-04-2023.
32
+
33
+
15
34
  0.13.0
16
35
  ======
17
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meson-python
3
- Version: 0.13.0
3
+ Version: 0.13.1
4
4
  Summary: Meson Python build backend (PEP 517)
5
5
  Keywords: meson build backend pep517 package
6
6
  Home-page: https://github.com/mesonbuild/meson-python
@@ -12,6 +12,25 @@ Change-log
12
12
  ++++++++++
13
13
 
14
14
 
15
+ 0.13.1
16
+ ======
17
+
18
+ - Fix regression in cross-compilation via ``$ARCHFLAGS`` on macOS where the
19
+ cross file was written in the build directory before it was created,
20
+ resulting in an error.
21
+ - Do not require setting ``$_PYTHON_HOST_PLATFORM`` when cross-compiling via
22
+ ``$ARCHFLAGS`` on macOS.
23
+ - Add the ``--quiet`` option when invoking ``meson install``. The installation
24
+ paths are a detail of the ``meson-python`` implementation and are generally
25
+ not interesting for the user.
26
+ - Fix terminal logging when overriding the current line when listing files
27
+ added to the wheel.
28
+ - Improve the error message emitted when a package split between the
29
+ ``purelib`` and ``platlib`` wheel locations is detected.
30
+
31
+ Daniele Nicolodi, Ralf Gommers --- 28-04-2023.
32
+
33
+
15
34
  0.13.0
16
35
  ======
17
36
 
@@ -14,6 +14,7 @@ repository_, or the source distributions on the `meson-python PyPI page`_, both
14
14
  are PGP-signed with one of the following keys:
15
15
 
16
16
  - |3DCE51D60930EBA47858BA4146F633CBB0EB4BF2|_ *(Filipe Laíns)*
17
+ - |52BDC33FD1FBAB569D47FFA923D9E5499A08BDC5|_ *(Ralf Gommers)*
17
18
 
18
19
 
19
20
  .. admonition:: Fetching artifact signatures from PyPI_
@@ -30,3 +31,6 @@ are PGP-signed with one of the following keys:
30
31
 
31
32
  .. |3DCE51D60930EBA47858BA4146F633CBB0EB4BF2| replace:: ``3DCE51D60930EBA47858BA4146F633CBB0EB4BF2``
32
33
  .. _3DCE51D60930EBA47858BA4146F633CBB0EB4BF2: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3dce51d60930eba47858ba4146f633cbb0eb4bf2
34
+
35
+ .. |52BDC33FD1FBAB569D47FFA923D9E5499A08BDC5| replace:: ``52BDC33FD1FBAB569D47FFA923D9E5499A08BDC5``
36
+ .. _52BDC33FD1FBAB569D47FFA923D9E5499A08BDC5: https://github.com/rgommers.gpg
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- project('meson-python', version: '0.13.0')
5
+ project('meson-python', version: '0.13.1')
6
6
 
7
7
  py_mod = import('python')
8
8
  py = py_mod.find_installation()
@@ -66,7 +66,7 @@ if typing.TYPE_CHECKING: # pragma: no cover
66
66
  T = TypeVar('T')
67
67
 
68
68
 
69
- __version__ = '0.13.0'
69
+ __version__ = '0.13.1'
70
70
 
71
71
 
72
72
  # XXX: Once Python 3.8 is our minimum supported version, get rid of
@@ -170,7 +170,8 @@ def _map_to_wheel(sources: Dict[str, Dict[str, Any]]) -> DefaultDict[str, List[T
170
170
  that = os.fspath(other / next(d for d, s in wheel_files[other] if d.parts[0] == destination.parts[1]))
171
171
  raise BuildError(
172
172
  f'The {package} package is split between {path} and {other}: '
173
- f'{this!r} and {that!r}, a "pure: false" argument may be missing in meson.build')
173
+ f'{this!r} and {that!r}, a "pure: false" argument may be missing in meson.build. '
174
+ f'It is recommended to set it in "import(\'python\').find_installation()"')
174
175
 
175
176
  wheel_files[path].append((pathlib.Path(*destination.parts[1:]), src))
176
177
  return wheel_files
@@ -499,7 +500,6 @@ class _WheelBuilder():
499
500
  with mesonpy._wheelfile.WheelFile(wheel_file, 'w') as whl:
500
501
  self._wheel_write_metadata(whl)
501
502
 
502
- print('{light_blue}{bold}Copying files to wheel...{reset}'.format(**_STYLES))
503
503
  with mesonpy._util.cli_counter(
504
504
  len(list(itertools.chain.from_iterable(self._wheel_files.values()))),
505
505
  ) as counter:
@@ -648,25 +648,28 @@ class Project():
648
648
  self._meson_native_file = self._build_dir / 'meson-python-native-file.ini'
649
649
  self._meson_cross_file = self._build_dir / 'meson-python-cross-file.ini'
650
650
  self._meson_args: MesonArgs = collections.defaultdict(list)
651
- self._env = os.environ.copy()
652
651
 
653
652
  _check_meson_version()
654
653
 
655
654
  self._ninja = _env_ninja_command()
656
655
  if self._ninja is None:
657
656
  raise ConfigError(f'Could not find ninja version {_NINJA_REQUIRED_VERSION} or newer.')
658
- self._env.setdefault('NINJA', self._ninja)
657
+ os.environ.setdefault('NINJA', self._ninja)
658
+
659
+ # make sure the build dir exists
660
+ self._build_dir.mkdir(exist_ok=True, parents=True)
661
+ self._install_dir.mkdir(exist_ok=True, parents=True)
659
662
 
660
663
  # setuptools-like ARCHFLAGS environment variable support
661
664
  if sysconfig.get_platform().startswith('macosx-'):
662
- archflags = self._env.get('ARCHFLAGS', '').strip()
665
+ archflags = os.environ.get('ARCHFLAGS', '').strip()
663
666
  if archflags:
664
667
  arch, *other = filter(None, (x.strip() for x in archflags.split('-arch')))
665
668
  if other:
666
669
  raise ConfigError(f'Multi-architecture builds are not supported but $ARCHFLAGS={archflags!r}')
667
670
  macver, _, nativearch = platform.mac_ver()
668
671
  if arch != nativearch:
669
- x = self._env.setdefault('_PYTHON_HOST_PLATFORM', f'macosx-{macver}-{arch}')
672
+ x = os.environ.setdefault('_PYTHON_HOST_PLATFORM', f'macosx-{macver}-{arch}')
670
673
  if not x.endswith(arch):
671
674
  raise ConfigError(f'$ARCHFLAGS={archflags!r} and $_PYTHON_HOST_PLATFORM={x!r} do not agree')
672
675
  family = 'aarch64' if arch == 'arm64' else arch
@@ -697,10 +700,6 @@ class Project():
697
700
  for key, value in meson_args.items():
698
701
  self._meson_args[key].extend(value)
699
702
 
700
- # make sure the build dir exists
701
- self._build_dir.mkdir(exist_ok=True, parents=True)
702
- self._install_dir.mkdir(exist_ok=True, parents=True)
703
-
704
703
  # write the native file
705
704
  native_file_data = textwrap.dedent(f'''
706
705
  [binaries]
@@ -733,8 +732,11 @@ class Project():
733
732
 
734
733
  def _run(self, cmd: Sequence[str]) -> None:
735
734
  """Invoke a subprocess."""
736
- print('{cyan}{bold}+ {}{reset}'.format(' '.join(cmd), **_STYLES))
737
- r = subprocess.run(cmd, env=self._env, cwd=self._build_dir)
735
+ # Flush the line to ensure that the log line with the executed
736
+ # command line appears before the command output. Without it,
737
+ # the lines appear in the wrong order in pip output.
738
+ print('{cyan}{bold}+ {}{reset}'.format(' '.join(cmd), **_STYLES), flush=True)
739
+ r = subprocess.run(cmd, cwd=self._build_dir)
738
740
  if r.returncode != 0:
739
741
  raise SystemExit(r.returncode)
740
742
 
@@ -813,7 +815,7 @@ class Project():
813
815
  def install(self) -> None:
814
816
  """Install the Meson project."""
815
817
  destdir = os.fspath(self._install_dir)
816
- self._run(['meson', 'install', '--no-rebuild', '--destdir', destdir, *self._meson_args['install']])
818
+ self._run(['meson', 'install', '--quiet', '--no-rebuild', '--destdir', destdir, *self._meson_args['install']])
817
819
 
818
820
  @classmethod
819
821
  @contextlib.contextmanager
@@ -8,6 +8,7 @@ from __future__ import annotations
8
8
 
9
9
  import contextlib
10
10
  import gzip
11
+ import itertools
11
12
  import os
12
13
  import sys
13
14
  import tarfile
@@ -73,22 +74,18 @@ def create_targz(path: Path) -> Iterator[Tuple[tarfile.TarFile, Optional[int]]]:
73
74
  class CLICounter:
74
75
  def __init__(self, total: int) -> None:
75
76
  self._total = total - 1
76
- self._count = -1
77
- self._current_line = ''
77
+ self._count = itertools.count()
78
78
 
79
79
  def update(self, description: str) -> None:
80
- self._count += 1
81
- new_line = f'[{self._count}/{self._total}] {description}'
80
+ line = f'[{next(self._count)}/{self._total}] {description}'
82
81
  if sys.stdout.isatty():
83
- pad_size = abs(len(self._current_line) - len(new_line))
84
- print(' ' + new_line + ' ' * pad_size, end='\r', flush=True)
82
+ print('\r', line, sep='', end='\33[0K', flush=True)
85
83
  else:
86
- print(new_line)
87
- self._current_line = new_line
84
+ print(line)
88
85
 
89
86
  def finish(self) -> None:
90
87
  if sys.stdout.isatty():
91
- print(f'\r{self._current_line}')
88
+ print()
92
89
 
93
90
 
94
91
  @contextlib.contextmanager
@@ -2,7 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- import atexit
6
5
  import contextlib
7
6
  import os
8
7
  import os.path
@@ -75,24 +74,6 @@ def tmp_path_session(tmp_path_factory):
75
74
  ))
76
75
 
77
76
 
78
- @pytest.fixture
79
- def tmp_build_path():
80
- # Similar to the tmp_path fixture but ensures that the temporary
81
- # directory is on the same Windows drive as the test packages
82
- # source directory. This is required to work around a Cython bug
83
- # exposed in our test packages. See https://github.com/cython/cython/pull/5279
84
- tmpdir = tempfile.mkdtemp(prefix='.build-', dir=package_dir)
85
- # The clenup is implemented with an atexit hook rather than with a
86
- # regular context manager because we import extension modules from
87
- # the build directory in the tests and these need to stay around
88
- # till the Python interpreter is being teared down. Orherwise
89
- # PermissionError removing the folder are obtained on Windows, but
90
- # more importantly, the removal succeeds on Cygwin but memory
91
- # mapping errors are obtained when Python tries to fork().
92
- atexit.register(shutil.rmtree, tmpdir, ignore_errors=True)
93
- yield pathlib.Path(tmpdir)
94
-
95
-
96
77
  class VEnv(EnvBuilder):
97
78
  def __init__(self, env_dir):
98
79
  super().__init__(with_pip=True)
@@ -175,8 +156,8 @@ def disable_pip_version_check():
175
156
 
176
157
  @pytest.fixture(scope='session')
177
158
  def pep518_wheelhouse(tmp_path_factory):
178
- wheelhouse = tmp_path_factory.mktemp('wheelhouse')
179
- meson_python = str(package_dir.parent.parent)
159
+ wheelhouse = os.fspath(tmp_path_factory.mktemp('wheelhouse'))
160
+ meson_python = os.fspath(package_dir.parent.parent)
180
161
  # Populate wheelhouse with wheel for the following packages and
181
162
  # their dependencies. Wheels are downloaded from PyPI or built
182
163
  # from the source distribution as needed. Sources or wheels in
@@ -184,8 +165,9 @@ def pep518_wheelhouse(tmp_path_factory):
184
165
  packages = [
185
166
  meson_python,
186
167
  ]
187
- subprocess.run([sys.executable, '-m', 'pip', 'wheel', '--wheel-dir', str(wheelhouse), *packages], check=True)
188
- return str(wheelhouse)
168
+ cmd = [sys.executable, '-m', 'pip', 'wheel', '--no-build-isolation', '--wheel-dir', wheelhouse, *packages]
169
+ subprocess.run(cmd, check=True)
170
+ return wheelhouse
189
171
 
190
172
 
191
173
  @pytest.fixture
@@ -58,10 +58,10 @@ def test_collect(package_complex):
58
58
  assert tree['complex']['more']['__init__.py'] == os.path.join(root, 'complex', 'more', '__init__.py')
59
59
 
60
60
 
61
- def test_mesonpy_meta_finder(package_complex, tmp_build_path):
61
+ def test_mesonpy_meta_finder(package_complex, tmp_path):
62
62
  # build a package in a temporary directory
63
- mesonpy.Project(package_complex, tmp_build_path)
64
- build_path = tmp_build_path / 'build'
63
+ mesonpy.Project(package_complex, tmp_path)
64
+ build_path = tmp_path / 'build'
65
65
 
66
66
  # point the meta finder to the build directory
67
67
  finder = _editable.MesonpyMetaFinder({'complex'}, os.fspath(build_path), ['ninja'])
@@ -19,7 +19,7 @@ import pytest
19
19
 
20
20
  import mesonpy
21
21
 
22
- from .conftest import chdir, package_dir
22
+ from .conftest import chdir, in_git_repo_context, package_dir
23
23
 
24
24
 
25
25
  @pytest.mark.parametrize(
@@ -92,8 +92,9 @@ def test_user_args(package_user_args, tmp_path, monkeypatch):
92
92
  'install-args': ('cli-install',),
93
93
  }
94
94
 
95
- mesonpy.build_sdist(tmp_path, config_settings)
96
- mesonpy.build_wheel(tmp_path, config_settings)
95
+ with in_git_repo_context():
96
+ mesonpy.build_sdist(tmp_path, config_settings)
97
+ mesonpy.build_wheel(tmp_path, config_settings)
97
98
 
98
99
  # check that the right commands are executed, namely that 'meson
99
100
  # compile' is used on Windows rather than a 'ninja' direct
@@ -240,3 +240,12 @@ def test_purelib_platlib_split(package_purelib_platlib_split, tmp_path):
240
240
  with pytest.raises(mesonpy.BuildError, match='The purelib-platlib-split package is split'):
241
241
  with mesonpy.Project.with_temp_working_dir() as project:
242
242
  project.wheel(tmp_path)
243
+
244
+
245
+ @pytest.mark.skipif(platform.system() != 'Darwin', reason='macOS specific test')
246
+ @pytest.mark.parametrize(('arch'), ['x86_64', 'arm64'])
247
+ def test_archflags_envvar(package_purelib_and_platlib, monkeypatch, tmp_path, arch):
248
+ monkeypatch.setenv('ARCHFLAGS', f'-arch {arch}')
249
+ filename = mesonpy.build_wheel(tmp_path)
250
+ name = wheel.wheelfile.WheelFile(tmp_path / filename).parsed_filename
251
+ assert name.group('plat').endswith(arch)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes