setuptools-rust 1.8.0__tar.gz → 1.9.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 (123) hide show
  1. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/.bumpversion.cfg +1 -1
  2. setuptools-rust-1.9.0/.github/dependabot.yml +70 -0
  3. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/.github/workflows/ci.yml +14 -14
  4. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/.github/workflows/python-publish.yml +1 -1
  5. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/.gitignore +2 -0
  6. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/.readthedocs.yaml +5 -0
  7. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/CHANGELOG.md +8 -0
  8. {setuptools-rust-1.8.0/setuptools_rust.egg-info → setuptools-rust-1.9.0}/PKG-INFO +4 -5
  9. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/README.md +3 -4
  10. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/building_wheels.md +25 -8
  11. setuptools-rust-1.9.0/docs/requirements.txt +4 -0
  12. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/Cargo.lock +18 -11
  13. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/Cargo.toml +2 -5
  14. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/pyproject.toml +0 -1
  15. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/Cargo.toml +1 -1
  16. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/Cargo.lock +32 -18
  17. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/Cargo.toml +3 -6
  18. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/setup.py +0 -1
  19. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/Cargo.lock +18 -10
  20. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/Cargo.toml +2 -2
  21. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/Cargo.lock +18 -10
  22. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/Cargo.toml +2 -2
  23. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/Cargo.lock +18 -10
  24. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/Cargo.toml +2 -2
  25. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/setup.py +1 -1
  26. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/pyproject.toml +1 -1
  27. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/build.py +2 -1
  28. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/extension.py +8 -16
  29. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/version.py +1 -1
  30. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0/setuptools_rust.egg-info}/PKG-INFO +4 -5
  31. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust.egg-info/SOURCES.txt +0 -1
  32. setuptools-rust-1.8.0/.github/dependabot.yml +0 -27
  33. setuptools-rust-1.8.0/docs/requirements.txt +0 -4
  34. setuptools-rust-1.8.0/examples/hello-world/build.rs +0 -3
  35. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/.gitattributes +0 -0
  36. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/LICENSE +0 -0
  37. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/MANIFEST.in +0 -0
  38. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/Makefile +0 -0
  39. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/README.md +0 -0
  40. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/conf.py +0 -0
  41. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/index.md +0 -0
  42. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/make.bat +0 -0
  43. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/reference.rst +0 -0
  44. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/docs/setuppy_tutorial.md +0 -0
  45. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/emscripten/.gitignore +0 -0
  46. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/emscripten/_sysconfigdata__emscripten_wasm32-emscripten.py +0 -0
  47. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/emscripten/emcc_wrapper.py +0 -0
  48. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/emscripten/pyo3_config.ini +0 -0
  49. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/emscripten/runner.js +0 -0
  50. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/MANIFEST.in +0 -0
  51. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/noxfile.py +0 -0
  52. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/python/hello_world/__init__.py +0 -0
  53. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/python/hello_world/sum_cli.py +0 -0
  54. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/rust/lib.rs +0 -0
  55. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/rust/print_hello.rs +0 -0
  56. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world/tests/test_hello_world.py +0 -0
  57. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/Cargo.lock +0 -0
  58. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/MANIFEST.in +0 -0
  59. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/noxfile.py +0 -0
  60. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/pyproject.toml +0 -0
  61. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/pytest.ini +0 -0
  62. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/python/hello_world/__init__.py +0 -0
  63. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-script/rust/main.rs +0 -0
  64. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/MANIFEST.in +0 -0
  65. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/noxfile.py +0 -0
  66. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/pyproject.toml +0 -0
  67. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/pytest.ini +0 -0
  68. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/python/hello_world/__init__.py +0 -0
  69. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/hello-world-setuppy/rust/lib.rs +0 -0
  70. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/.github/workflows/upload.yml +0 -0
  71. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/MANIFEST.in +0 -0
  72. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/README.md +0 -0
  73. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/build-wheels.sh +0 -0
  74. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/noxfile.py +0 -0
  75. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/pyproject.toml +0 -0
  76. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/pytest.ini +0 -0
  77. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/python/html_py_ever/__init__.py +0 -0
  78. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/requirements.txt +0 -0
  79. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/rust/lib.rs +0 -0
  80. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/rust/main.rs +0 -0
  81. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/conftest.py +0 -0
  82. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/empty.html +0 -0
  83. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/monty-python.html +0 -0
  84. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/python.html +0 -0
  85. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/run_all.py +0 -0
  86. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/rust.html +0 -0
  87. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/small.html +0 -0
  88. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/test_parsing.py +0 -0
  89. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/html-py-ever/tests/test_selector.py +0 -0
  90. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/.cargo/config.toml +0 -0
  91. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/Cross.toml +0 -0
  92. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/Dockerfile +0 -0
  93. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/MANIFEST.in +0 -0
  94. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/noxfile.py +0 -0
  95. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/pyproject.toml +0 -0
  96. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/python/namespace_package/python/__init__.py +0 -0
  97. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/rust/lib.rs +0 -0
  98. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/namespace_package/tests/test_namespace_package.py +0 -0
  99. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/MANIFEST.in +0 -0
  100. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/cffi_module.py +0 -0
  101. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/noxfile.py +0 -0
  102. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/pyproject.toml +0 -0
  103. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/pytest.ini +0 -0
  104. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/python/rust_with_cffi/__init__.py +0 -0
  105. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/rust/lib.rs +0 -0
  106. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/examples/rust_with_cffi/tests/test_rust_with_cffi.py +0 -0
  107. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/mypy.ini +0 -0
  108. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/noxfile.py +0 -0
  109. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setup.cfg +0 -0
  110. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/__init__.py +0 -0
  111. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/_utils.py +0 -0
  112. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/clean.py +0 -0
  113. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/command.py +0 -0
  114. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/py.typed +0 -0
  115. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/rustc_info.py +0 -0
  116. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust/setuptools_ext.py +0 -0
  117. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust.egg-info/dependency_links.txt +0 -0
  118. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust.egg-info/entry_points.txt +0 -0
  119. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust.egg-info/requires.txt +0 -0
  120. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust.egg-info/top_level.txt +0 -0
  121. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/setuptools_rust.egg-info/zip-safe +0 -0
  122. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/tests/test_build.py +0 -0
  123. {setuptools-rust-1.8.0 → setuptools-rust-1.9.0}/tests/test_extension.py +0 -0
@@ -1,7 +1,7 @@
1
1
  [bumpversion]
2
2
  commit = True
3
3
  tag = False
4
- current_version = 1.8.0
4
+ current_version = 1.9.0
5
5
  message = release: {new_version}
6
6
 
7
7
  [bumpversion:file:pyproject.toml]
@@ -0,0 +1,70 @@
1
+ version: 2
2
+ updates:
3
+
4
+ - package-ecosystem: "cargo"
5
+ directory: "examples/hello-world"
6
+ schedule:
7
+ interval: "monthly"
8
+ groups:
9
+ deps:
10
+ patterns:
11
+ - "*"
12
+
13
+ - package-ecosystem: "cargo"
14
+ directory: "examples/hello-world-script"
15
+ schedule:
16
+ interval: "monthly"
17
+ groups:
18
+ deps:
19
+ patterns:
20
+ - "*"
21
+
22
+ - package-ecosystem: "cargo"
23
+ directory: "examples/hello-world-setuppy"
24
+ schedule:
25
+ interval: "monthly"
26
+ groups:
27
+ deps:
28
+ patterns:
29
+ - "*"
30
+
31
+ - package-ecosystem: "cargo"
32
+ directory: "examples/html-py-ever"
33
+ schedule:
34
+ interval: "monthly"
35
+ groups:
36
+ deps:
37
+ patterns:
38
+ - "*"
39
+
40
+ - package-ecosystem: "cargo"
41
+ directory: "examples/namespace_package"
42
+ schedule:
43
+ interval: "monthly"
44
+ groups:
45
+ deps:
46
+ patterns:
47
+ - "*"
48
+
49
+ - package-ecosystem: "cargo"
50
+ directory: "examples/rust_with_cffi"
51
+ schedule:
52
+ interval: "monthly"
53
+ groups:
54
+ deps:
55
+ patterns:
56
+ - "*"
57
+
58
+ - package-ecosystem: "pip"
59
+ directory: "docs"
60
+ schedule:
61
+ interval: "monthly"
62
+ groups:
63
+ docs-dependencies:
64
+ patterns:
65
+ - "*"
66
+
67
+ - package-ecosystem: "github-actions"
68
+ directory: "/"
69
+ schedule:
70
+ interval: "monthly"
@@ -16,7 +16,7 @@ jobs:
16
16
  - uses: actions/checkout@v4
17
17
 
18
18
  - name: Set up Python ${{ matrix.python-version }}
19
- uses: actions/setup-python@v4
19
+ uses: actions/setup-python@v5
20
20
  with:
21
21
  python-version: "3.x"
22
22
 
@@ -30,7 +30,7 @@ jobs:
30
30
  - uses: actions/checkout@v4
31
31
 
32
32
  - name: Set up Python ${{ matrix.python-version }}
33
- uses: actions/setup-python@v4
33
+ uses: actions/setup-python@v5
34
34
  with:
35
35
  python-version: "3.x"
36
36
 
@@ -44,7 +44,7 @@ jobs:
44
44
  - uses: actions/checkout@v4
45
45
 
46
46
  - name: Set up Python ${{ matrix.python-version }}
47
- uses: actions/setup-python@v4
47
+ uses: actions/setup-python@v5
48
48
  with:
49
49
  python-version: "3.x"
50
50
 
@@ -77,7 +77,7 @@ jobs:
77
77
  - uses: actions/checkout@v4
78
78
 
79
79
  - name: Set up Python ${{ matrix.python-version }}
80
- uses: actions/setup-python@v4
80
+ uses: actions/setup-python@v5
81
81
  with:
82
82
  python-version: ${{ matrix.python-version }}
83
83
  architecture: ${{ matrix.platform.python-architecture }}
@@ -137,7 +137,7 @@ jobs:
137
137
  steps:
138
138
  - uses: actions/checkout@v4
139
139
  - name: Setup python
140
- uses: actions/setup-python@v4
140
+ uses: actions/setup-python@v5
141
141
  with:
142
142
  python-version: 3.9
143
143
 
@@ -168,7 +168,7 @@ jobs:
168
168
  # Now we switch to a differnet Python version and ensure we can install
169
169
  # the wheel we just built.
170
170
  - name: Setup python
171
- uses: actions/setup-python@v4
171
+ uses: actions/setup-python@v5
172
172
  with:
173
173
  python-version: "3.10"
174
174
 
@@ -212,7 +212,7 @@ jobs:
212
212
  steps:
213
213
  - uses: actions/checkout@v4
214
214
  - name: Setup python
215
- uses: actions/setup-python@v4
215
+ uses: actions/setup-python@v5
216
216
  with:
217
217
  python-version: 3.8
218
218
  - uses: dtolnay/rust-toolchain@stable
@@ -237,7 +237,7 @@ jobs:
237
237
  python -m build --no-isolation
238
238
  ls -la dist/
239
239
  unzip -l dist/*.whl # debug all files inside wheel file
240
- - uses: uraimo/run-on-arch-action@v2.5.1
240
+ - uses: uraimo/run-on-arch-action@v2.7.1
241
241
  name: Install built wheel
242
242
  with:
243
243
  arch: aarch64
@@ -258,7 +258,7 @@ jobs:
258
258
  steps:
259
259
  - uses: actions/checkout@v4
260
260
  - name: Setup python
261
- uses: actions/setup-python@v4
261
+ uses: actions/setup-python@v5
262
262
  with:
263
263
  python-version: 3.8
264
264
  - uses: dtolnay/rust-toolchain@stable
@@ -285,7 +285,7 @@ jobs:
285
285
  python -m build --no-isolation
286
286
  ls -la dist/
287
287
  unzip -l dist/*.whl # debug all files inside wheel file
288
- - uses: uraimo/run-on-arch-action@v2.5.1
288
+ - uses: uraimo/run-on-arch-action@v2.7.1
289
289
  name: Install built wheel
290
290
  with:
291
291
  arch: aarch64
@@ -308,7 +308,7 @@ jobs:
308
308
  - uses: dtolnay/rust-toolchain@stable
309
309
  with:
310
310
  targets: aarch64-apple-darwin
311
- - uses: pypa/cibuildwheel@v2.16.2
311
+ - uses: pypa/cibuildwheel@v2.16.5
312
312
  env:
313
313
  CIBW_BUILD: cp39-*
314
314
  CIBW_BEFORE_BUILD: >
@@ -388,16 +388,16 @@ jobs:
388
388
  with:
389
389
  components: rust-src
390
390
  targets: wasm32-unknown-emscripten
391
- - uses: mymindstorm/setup-emsdk@v12
391
+ - uses: mymindstorm/setup-emsdk@v14
392
392
  with:
393
393
  version: ${{env.EMSCRIPTEN_VERSION}}
394
394
  actions-cache-folder: emsdk-cache
395
- - uses: actions/setup-python@v4
395
+ - uses: actions/setup-python@v5
396
396
  id: setup-python
397
397
  with:
398
398
  python-version: ${{env.PYTHON_VERSION}}
399
399
  - run: pip install nox
400
- - uses: actions/cache@v3
400
+ - uses: actions/cache@v4
401
401
  with:
402
402
  path: |
403
403
  tests/pyodide
@@ -19,7 +19,7 @@ jobs:
19
19
  # Fetch all history so that setuptools_scm works correctly
20
20
  fetch-depth: 0
21
21
  - name: Set up Python
22
- uses: actions/setup-python@v4
22
+ uses: actions/setup-python@v5
23
23
  with:
24
24
  python-version: '3.x'
25
25
  - name: Install dependencies
@@ -11,3 +11,5 @@ target
11
11
  *.egg-info
12
12
  pyo3
13
13
  docs/_build
14
+
15
+ Cargo.lock
@@ -1,5 +1,10 @@
1
1
  version: 2
2
2
 
3
+ build:
4
+ os: ubuntu-22.04
5
+ tools:
6
+ python: "3.11"
7
+
3
8
  python:
4
9
  install:
5
10
  - requirements: docs/requirements.txt
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.0 (2024-02-24)
4
+ ### Changed
5
+ - Deprecate `py_limited_api` option to `RustExtension` in favour of always using `"auto"` to configure this from `bdist_wheel`. [#410](https://github.com/PyO3/setuptools-rust/pull/410)
6
+
7
+ ## 1.8.1 (2023-10-30)
8
+ ### Fixed
9
+ - Fix regression in `install_extension` crashing since 1.8.0. [#380](https://github.com/PyO3/setuptools-rust/pull/380)
10
+
3
11
  ## 1.8.0 (2023-10-26)
4
12
  ### Packaging
5
13
  - Drop support for Python 3.7. [#357](https://github.com/PyO3/setuptools-rust/pull/357)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: setuptools-rust
3
- Version: 1.8.0
3
+ Version: 1.9.0
4
4
  Summary: Setuptools Rust extension plugin
5
5
  Author-email: Nikolay Kim <fafhrd91@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/PyO3/setuptools-rust
@@ -85,7 +85,6 @@ target = "hello_world._lib" # The last part of the name (e.g. "_lib") has to ma
85
85
  # but you can add a prefix to nest it inside of a Python package.
86
86
  path = "Cargo.toml" # Default value, can be omitted
87
87
  binding = "PyO3" # Default value, can be omitted
88
- py-limited-api = "auto" # Default value, can be omitted
89
88
  ```
90
89
 
91
90
  Each extension module should map directly into the corresponding `[lib]` table on the
@@ -96,10 +95,10 @@ Each extension module should map directly into the corresponding `[lib]` table o
96
95
  [package]
97
96
  name = "hello-world"
98
97
  version = "0.1.0"
99
- edition = "2018"
98
+ edition = "2021"
100
99
 
101
100
  [dependencies]
102
- pyo3 = { version = "0.19.2", features = ["extension-module"] }
101
+ pyo3 = "0.20.3"
103
102
 
104
103
  [lib]
105
104
  name = "_lib" # private module to be nested into Python package,
@@ -172,7 +171,7 @@ python
172
171
  - `Cargo.toml` allow only one `[lib]` table per file.
173
172
  If you require multiple extension modules you will need to write multiple `Cargo.toml` files.
174
173
  Alternatively you can create a single private Rust top-level module that exposes
175
- multiple submodules (using [PyO3's submodules](https://pyo3.rs/v0.19.2/module#python-submodules)),
174
+ multiple submodules (using [PyO3's submodules](https://pyo3.rs/v0.20.0/module#python-submodules)),
176
175
  which may also reduce the size of the build artifacts.
177
176
  You can always keep your extension modules private and wrap them in pure Python
178
177
  to have fine control over the public API.
@@ -56,7 +56,6 @@ target = "hello_world._lib" # The last part of the name (e.g. "_lib") has to ma
56
56
  # but you can add a prefix to nest it inside of a Python package.
57
57
  path = "Cargo.toml" # Default value, can be omitted
58
58
  binding = "PyO3" # Default value, can be omitted
59
- py-limited-api = "auto" # Default value, can be omitted
60
59
  ```
61
60
 
62
61
  Each extension module should map directly into the corresponding `[lib]` table on the
@@ -67,10 +66,10 @@ Each extension module should map directly into the corresponding `[lib]` table o
67
66
  [package]
68
67
  name = "hello-world"
69
68
  version = "0.1.0"
70
- edition = "2018"
69
+ edition = "2021"
71
70
 
72
71
  [dependencies]
73
- pyo3 = { version = "0.19.2", features = ["extension-module"] }
72
+ pyo3 = "0.20.3"
74
73
 
75
74
  [lib]
76
75
  name = "_lib" # private module to be nested into Python package,
@@ -143,7 +142,7 @@ python
143
142
  - `Cargo.toml` allow only one `[lib]` table per file.
144
143
  If you require multiple extension modules you will need to write multiple `Cargo.toml` files.
145
144
  Alternatively you can create a single private Rust top-level module that exposes
146
- multiple submodules (using [PyO3's submodules](https://pyo3.rs/v0.19.2/module#python-submodules)),
145
+ multiple submodules (using [PyO3's submodules](https://pyo3.rs/v0.20.0/module#python-submodules)),
147
146
  which may also reduce the size of the build artifacts.
148
147
  You can always keep your extension modules private and wrap them in pure Python
149
148
  to have fine control over the public API.
@@ -4,19 +4,36 @@ Because `setuptools-rust` is an extension to `setuptools`, the standard [`python
4
4
  (or [`pip wheel --no-deps . --wheel-dir dist`](https://pip.pypa.io/en/stable/cli/pip_wheel/)) can be used to build distributable wheels.
5
5
  These wheels can be uploaded to PyPI using standard tools such as [twine](https://github.com/pypa/twine).
6
6
 
7
- `setuptools-rust` supports building for the [PEP 384](https://www.python.org/dev/peps/pep-0384/) "stable" (aka "limited") API when the `py_limited_api` option is set on the `[bdist_wheel]` section of `setup.cfg`.
8
- If using PyO3 bindings for `RustExtension`, then the correct [`pyo3/abi3`](https://pyo3.rs/v0.14.5/features.html#abi3) sub-feature is automatically enabled.
9
- In this way, abi3 wheels can be uploaded to make package distributors' roles easier, and package users installing from source with `pip install .` can use optimizations specific to their Python version.
7
+ A key choice to make is whether to upload [PEP 384](https://www.python.org/dev/peps/pep-0384/) "stable" (aka "limited") API wheels which support multiple Python versions in a single binary, or to build individual artifacts for each Python version. There is a longer discussion of this [in the PyO3 docs](https://pyo3.rs/latest/building_and_distribution#py_limited_apiabi3).
10
8
 
11
- This chapter of the documentation explains two possible ways to build wheels for multiple Python versions below.
9
+ This chapter covers each of these options below.
12
10
 
13
- ## Using `cibuildwheel`
11
+ ## Building for ABI3
12
+
13
+ `setuptools-rust` will automatically configure for the limited API when this is set in the `[bdist_wheel]` configuration section of [`setup.cfg`](https://setuptools.pypa.io/en/latest/deprecated/distutils/configfile.html#writing-the-setup-configuration-file):
14
+
15
+ ```ini
16
+ [bdist_wheel]
17
+ py_limited_api=cp37 # replace with desired minimum Python version
18
+ ```
19
+
20
+ If using a `pyproject.toml`-based build, then save the above in a file and use the `DIST_EXTRA_CONFIG` environment variable to instruct `setuptools` to pick up this extra configuration. (`DIST_EXTRA_CONFIG` is documented [on this page](https://setuptools.pypa.io/en/latest/deprecated/distutils/configfile.html#writing-the-setup-configuration-file) of the `setuptools` docs.)
21
+
22
+ It is also possible to pass this setting via the command line, e.g.
23
+
24
+ ```
25
+ python -m build --config-settings=--build-option=--py-limited-api=cp37
26
+ ```
27
+
28
+ ## Building for multiple Python versions
29
+
30
+ ### Using `cibuildwheel`
14
31
 
15
32
  [`cibuildwheel`][cibuildwheel] is a tool to build wheels for multiple platforms using Github Actions.
16
33
 
17
34
  The [`rtoml` package does this, for example](https://github.com/samuelcolvin/rtoml/blob/143ee0907bba616cbcd5cc58eefe9000fcc2b5f2/.github/workflows/ci.yml#L99-L195).
18
35
 
19
- ## Building manually
36
+ ### Building manually
20
37
 
21
38
  Place a script called `build-wheels.sh` with the following contents in your project root (next to the `setup.py` file):
22
39
 
@@ -27,7 +44,7 @@ Place a script called `build-wheels.sh` with the following contents in your proj
27
44
 
28
45
  This script can be used to produce wheels for multiple Python versions.
29
46
 
30
- ### Binary wheels on linux
47
+ #### Binary wheels on linux
31
48
 
32
49
  To build binary wheels on linux, you need to use the [manylinux docker container](https://github.com/pypa/manylinux). You will run the `build-wheels.sh` from above inside that container.
33
50
 
@@ -54,7 +71,7 @@ hello_rust-0.1.0-cp39-cp39-linux_x86_64.whl hello_rust-0.1.0-cp39-cp39
54
71
 
55
72
  It is possible to use any of the `manylinux` docker images: `manylinux1`, `manylinux2010` or `manylinux2014`. (Just replace `manylinux2014` in the above instructions with the alternative version you wish to use.)
56
73
 
57
- ### Binary wheels on macOS
74
+ #### Binary wheels on macOS
58
75
 
59
76
  For building wheels on macOS it is sufficient to use one of the default `python -m build` or `pip wheel --no-deps . --wheel-dir dist` commands.
60
77
 
@@ -0,0 +1,4 @@
1
+ Sphinx==7.2.6
2
+ sphinx-autodoc-typehints==1.25.3
3
+ furo==2024.1.29
4
+ myst-parser==2.0.0
@@ -31,7 +31,6 @@ name = "hello-world"
31
31
  version = "0.1.0"
32
32
  dependencies = [
33
33
  "pyo3",
34
- "pyo3-build-config",
35
34
  ]
36
35
 
37
36
  [[package]]
@@ -94,6 +93,12 @@ dependencies = [
94
93
  "windows-targets",
95
94
  ]
96
95
 
96
+ [[package]]
97
+ name = "portable-atomic"
98
+ version = "1.6.0"
99
+ source = "registry+https://github.com/rust-lang/crates.io-index"
100
+ checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
101
+
97
102
  [[package]]
98
103
  name = "proc-macro2"
99
104
  version = "1.0.66"
@@ -105,15 +110,16 @@ dependencies = [
105
110
 
106
111
  [[package]]
107
112
  name = "pyo3"
108
- version = "0.20.0"
113
+ version = "0.20.3"
109
114
  source = "registry+https://github.com/rust-lang/crates.io-index"
110
- checksum = "04e8453b658fe480c3e70c8ed4e3d3ec33eb74988bd186561b0cc66b85c3bc4b"
115
+ checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
111
116
  dependencies = [
112
117
  "cfg-if",
113
118
  "indoc",
114
119
  "libc",
115
120
  "memoffset",
116
121
  "parking_lot",
122
+ "portable-atomic",
117
123
  "pyo3-build-config",
118
124
  "pyo3-ffi",
119
125
  "pyo3-macros",
@@ -122,9 +128,9 @@ dependencies = [
122
128
 
123
129
  [[package]]
124
130
  name = "pyo3-build-config"
125
- version = "0.20.0"
131
+ version = "0.20.3"
126
132
  source = "registry+https://github.com/rust-lang/crates.io-index"
127
- checksum = "a96fe70b176a89cff78f2fa7b3c930081e163d5379b4dcdf993e3ae29ca662e5"
133
+ checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
128
134
  dependencies = [
129
135
  "once_cell",
130
136
  "target-lexicon",
@@ -132,9 +138,9 @@ dependencies = [
132
138
 
133
139
  [[package]]
134
140
  name = "pyo3-ffi"
135
- version = "0.20.0"
141
+ version = "0.20.3"
136
142
  source = "registry+https://github.com/rust-lang/crates.io-index"
137
- checksum = "214929900fd25e6604661ed9cf349727c8920d47deff196c4e28165a6ef2a96b"
143
+ checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
138
144
  dependencies = [
139
145
  "libc",
140
146
  "pyo3-build-config",
@@ -142,9 +148,9 @@ dependencies = [
142
148
 
143
149
  [[package]]
144
150
  name = "pyo3-macros"
145
- version = "0.20.0"
151
+ version = "0.20.3"
146
152
  source = "registry+https://github.com/rust-lang/crates.io-index"
147
- checksum = "dac53072f717aa1bfa4db832b39de8c875b7c7af4f4a6fe93cdbf9264cf8383b"
153
+ checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
148
154
  dependencies = [
149
155
  "proc-macro2",
150
156
  "pyo3-macros-backend",
@@ -154,12 +160,13 @@ dependencies = [
154
160
 
155
161
  [[package]]
156
162
  name = "pyo3-macros-backend"
157
- version = "0.20.0"
163
+ version = "0.20.3"
158
164
  source = "registry+https://github.com/rust-lang/crates.io-index"
159
- checksum = "7774b5a8282bd4f25f803b1f0d945120be959a36c72e08e7cd031c792fdfd424"
165
+ checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
160
166
  dependencies = [
161
167
  "heck",
162
168
  "proc-macro2",
169
+ "pyo3-build-config",
163
170
  "quote",
164
171
  "syn",
165
172
  ]
@@ -1,12 +1,12 @@
1
1
  [package]
2
2
  name = "hello-world"
3
3
  version = "0.1.0"
4
- edition = "2018"
4
+ edition = "2021"
5
5
 
6
6
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7
7
 
8
8
  [dependencies]
9
- pyo3 = { version = "0.20.0", features = ["extension-module"] }
9
+ pyo3 = "0.20.3"
10
10
 
11
11
  [profile.release-lto]
12
12
  inherits = "release"
@@ -21,6 +21,3 @@ path = "rust/lib.rs"
21
21
  [[bin]]
22
22
  name = "print-hello"
23
23
  path = "rust/print_hello.rs"
24
-
25
- [build-dependencies]
26
- pyo3-build-config = "0.20.0"
@@ -19,7 +19,6 @@ find = { where = ["python"] }
19
19
  # Private Rust extension module to be nested into Python package
20
20
  target = "hello_world._lib" # The last part of the name (e.g. "_lib") has to match lib.name in Cargo.toml,
21
21
  # but you can add a prefix to nest it inside of a Python package.
22
- py-limited-api = "auto" # Default value, can be omitted
23
22
  binding = "PyO3" # Default value, can be omitted
24
23
  # See reference for RustExtension in https://setuptools-rust.readthedocs.io/en/latest/reference.html
25
24
 
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "hello-world-script"
3
3
  version = "0.1.0"
4
- edition = "2018"
4
+ edition = "2021"
5
5
 
6
6
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7
7
 
@@ -21,18 +21,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
21
21
  checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
22
22
 
23
23
  [[package]]
24
- name = "hello-world"
24
+ name = "heck"
25
+ version = "0.4.1"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
28
+
29
+ [[package]]
30
+ name = "hello-world-setuppy"
25
31
  version = "0.1.0"
26
32
  dependencies = [
27
33
  "pyo3",
28
- "pyo3-build-config",
29
34
  ]
30
35
 
31
36
  [[package]]
32
37
  name = "indoc"
33
- version = "1.0.9"
38
+ version = "2.0.4"
34
39
  source = "registry+https://github.com/rust-lang/crates.io-index"
35
- checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
40
+ checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
36
41
 
37
42
  [[package]]
38
43
  name = "libc"
@@ -88,6 +93,12 @@ dependencies = [
88
93
  "windows-targets",
89
94
  ]
90
95
 
96
+ [[package]]
97
+ name = "portable-atomic"
98
+ version = "1.6.0"
99
+ source = "registry+https://github.com/rust-lang/crates.io-index"
100
+ checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
101
+
91
102
  [[package]]
92
103
  name = "proc-macro2"
93
104
  version = "1.0.66"
@@ -99,15 +110,16 @@ dependencies = [
99
110
 
100
111
  [[package]]
101
112
  name = "pyo3"
102
- version = "0.19.2"
113
+ version = "0.20.3"
103
114
  source = "registry+https://github.com/rust-lang/crates.io-index"
104
- checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
115
+ checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
105
116
  dependencies = [
106
117
  "cfg-if",
107
118
  "indoc",
108
119
  "libc",
109
120
  "memoffset",
110
121
  "parking_lot",
122
+ "portable-atomic",
111
123
  "pyo3-build-config",
112
124
  "pyo3-ffi",
113
125
  "pyo3-macros",
@@ -116,9 +128,9 @@ dependencies = [
116
128
 
117
129
  [[package]]
118
130
  name = "pyo3-build-config"
119
- version = "0.19.2"
131
+ version = "0.20.3"
120
132
  source = "registry+https://github.com/rust-lang/crates.io-index"
121
- checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5"
133
+ checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
122
134
  dependencies = [
123
135
  "once_cell",
124
136
  "target-lexicon",
@@ -126,9 +138,9 @@ dependencies = [
126
138
 
127
139
  [[package]]
128
140
  name = "pyo3-ffi"
129
- version = "0.19.2"
141
+ version = "0.20.3"
130
142
  source = "registry+https://github.com/rust-lang/crates.io-index"
131
- checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9"
143
+ checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
132
144
  dependencies = [
133
145
  "libc",
134
146
  "pyo3-build-config",
@@ -136,9 +148,9 @@ dependencies = [
136
148
 
137
149
  [[package]]
138
150
  name = "pyo3-macros"
139
- version = "0.19.2"
151
+ version = "0.20.3"
140
152
  source = "registry+https://github.com/rust-lang/crates.io-index"
141
- checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1"
153
+ checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
142
154
  dependencies = [
143
155
  "proc-macro2",
144
156
  "pyo3-macros-backend",
@@ -148,11 +160,13 @@ dependencies = [
148
160
 
149
161
  [[package]]
150
162
  name = "pyo3-macros-backend"
151
- version = "0.19.2"
163
+ version = "0.20.3"
152
164
  source = "registry+https://github.com/rust-lang/crates.io-index"
153
- checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536"
165
+ checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
154
166
  dependencies = [
167
+ "heck",
155
168
  "proc-macro2",
169
+ "pyo3-build-config",
156
170
  "quote",
157
171
  "syn",
158
172
  ]
@@ -189,9 +203,9 @@ checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
189
203
 
190
204
  [[package]]
191
205
  name = "syn"
192
- version = "1.0.109"
206
+ version = "2.0.32"
193
207
  source = "registry+https://github.com/rust-lang/crates.io-index"
194
- checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
208
+ checksum = "239814284fd6f1a4ffe4ca893952cdd93c224b6a1571c9a9eadd670295c0c9e2"
195
209
  dependencies = [
196
210
  "proc-macro2",
197
211
  "quote",
@@ -212,9 +226,9 @@ checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
212
226
 
213
227
  [[package]]
214
228
  name = "unindent"
215
- version = "0.1.11"
229
+ version = "0.2.3"
216
230
  source = "registry+https://github.com/rust-lang/crates.io-index"
217
- checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
231
+ checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
218
232
 
219
233
  [[package]]
220
234
  name = "windows-targets"
@@ -1,13 +1,10 @@
1
1
  [package]
2
- name = "hello-world"
2
+ name = "hello-world-setuppy"
3
3
  version = "0.1.0"
4
- edition = "2018"
4
+ edition = "2021"
5
5
 
6
6
  [dependencies]
7
- pyo3 = { version = "0.19.2", features = ["extension-module"] }
8
-
9
- [build-dependencies]
10
- pyo3-build-config = "0.19.2"
7
+ pyo3 = "0.20.3"
11
8
 
12
9
  [lib]
13
10
  # See https://github.com/PyO3/pyo3 for details
@@ -14,7 +14,6 @@ setup(
14
14
  # in Cargo.toml and the function name in the `.rs` file,
15
15
  # but you can add a prefix to nest it inside of a Python package.
16
16
  path="Cargo.toml", # Default value, can be omitted
17
- py_limited_api="auto", # Default value, can be omitted
18
17
  binding=Binding.PyO3, # Default value, can be omitted
19
18
  )
20
19
  ],