maturin 0.10.4

Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) (for the cli, not for the crate).

## 0.10.4 - 2021-04-28

 * Interpreter search now uses python 3.6 to 3.12 in [#495]https://github.com/PyO3/maturin/pull/495
 * Consider requires-python when searching for interpreters in [#495]https://github.com/PyO3/maturin/pull/495
 * Support Rust extension as a submodule in mixed Python/Rust projects in [#489]https://github.com/PyO3/maturin/pull/489

## 0.10.3 - 2021-04-13

 * The `upload` command is now implemented, it is mostly similar to `twine upload`. [#484]https://github.com/PyO3/maturin/pull/484
 * Interpreter search now uses python 3.6 to 3.12 
 * Add basic support for OpenBSD in [#496]https://github.com/PyO3/maturin/pull/496
 * Fix the PowerPC platform by messense in [#503]https://github.com/PyO3/maturin/pull/503

## 0.10.2 - 2021-04-03

 * Fix `--target` being silently ignored

## 0.10.1 - 2021-04-03

 * Fix a regression in 0.10.0 that would incorrectly assume we're building for musl instead of gnu by messense in [#487]https://github.com/PyO3/maturin/pull/487
 * Basic s390x support

## 0.10.0 - 2021-04-02

 * Change manylinux default version based on target arch by messense in [#424]https://github.com/PyO3/maturin/pull/424
 * Support local path dependencies in source distribution (i.e. you can now package a workspace into an sdist)
 * Set a more reasonable LC_ID_DYLIB entry on macOS by messense [#433]https://github.com/PyO3/maturin/pull/433
 * Add `--skip-existing` option to publish by messense [#444]https://github.com/PyO3/maturin/pull/444
 * maturn develop install dependencies automatically by messense [#443]https://github.com/PyO3/maturin/pull/443
 * Load credential from pypirc using repository name instead of package name by messense [#445]https://github.com/PyO3/maturin/pull/445
 * Add `manylinux_2_24` support in [#451]https://github.com/PyO3/maturin/pull/451
 * Improve error message when auditwheel failed to find versioned offending symbols in [#452]https://github.com/PyO3/maturin/pull/452
 * Add auditwheel test to CI in [#455]https://github.com/PyO3/maturin/pull/455
 * Fix sdist transitive path dependencies.
 * auditwheel choose higher priority tag when possible in [#456]https://github.com/PyO3/maturin/pull/456, dropped `auditwheel` Cargo feature.
 * develop now writes an [INSTALLER]https://packaging.python.org/specifications/recording-installed-packages/#the-installer-file file
 * develop removes an old .dist-info directory if it exists before installing the new one
 * Fix wheels for PyPy on windows containing extension modules with incorrect names. [#482]https://github.com/PyO3/maturin/pull/482

## 0.9.4 - 2021-02-18

* Fix building a bin with musl

## 0.9.3

* CI failure

## 0.9.2 - 2021-02-17

 * Escape version in wheel metadata by messense in [#420]https://github.com/PyO3/maturin/pull/420
 * Set executable bit on shared library by messense in [#421]https://github.com/PyO3/maturin/pull/421
 * Rename `classifier` to `classifiers` for pypi compatibility. The old `classifier` is still available and now also works with pypi
 * Fix building for musl by automatically setting `-C target-feature=-crt-static`

## 0.9.1 - 2021-01-13

 * Error when the `abi3` feature is selected but no minimum version
 * Support building universal2 wheels (x86 and aarch64 in a single file) by messense in [#403]https://github.com/PyO3/maturin/pull/403
 * Recognize `PYO3_CROSS_LIB_DIR` for cross compiling with abi3 targeting windows.
 * `package.metadata.maturin.classifier` is renamed to `classifiers` by kngwyu in [#416]https://github.com/PyO3/maturin/pull/416
 * Added more instructions to building complex manylinux setups

## 0.9.0 - 2021-01-10

 * Added support for building abi3 wheels with pyo3 0.13.1
 * Python 3.9 is supported (it should have worked before, but it is now tested on ci)
 * There are 64-bit and aarch64 binary builds for linux and 64-bit builds for windows, mac and freebsd-12-1
 * The auditwheel options have changed to `--manylinux=[off|2010|2014]` with manylinux2010 as default, and optionally `--skip-auditwheel`.
 * Removed Python 3.5 since it is unsupported
 * The default and minimum manylinux version is now manylinux2010
 * restructured text (rst) readmes are now supported, by clbarnes in [#360]https://github.com/PyO3/maturin/pull/360
 * Allow python 3 interpreter with debuginfo use maturin by inevity in [#370]https://github.com/PyO3/maturin/pull/370
 * pypirc is checked for credentials by houqp in [#374]https://github.com/PyO3/maturin/pull/374
 * Added support for PowerPC by mzpqnxow and programmerjake in [#366]https://github.com/PyO3/maturin/pull/366
 * `project-url` is now a toml dictionary instead of a toml list to conform to the standard
 * No more retry loop when the password was wrong
 * When bootstrapping, also search for `cargo.exe` if `cargo` was not found

## 0.8.3 - 2020-08-17

### Added

 * tox is now supported due to a bugfix in the latest version of tox
 * `[tool.maturin]` now supports `sdist-include = ["path/**/*"]` to
include arbitrary files in source distributions ([#296]https://github.com/PyO3/maturin/pull/296).
 * Add support for PyO3 `0.12`'s `PYO3_PYTHON` environment variable. [#331]https://github.com/PyO3/maturin/pull/331

### Fixed

 * Fix incorrectly returning full path (not basename) from PEP 517 `build_sdist` hook. This fixes tox support from maturin's side
 * Packages installed with `maturin develop` are now visible to pip and can be uninstalled with pip

## 0.8.2 - 2020-06-29

### Added

 * Python 3.8 was added to PATH in the docker image by oconnor663 in [#302]https://github.com/PyO3/maturin/pull/302

## 0.8.1 - 2020-04-30

### Added

 * cffi is installed if it's missing and python is running inside a virtualenv.

## 0.8.0 - 2020-04-03

### Added

 * There is now a binary wheel for aarch64
 * Warn if there are local dependencies

### Fixed

 * Omit author_email if `@` is not found in authors by evandrocoan in [#290]https://github.com/PyO3/maturin/pull/290

## 0.7.9 - 2020-03-06

### Fixed

 * This release includes binary wheels for mac os

## 0.7.8 - 2020-03-06

### Added

 * Added support from arm, specifically arm7l, aarch64 by ijl in [#273]https://github.com/PyO3/maturin/pull/273
 * Added support for manylinux2014 by ijl in [#273]https://github.com/PyO3/maturin/pull/273

### Fixed

 * Remove python 2 from tags by ijl in [#254]https://github.com/PyO3/maturin/pull/254
 * 32-bit wheels didn't work on linux. This has been fixed by dae in [#250]https://github.com/PyO3/maturin/pull/250
 * The path of the RECORD file on windows used a backward slash instead of a forward slash

## 0.7.7 - 2019-11-12

### Added

 * The setup.py installer for bootstrapping maturin now checks for cargo instead of failing with a complex error message.
 * Upload errors now show the filesize

### Changed

* maturin's metadata now lists a requirement of python3.5 or later to install.

## [0.7.6] - 2019-09-28

### Changed

 * Only `--features`, `--no-default-features` and `--all-features` in `--cargo-extra-args` are passed to `cargo metadata` when determining the bindings, fixing problems in the previous release with arguments supported by `cargo build` but by `cargo metadata`.

## [0.7.5] - 2019-09-24

### Fixed

 * Fix clippy error to fix publishing from ci

## [0.7.4] - 2019-09-22

### Fixed

 * Fix tests

## [0.7.3] - 2019-09-22

### Fixed

 * Fix building when the bindings crate is behind a feature flag

## [0.7.3] - 2019-09-22

## Removed

 * The manylinux docker container doesn't contain musl anymore. If you're targeting musl, there's no need to use manylinux.

## [0.7.2] - 2019-09-05

### Added

 * Allow cross compilation with cffi and a python interpreter with the host target

### Fixed

 * Renamed a folder to maturin so PEP 517 backend works again.

## [0.7.1] - 2019-08-31

### Added

 * `maturin build --interpreter`/`maturin publish --interpreter` builds only a source distribution.

## [0.7.0] - 2019-08-30

With this release, the name of this project changes from _pyo3-pack_ to _maturin_.

### Added

 * Mixed rust/python layout
 * Added PEP 517 support
 * Added a `maturin sdist` command as workaround for [pypa/pip#6041]https://github.com/pypa/pip/issues/6041
 * Support settings all applicable fields from the python core metadata specification in Cargo.toml
 * Support for FreeBSD by kxepal [#173]https://github.com/PyO3/maturin/pull/173

## [0.6.1]

### Fixed

 * Downgraded to structopt 0.2.16 to avoid the yanked 0.2.17

## [0.6.0]

### Added

 * Basic pypy support by ijl [#105]https://github.com/PyO3/maturin/pull/105

### Removed

 * Python 2 support
 * The custom progress bar was removed and cargo's output is shown instead

## [0.5.0]

### Added

 * Support for conda environments on windows by paddyhoran [#52]https://github.com/PyO3/maturin/pull/52
 * maturin will generate a header for cffi crates using cbinding, which means you don't need a `build.rs` anymore. The option to provide your own header file using a `build.rs` still exists.
 * The [konstin2/maturin]https://cloud.docker.com/u/konstin2/repository/docker/konstin2/maturin docker image makes it easy to build fully manylinux compliant wheels. See the readme for usage details.
 * Support for manylinux2010 by ijl [#70]https://github.com/PyO3/maturin/pull/70
 * The `--manxlinux=[1|1-unchecked|2010|2010-unchecked|off]` option allows to build for manylinux1 and manylinux2010, both with audithweel (`1` or `2010`) and without (`1-unchecked` or `2010-unchecked`), but also for the native linux tag with `off`.

### Changed

 * The `--skip-auditwheel` flag has been deprecated in favor of `--manxlinux=[1|1-unchecked|2010|2010-unchecked|off]`.
 * Switched to rustls. This means the upload feature can be used from the docker container and builds of maturin itself are manylinux compliant when compiled with the musl target.

## [0.4.2] - 2018-12-15

Fixup release because the appveyor failed to release artifacts for windows for 0.4.1.

## [0.4.1] - 2018-12-15

### Added

 * You can now specify [trove classifiers]https://pypi.org/classifiers/ in your Cargo.toml with `package.metadata.maturin.classifier`. Implemented by ijl in [#48]https://github.com/PyO3/maturin/pull/48. Example:
 ```toml
  [package.metadata.maturin]
  classifier = ["Programming Language :: Python"]
  ```

## [0.4.0] - 2018-11-20

### Changed

 * publish defaults to release and strip, unless `--debug` or `--no-strip` are given.

### Added

 * New ci script based on hyperfine which also builds debian packages.

## [0.3.10] - 2018-11-16

### Fixed

 * Fix rust-cpython detection and compilation

## [0.3.9]

### Changed

 * Update reqwest to 0.9.4 which has [seanmonstar/reqwest#374]https://github.com/seanmonstar/reqwest/issues/374 fixed

## [0.3.8]

### Fixed

 * Pin reqwest to 0.9.2 to work around [seanmonstar/reqwest#374]https://github.com/seanmonstar/reqwest/issues/374

## [0.3.7]

### Fixed

 * Added cargo lock to project [#9]https://github.com/PyO3/maturin/issues/9

## [0.3.6]

With deflate and the strip options, the wheels get about 25x smaller:

wheel | baseline | deflate | strip + deflate
-|-|-|-
get_fourtytwo-2.0.1-cp36-cp36m-manylinux1_x86_64.whl | 2,8M | 771K | 102K
hello_world-0.1.0-py2.py3-none-manylinux1_x86_64.whl | 3,9M | 1,1M | 180K
points-0.1.0-py2.py3-none-manylinux1_x86_64.whl | 2,8M | 752K | 85K

### Added

 * `--strip` by ijl [#7]https://github.com/PyO3/maturin/pull/7

### Changed

 * Renamed `--bindings-crate` to `--bindings`
 * Use deflate compression for zips by ijl [#6]https://github.com/PyO3/maturin/pull/6

### Fixed

 * `--target` is now actually used for the wheel compatibility tag

## [0.3.5] - 2018-09-20

### Changed

 * Upgraded to reqwest 0.9

### Fixed

 * "Broken Pipe" with musl builds (through the reqwest upgrade)

## [0.3.4] - 2018-09-18

### Added

 * A `--target` option which behaves like cargo option of the same name

### Changed

 * Musl and auditwheel compliance: Using the new `musl` feature combined with the musl target, you can build completely static binaries. The `password-storage`, which enables keyring integration, is now disabled by default. The Pypi packages are now statically linked with musl so that they are audtiwheel compliant.
 * Replaced `--debug` with `--release`. All builds are now debug by default

## [0.3.3] - 2018-09-17

### Added

 * Builds for i686 linux and mac
 * Builds for maturin as wheel

## Fixed

 * Usage with stable
 * Wrong tags in WHEEL file on non-linux platforms
 * Uploading on windows

## [0.3.1] - 2017-09-14

### Fixed

 * Windows compilation

## [0.3.0] - 2017-09-14

### Added

 * Packaging binaries
 * [Published on pypi]https://pypi.org/project/maturin/. You can now `pip install maturin`
 * A Dockerfile based on manylinux1

### Fixed

 * Travis ci setup builds all types of wheels for linux and mac
 * `--no-default-features --features auditwheel` creates a manylinux compliant binary for maturin

### Changed

 * Replaced elfkit with goblin

## [0.2.0] - 2018-09-03

### Added

 * Cffi support
 * A `develop` subcommand
 * A tox example

### Changed

 * Show a progress bar for cargo's compile progress

## 0.1.0 - 2018-08-22

 * Initial Release

[Unreleased]: https://github.com/pyo3/maturin/compare/v0.7.6...HEAD
[0.7.6]: https://github.com/pyo3/maturin/compare/v0.7.5...0.7.6
[0.7.5]: https://github.com/pyo3/maturin/compare/v0.7.4...0.7.5
[0.7.4]: https://github.com/pyo3/maturin/compare/v0.7.3...0.7.4
[0.7.3]: https://github.com/pyo3/maturin/compare/v0.7.2...0.7.3
[0.7.2]: https://github.com/pyo3/maturin/compare/v0.7.1...0.7.2
[0.7.1]: https://github.com/pyo3/maturin/compare/v0.7.0...0.7.1
[0.7.0]: https://github.com/pyo3/maturin/compare/v0.6.1...0.7.0
[0.6.1]: https://github.com/pyo3/maturin/compare/v0.6.0...0.6.1
[0.6.0]: https://github.com/pyo3/maturin/compare/v0.5.0...0.6.0
[0.5.0]: https://github.com/pyo3/maturin/compare/v0.4.2...v0.5.0
[0.4.2]: https://github.com/pyo3/maturin/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/pyo3/maturin/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/pyo3/maturin/compare/v0.3.10...v0.4.0
[0.3.10]: https://github.com/pyo3/maturin/compare/v0.3.9...v0.3.10
[0.3.9]: https://github.com/pyo3/maturin/compare/v0.3.8...v0.3.9
[0.3.8]: https://github.com/pyo3/maturin/compare/v0.3.7...v0.3.8
[0.3.7]: https://github.com/pyo3/maturin/compare/v0.3.6...v0.3.7
[0.3.6]: https://github.com/pyo3/maturin/compare/v0.3.5...v0.3.5
[0.3.5]: https://github.com/pyo3/maturin/compare/v0.3.4...v0.3.5
[0.3.4]: https://github.com/pyo3/maturin/compare/v0.3.3...v0.3.4
[0.3.3]: https://github.com/pyo3/maturin/compare/v0.3.1...v0.3.3
[0.3.1]: https://github.com/pyo3/maturin/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/pyo3/maturin/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/pyo3/maturin/compare/v0.1.0...v0.2.0