# Changelog

## 1.13.0

* Fix: fall back to placeholder for abi3 when found interpreters are too old ([#3126](https://github.com/pyo3/maturin/pull/3126))

## 1.13.0

* Refactor: unified interpreter resolution pipeline ([#3032](https://github.com/pyo3/maturin/pull/3032))
* Refactor: decompose large modules into focused submodules ([#3052](https://github.com/pyo3/maturin/pull/3052))
* Keep cargo build artifact at original path after staging ([#3054](https://github.com/pyo3/maturin/pull/3054))
* Fix `--strip` conflicting with `--include-debuginfo` in develop ([#3057](https://github.com/pyo3/maturin/pull/3057))
* Fix abi3 wheel producing version-specific tags for CPython below minimum ([#3061](https://github.com/pyo3/maturin/pull/3061))
* Generate-ci: use uv pip for pytest steps to fix local wheel preference ([#3063](https://github.com/pyo3/maturin/pull/3063))
* Update reflink-copy to 0.1.29 to fix sparc Linux builds
* Add `[tool.maturin.generate-ci.github]` config support ([#3066](https://github.com/pyo3/maturin/pull/3066))
* Fix(sdist): handle parent workspaces and refactor sdist generation ([#3055](https://github.com/pyo3/maturin/pull/3055))
* Test: refactor integration suite and switch mixed fixtures to cffi ([#3068](https://github.com/pyo3/maturin/pull/3068))
* Fix `data` symlink permission handling ([#3069](https://github.com/pyo3/maturin/pull/3069))
* Fix: correct bugs in audit.rs typo and module_writer ([#3070](https://github.com/pyo3/maturin/pull/3070))
* Perf: use lazy-initialized regexes instead of per-call compilation ([#3071](https://github.com/pyo3/maturin/pull/3071))
* Refactor: extract duplicated helpers and reduce code repetition ([#3072](https://github.com/pyo3/maturin/pull/3072))
* Refactor: split monster functions into focused methods ([#3073](https://github.com/pyo3/maturin/pull/3073))
* Refactor: improve type safety and API clarity ([#3074](https://github.com/pyo3/maturin/pull/3074))
* Refactor: cleanup anti-patterns ([#3075](https://github.com/pyo3/maturin/pull/3075))
* Refactor: decompose `build_context` into focused submodules ([#3076](https://github.com/pyo3/maturin/pull/3076))
* Fix: skip legacy manylinux aliases not in PyPI allow-list ([#3078](https://github.com/pyo3/maturin/pull/3078))
* Fix: auto-generate `.def` file for zig + windows-gnu to export `PyInit` symbol ([#3079](https://github.com/pyo3/maturin/pull/3079))
* Ci: upgrade run-on-arch-action to ubuntu24.04, add deadsnakes PPA for newer Python ([#3081](https://github.com/pyo3/maturin/pull/3081))
* Fix: pass `-undefined dynamic_lookup` via `CARGO_ENCODED_RUSTFLAGS` on macOS ([#3083](https://github.com/pyo3/maturin/pull/3083))
* Feat: add Profile-Guided Optimization (PGO) support ([#3085](https://github.com/pyo3/maturin/pull/3085))
* Respect `metadata_directory` in `build_wheel` per PEP 517 ([#3086](https://github.com/pyo3/maturin/pull/3086))
* Update lddtree to 0.5.0
* Fix cargo path with puccinialin for Windows ([#3093](https://github.com/pyo3/maturin/pull/3093))
* Update and pin cargo-cyclonedx to 0.5.9
* Ci: improve GitHub Actions generation logic ([#3097](https://github.com/pyo3/maturin/pull/3097))
* Refactor: split BuildOptions and BuildContext into logical sub-groups ([#3098](https://github.com/pyo3/maturin/pull/3098))
* Refactor: move subcommands to separate modules ([#3099](https://github.com/pyo3/maturin/pull/3099))
* Refactor: decouple build orchestration from BuildContext ([#3100](https://github.com/pyo3/maturin/pull/3100))
* Upgrade pyo3 to 0.28 ([#3101](https://github.com/pyo3/maturin/pull/3101))
* Fix: only enable include_debuginfo by default on Windows in develop command
* PyO3: Adds `--generate_stubs` build options ([#3105](https://github.com/pyo3/maturin/pull/3105))
* Fix: prevent panic when no interpreters match abi3 minimum version ([#3108](https://github.com/pyo3/maturin/pull/3108))
* Refactor to store CPython ABI metadata in a struct combining two enums ([#3110](https://github.com/pyo3/maturin/pull/3110))
* Refactor: introduce `WheelRepairer` trait ([#3112](https://github.com/pyo3/maturin/pull/3112))
* Feat: re-implement delocate for repairing macOS wheels ([#3114](https://github.com/pyo3/maturin/pull/3114))
* PyO3: Adds generate-stubs command ([#3115](https://github.com/pyo3/maturin/pull/3115))
* Feat: re-implement delvewheel for repairing Windows wheels ([#3116](https://github.com/pyo3/maturin/pull/3116))
* Add auditwheel Warn mode, default to Warn on macOS/Windows ([#3121](https://github.com/pyo3/maturin/pull/3121))
* Feat: Support large zip files ([#3118](https://github.com/pyo3/maturin/pull/3118))

## 1.12.6

* Sync legacy_py.rs with upstream PyPI warehouse legacy.py ([#3053](https://github.com/PyO3/maturin/pull/3053))
* Keep cargo build artifact at original path after staging ([#3054](https://github.com/PyO3/maturin/pull/3054))

## 1.12.5

* Feat: include debug info files (.pdb, .dSYM, .dwp) in wheels ([#3024](https://github.com/pyo3/maturin/pull/3024))
* Fix wrong abi3 tag for conditional cargo features enabled pyo3 abi3 feature ([#3029](https://github.com/pyo3/maturin/pull/3029))
* Fix: `maturin build --sdist` wheel name/layout for excluded workspace crates ([#3031](https://github.com/pyo3/maturin/pull/3031))
* Fix: preserve wheel output dir when building from unpacked sdist ([#3036](https://github.com/pyo3/maturin/pull/3036))
* Feat: add python-implementation condition to conditional features ([#3038](https://github.com/pyo3/maturin/pull/3038))
* Update zip to 8.1 ([#3039](https://github.com/pyo3/maturin/pull/3039))
* Use the latest version of github actions ([#3040](https://github.com/pyo3/maturin/pull/3040))
* Use renovate and pinned hashes for GitHub Actions ([#3043](https://github.com/pyo3/maturin/pull/3043))
* Chore(deps): update taiki-e/install-action digest to 7410117 ([#3046](https://github.com/pyo3/maturin/pull/3046))
* Chore(deps): update dtolnay/rust-toolchain digest to efa25f7 ([#3045](https://github.com/pyo3/maturin/pull/3045))
* Chore(deps): update actions/attest-build-provenance action to v4 ([#3047](https://github.com/pyo3/maturin/pull/3047))
* Use mmap for faster warn_missing_py_init ([#2950](https://github.com/pyo3/maturin/pull/2950))

## 1.12.4

* Upgrade memmap2 version ([#3021](https://github.com/pyo3/maturin/pull/3021))
* Fix: platform tag detection for Android targets ([#3023](https://github.com/pyo3/maturin/pull/3023))
* Fix: only ignore maturin-generated native libraries on all platforms ([#3025](https://github.com/pyo3/maturin/pull/3025))
* Fix: ignore develop artifacts for all binding types during build ([#3026](https://github.com/pyo3/maturin/pull/3026))
* Feat: support conditional cargo features based on Python version ([#3027](https://github.com/pyo3/maturin/pull/3027))

## 1.12.3

* Ci: set crt-static for riscv64 and loongarch64 musl targets ([#3009](https://github.com/pyo3/maturin/pull/3009))
* Fix: support `maturin develop` on Windows ARM with x86 Python ([#3011](https://github.com/pyo3/maturin/pull/3011))
* Fix: exclude `external_packages` bindings from uniffi wheels ([#3013](https://github.com/pyo3/maturin/pull/3013))
* Update cargo-zigbuild to 0.22.1 ([#3015](https://github.com/pyo3/maturin/pull/3015))
* Feat: build wheels from sdist with `--sdist` flag ([#3014](https://github.com/pyo3/maturin/pull/3014))
* Feat: add `include-import-lib` option to bundle Windows import libraries in wheels ([#3017](https://github.com/pyo3/maturin/pull/3017))
* Fix: auditwheel external lib check respects musllinux and reports symbol versions ([#3019](https://github.com/pyo3/maturin/pull/3019))

## 1.12.2

* Fix: allow absolute paths for `--sbom-include` ([#3004](https://github.com/pyo3/maturin/pull/3004))

## 1.12.1

* Fix crates.io trusted publishing
* Replace addnab/docker-run-action with direct docker run command
* Document SBOM support in user guide
* Add `--sbom-include` CLI argument for additional SBOM files ([#2999](https://github.com/pyo3/maturin/pull/2999))
* Fix: resolve include patterns relative to python-source for sdist and wheel ([#3000](https://github.com/pyo3/maturin/pull/3000))
* Feat: log external shared libraries and their dependents before patchelf
* Feat: support including `OUT_DIR` assets in wheel builds ([#3001](https://github.com/pyo3/maturin/pull/3001))
* Add test case for uniffi with multiple crates ([#2839](https://github.com/pyo3/maturin/pull/2839))

## 1.12.0

* Use pypi compatibility validation for own CI ([#2929](https://github.com/pyo3/maturin/pull/2929))
* Update toml crates for toml 1.1 support ([#2934](https://github.com/pyo3/maturin/pull/2934))
* Fix editable install for binary projects with Python modules ([#2938](https://github.com/pyo3/maturin/pull/2938))
* Release to crates.io only after the builds passed ([#2939](https://github.com/pyo3/maturin/pull/2939))
* Use `mymindstorm/setup-emsdk@v14` in generated GitHub Actions workflow ([#2941](https://github.com/pyo3/maturin/pull/2941))
* Filter linked_paths by KIND and linked_libs ([#2949](https://github.com/pyo3/maturin/pull/2949))
* Update bytes to 1.11.1 ([#2960](https://github.com/pyo3/maturin/pull/2960))
* Normalize wheel distribution names to match the PyPA spec ([#2954](https://github.com/pyo3/maturin/pull/2954))
* Allow build loongarch64 and riscv64 for musllinux ([#2963](https://github.com/pyo3/maturin/pull/2963))
* Strip excluded cargo targets in sdist ([#2964](https://github.com/pyo3/maturin/pull/2964))
* Normalize wheel `RECORD` paths (on Windows) ([#2965](https://github.com/pyo3/maturin/pull/2965))
* Bump MSRV to 1.88.0 ([#2966](https://github.com/pyo3/maturin/pull/2966))
* Support MATURIN_STRIP env var and --strip true/false to override pyproject.toml ([#2968](https://github.com/pyo3/maturin/pull/2968))
* Fix: copy bin artifacts before auditwheel repair to avoid rerun failures ([#2969](https://github.com/pyo3/maturin/pull/2969))
* Fix: rewrite python-source in pyproject.toml when building sdist ([#2972](https://github.com/pyo3/maturin/pull/2972))
* Fix: resolve wheel include patterns relative to project root ([#2973](https://github.com/pyo3/maturin/pull/2973))
* Fix: always include workspace Cargo.toml in sdist ([#2974](https://github.com/pyo3/maturin/pull/2974))
* Refactor: simplify source_distribution.rs ([#2976](https://github.com/pyo3/maturin/pull/2976))
* Feat: support PEP 735 dependency groups in develop command ([#2978](https://github.com/pyo3/maturin/pull/2978))
* Fix license file handling for workspace-level license files ([#2970](https://github.com/pyo3/maturin/pull/2970))
* Support PEP 739 build-details.json when cross compiling ([#2979](https://github.com/pyo3/maturin/pull/2979))
* Fix .libs directory name for namespace packages ([#2981](https://github.com/pyo3/maturin/pull/2981))
* Fix: exclude duplicate python source files from sdist for workspace members ([#2982](https://github.com/pyo3/maturin/pull/2982))
* Fix: remove default-members from workspace Cargo.toml in sdist ([#2983](https://github.com/pyo3/maturin/pull/2983))
* Fix: correctly filter workspace members in sdist by directory path ([#2984](https://github.com/pyo3/maturin/pull/2984))
* Feat: Add PEP 770 SBOM support ([#2980](https://github.com/pyo3/maturin/pull/2980))
* Error when python-source is set but Python module is missing ([#2986](https://github.com/pyo3/maturin/pull/2986))
* Feat: add auditwheel SBOM for grafted shared libraries ([#2985](https://github.com/pyo3/maturin/pull/2985))
* Fix sdist duplicate README error when readme is in both Cargo.toml and pyproject.toml ([#2987](https://github.com/pyo3/maturin/pull/2987))
* Fix: support python-source pointing outside Rust source directory ([#2988](https://github.com/pyo3/maturin/pull/2988))
* Relax ziglang dependency version requirement ([#2990](https://github.com/pyo3/maturin/pull/2990))
* Stop adding link-native-libraries flag by default in Emscripten platform in latest Rust ([#2991](https://github.com/pyo3/maturin/pull/2991))
* Fix: platform.system() on Android for Python 3.13+ ([#2992](https://github.com/pyo3/maturin/pull/2992))
* Document more environment variables in user guide
* Fix: check external libs for glibc version when determining platform tag ([#2993](https://github.com/pyo3/maturin/pull/2993))
* Update cargo-zigbuild to 0.22.0 ([#2994](https://github.com/pyo3/maturin/pull/2994))
* Sbom: filter to bindings crate only and upgrade to CycloneDX v1.5 ([#2995](https://github.com/pyo3/maturin/pull/2995))
* Upgrade ureq to 3.2.0 and migrate to built-in multipart ([#2997](https://github.com/pyo3/maturin/pull/2997))

## 1.11.5

* Allow combining `--compatibility pypi` with other `--compatibility` values ([#2928](https://github.com/pyo3/maturin/pull/2928))

## 1.11.4

* Support armv6l and armv7l in pypi compatibility ([#2926](https://github.com/pyo3/maturin/pull/2926))
* Improve the reliability of maturin's own CI

## 1.11.3

* Fix manylinux2014 compliance check ([#2922](https://github.com/pyo3/maturin/pull/2922))

## 1.11.2

* Fix failed release

## 1.11.1

* Fix compiled artifacts being excluded by source path matching ([#2910](https://github.com/pyo3/maturin/pull/2910))
* Better error reporting for missing interpreters ([#2918](https://github.com/pyo3/maturin/pull/2918))
* Ignore unreadable excluded directories ([#2916](https://github.com/pyo3/maturin/pull/2916))

## [1.11.0] - Yanked

Note: This release was yanked to a regression: https://github.com/PyO3/maturin/issues/2909

* Refactor `ModuleWriter` to be easier to implement and use
* Add Android cross compilation support, fix wheel tags for Android
* Update generate-ci to macos-15-intel and add windows arm support
* Deprecate 'upload' and 'publish' CLI commands

## [1.10.2]

* Fix tagging for iOS x86_64 simulator wheels.
* Set entry type when adding to the tar file.

## [1.10.1]

* Fix wrong dependency on Homebrew liblzma on macOS by static linking liblama

## [1.10.0]

* Add `tool.maturin.editable-profile` option to override profile for editable package installations.
* Add support for Cygwin.
* When building `abi3` wheels on non-Windows platforms that aren't cross-compiling, the `sysconfigdata` of the interpreter used to run maturin will now be used, rather than a dummy interpreter.
* Allow iOS cross-platform virtual environments, such as those used by cibuildwheel, to imply an iOS target.
* Fix iOS wheel naming to be compliant with PEP 730.
* Fix generated WHEEL Tag metadata to be spec compliant.
* Fix incorrect warning about missing `extension-module` feature on PyO3 0.26+.
* Remove `add_directory()` from ModuleWriter and make it an implementation detail for the specific impl.
* Clear out uid/gid and set deterministic mtime for files in sdist.
* Always use "library" mode to build uniffi bindings.

## [1.9.6]

* Fix regressions to interpreter platform detection on Windows from 1.9.5
* Further fixes to interpreter detection for Windows ARM64

## [1.9.5]

* Add builtin sysconfig for FreeBSD 14.2 amd64
* Fix issue searching lib dir containing Python 3.14 `build-details.json`
* Fix detection of compatible interpreters on Windows ARM64

## [1.9.4]

* Add a `use-base-python` option to `pyproject.toml` with the same behaviour as `MATURIN_PEP517_USE_BASE_PYTHON`.
* Add builtin sysconfigs for GraalPy
* Fix calculation of platform tag for FreeBSD

## [1.9.3]

* Fix adding `project.license-files` to source distributions.
* Fix relative Readme rewrite of the root crate in source distributions.

## [1.9.2]

* Fix PEP 639 implementation, use `License-Expression` over `License`.

## [1.9.1]

* Fix absolute license file path from `Cargo.toml` in [#2667](https://github.com/PyO3/maturin/pull/2667)

## [1.9.0]

* Add full PEP 639 support for `project.license` and `project.license-files` in [#2647](https://github.com/PyO3/maturin/pull/2647).
* Add `--compatibility pypi` to only build wheels with platform tags that can also be uploaded to PyPI. This blocks e.g. building for riscv64, which is supported by manylinux, but not by PyPI.

## [1.8.7]

* Allow specifying compression method and level, in both `build` and `develop` modes, in [#2625](https://github.com/PyO3/maturin/pull/2625).
* Fix Windows free-threaded builds on Python 3.14 in [#2632](https://github.com/PyO3/maturin/pull/2632)

## [1.8.6]

* Print a message when overriding platform tag from `_PYTHON_HOST_PLATFORM` in [#2594](https://github.com/PyO3/maturin/pull/2594)
* Use the current python interpreter's version when the abi3 feature is set with no explicit version in [#2597](https://github.com/PyO3/maturin/pull/2597)

## [1.8.5]

* Fix release CI build

## [1.8.4]

* Install a Rust toolchain into a temporary directory when building maturin itself or a package and a Rust toolchain is
  missing. Set `MATURIN_NO_INSTALL_RUST` to disable this behavior. [#2421](https://github.com/PyO3/maturin/pull/2421)
* Fix broken `maturin develop` with latest uv in [#2584](https://github.com/PyO3/maturin/pull/2584)
* Add `PYO3_PYTHON` env var support in [#2534](https://github.com/PyO3/maturin/pull/2534)
* Sort RECORD file in wheel archives to make them deterministic in [#2550](https://github.com/PyO3/maturin/pull/2550)
* Publish wheel for loongarch64 in [#2548](https://github.com/PyO3/maturin/pull/2548)
* Add --compression-level option to build command in [#2572](https://github.com/PyO3/maturin/pull/2572)

## [1.8.3]

* Fix relocating shared library for namespace modules in [#2513](https://github.com/PyO3/maturin/pull/2513)
* Don't install dependencies when running `maturin develop --skip-install` in [#2504](https://github.com/PyO3/maturin/pull/2504)
* Use emcc.bat to query version on Windows in [#2478](https://github.com/PyO3/maturin/pull/2478)
* Bump the attest-build-provenance version in the generated ci file in [#2484](https://github.com/PyO3/maturin/pull/2478)
* Fix platform tag on Solaris/Illumos in [#2483](https://github.com/PyO3/maturin/pull/2483)
* Fix cargo run uniffi-bindgen when cross compiling in [#2476](https://github.com/PyO3/maturin/pull/2476)

## [1.8.2]

* Exclude packages not in the dependency tree when finding bindings in [#2426](https://github.com/PyO3/maturin/pull/2426)
* Use uv automatically when running maturin develop inside uv-created virtualenv in [#2433](https://github.com/PyO3/maturin/pull/2433)
* Consider abi3 minor version when resolving Python interpreters in [#2437](https://github.com/PyO3/maturin/pull/2437)
* Handle archived dylibs on AIX in [#2442](https://github.com/PyO3/maturin/pull/2442)
* Fix unnecessary rebuilds due to pyo3 config file modified time change in [#2446](https://github.com/PyO3/maturin/pull/2446)
* Fix the name of the .data directory in the generated wheel in [#2449](https://github.com/PyO3/maturin/pull/2449)
* Update minimal manylinux version for loongarch64 in [#2451](https://github.com/PyO3/maturin/pull/2451)

## [1.8.1]

* Downgrade invalid version info in `pyproject.toml` error to warning in [#2417](https://github.com/PyO3/maturin/pull/2417)
* Make `maturin develop` fail if version info is invalid in pyproject.toml in [#2418](https://github.com/PyO3/maturin/pull/2418)

## [1.8.0]

* Don't add wheel data to sdist in [#2367](https://github.com/PyO3/maturin/pull/2367)
* Add sparcv9 architecture support in [#2380](https://github.com/PyO3/maturin/pull/2380)
* Properly handle dynamic version in pyproject.toml in [#2391](https://github.com/PyO3/maturin/pull/2391)
* Fix xwin cross compile on non-Windows system in [#2391](https://github.com/PyO3/maturin/pull/2391)
* Fix interpreter selection for abi3 bindings in [#2392](https://github.com/PyO3/maturin/pull/2392)
* Use the official recommended naming pattern for cffi module file in [#2406](https://github.com/PyO3/maturin/pull/2406)
* Add Linux armv5te architecture support in [#2409](https://github.com/PyO3/maturin/pull/2409)
* Only build Python 3.13t wheels by default for `pyo3` 0.23+ in [#2413](https://github.com/PyO3/maturin/pull/2413)

## [1.7.8]

* Fix aarch64 Windows cross compilation in [#2359](https://github.com/PyO3/maturin/pull/2359)

## [1.7.7]

* Fix abi3 interpreter discovery on Windows in [#2333](https://github.com/PyO3/maturin/pull/2333)
* Normalize python source directory path in [#2343](https://github.com/PyO3/maturin/pull/2343)
* Use different binding dirs for different uniffi modules in [#2348](https://github.com/PyO3/maturin/pull/2348)
* Limit minimal PyPy version based on bindings crate version in [#2351](https://github.com/PyO3/maturin/pull/2351)
* Do not use `xwin` to compile on Windows when MSVC compiler can build for the target in [#2353](https://github.com/PyO3/maturin/pull/2353)

## [1.7.6]

* Set core metadata version to 2.4 to fix `project.license.files` handling in [#2332](https://github.com/PyO3/maturin/pull/2332)

## [1.7.5]

* Improve wheel reproducibility by sorting external libraries [#2261](https://github.com/PyO3/maturin/pull/2261)
* Fix Readme and pyproject.toml inclusions for workspace where the bindings crate is not in the root in [#2262](https://github.com/PyO3/maturin/pull/2262)
* Add support for GNU/Hurd target in [#2306](https://github.com/PyO3/maturin/pull/2306)
* Add preliminary free-threaded Python wheel building support in [#2310](https://github.com/PyO3/maturin/pull/2310)

## [1.7.4]

* Fix musllinux rpath for non-cffi bindings in [#2233](https://github.com/PyO3/maturin/pull/2233)
* Add GitHub Actions attestation support to generate-ci in [#2234](https://github.com/PyO3/maturin/pull/2234)

## [1.7.3]

* Fix upload regression to pypi/testpypi in [#2229](https://github.com/PyO3/maturin/pull/2229)

## [1.7.2]

* Fix cross compilation issues for armv7l, mips64 and ppc in [#2204](https://github.com/PyO3/maturin/pull/2204)
* UniFFI: supports bindings generated from multiple crates in [#2208](https://github.com/PyO3/maturin/pull/2208)
* Enable `--all-features` when building source distribution in [#2215](https://github.com/PyO3/maturin/pull/2215)
* Fix rpath when module-name contains `.` in [#2219](https://github.com/PyO3/maturin/pull/2219)

## [1.7.1]

* Forward `cargo package --list` warnings in [#2186](https://github.com/PyO3/maturin/pull/2186)
* In source distributions, we move the readmes of path dependencies into the respective crate to avoid collision between different readmes in [#2184](https://github.com/PyO3/maturin/pull/2184)

## [1.7.0] - 2024-07-07

* Initial iOS support in [#2101](https://github.com/PyO3/maturin/pull/2102)
* Remove old import hook in [#2105](https://github.com/PyO3/maturin/pull/2105), use [maturin-import-hook](https://github.com/PyO3/maturin-import-hook) instead
* Bump MSRV to 1.74.0 in [#2108](https://github.com/PyO3/maturin/pull/2108)
* Add support for overriding wheel tag with `_PYTHON_HOST_PLATFORM` in [#2122](https://github.com/PyO3/maturin/pull/2122)
* Don't add files to an archive more than once [#2125](https://github.com/PyO3/maturin/issues/2125)
* Only use base python executable when `MATURIN_PEP517_USE_BASE_PYTHON` is set in [#2134](https://github.com/PyO3/maturin/pull/2134)

## [1.6.0] - 2024-06-04

* Detect compiling from Linux gnu to Linux musl as cross compiling in [#2010](https://github.com/PyO3/maturin/pull/2010)
* Add musllinux support to `generate-ci` in [#2011](https://github.com/PyO3/maturin/pull/2011)
* Add uv support to `develop` command in [#2015](https://github.com/PyO3/maturin/pull/2015)
* Add support for AIX target in [#2030](https://github.com/PyO3/maturin/pull/2030)
* Remove rust-cpython support in [#2044](https://github.com/PyO3/maturin/pull/2044)
* Add a global `-v` option in [#2080](https://github.com/PyO3/maturin/pull/2080)
* Detect target based on interpreter for pep517 build-wheel  in [#2088](https://github.com/PyO3/maturin/pull/2088)
* Use base executable when possible in PEP 517 build in [#2094](https://github.com/PyO3/maturin/pull/2094)

## [1.5.1] - 2024-03-21

* Fix usage of `--compatibility` when run as a PEP517 backend in [#1992](https://github.com/PyO3/maturin/pull/1992)
* Fix upload returning malformed summary error in [#2002](https://github.com/PyO3/maturin/pull/2002)

## [1.5.0] - 2024-03-05

* Bump metadata version from 2.1 to 2.3 in [#1965](https://github.com/PyO3/maturin/pull/1965). Source distributions created by maturin now have reliable metadata, meaning tool such as pip, uv and poetry could skip building them for version resolution.
* Allow identical `VIRTUAL_ENV` and `CONDA_PREFIX` env vars in [#1879](https://github.com/PyO3/maturin/pull/1879)
* Reject `-i python` when cross compiling in [#1891](https://github.com/PyO3/maturin/pull/1891)
* Support uniffi-bindgen in cargo workspaces in [#1909](https://github.com/PyO3/maturin/pull/1909)
* Add support for configuring `xwin` using env vars in [#1961](https://github.com/PyO3/maturin/pull/1961)
*  Add validation for crate/package name in new/init in [#1943](https://github.com/PyO3/maturin/pull/1943)
* Add 32-bit RISC-V support in [#1969](https://github.com/PyO3/maturin/pull/1969)
* Improve import hook changes in [#1958](https://github.com/PyO3/maturin/pull/1958)
* Adjust cbindgen Overrides for CFFI in [#1957](https://github.com/PyO3/maturin/pull/1957)

## [1.4.0] - 2023-12-02

* Bump MSRV to 1.67.0 in [#1847](https://github.com/PyO3/maturin/pull/1847)
* Add support for cross compiling with `cross` in [#1865](https://github.com/PyO3/maturin/pull/1865)

## [1.3.2] - 2023-11-14

* Add support for uniffi library mode in [#1729](https://github.com/PyO3/maturin/pull/1729)
* Un-deprecate `MATURIN_PEP517_ARGS` env var in [#1820](https://github.com/PyO3/maturin/pull/1820)
* Fix missing member in Cargo.toml for sdist of nested workspace layout in [#1828](https://github.com/PyO3/maturin/pull/1828)
* Escape display name in email addresses of wheel metadata in [#1832](https://github.com/PyO3/maturin/pull/1832)
* Fix rewriting workspace Cargo.toml in sdist in [#1841](https://github.com/PyO3/maturin/pull/1841)
* Fix glob workspace members matching in sdist in [#1846](https://github.com/PyO3/maturin/pull/1846)

## [1.3.1] - 2023-10-24

* Use external `uniffi-bindgen` if no root package is configured in [#1797](https://github.com/PyO3/maturin/pull/1797)
* Fix wheel filename for GraalPy in [#1802](https://github.com/PyO3/maturin/pull/1802)
* Add unittest skeleton to mixed Python/Rust projects in [#1807](https://github.com/PyO3/maturin/pull/1807)
* Preserve trailing whitespace in new project files in [#1808](https://github.com/PyO3/maturin/pull/1808)
* Fix missing `workspace.members` in sdist in [#1811](https://github.com/PyO3/maturin/pull/1811)
* Don't set `MACOSX_DEPLOYMENT_TARGET` for editable builds by default in [#1815](https://github.com/PyO3/maturin/pull/1815)

## [1.3.0] - 2023-10-02

* Refactor Cargo sdist generator to avoid rewriting local dependencies in [#1741](https://github.com/PyO3/maturin/pull/1741)
* Added `--pip-path` argument to `develop` command in [#1753](https://github.com/PyO3/maturin/pull/1753)
* Ignore sdist output files when building sdist in [#1756](https://github.com/PyO3/maturin/pull/1756)
* Use `python.exe` by default in `build` command on Windows in [#1757](https://github.com/PyO3/maturin/pull/1757)
* Don't require `uniffi-bindgen` to be installed for uniffi bindings in [#1762](https://github.com/PyO3/maturin/pull/1762)
* Fix platform tag for graalpy in [#1773](https://github.com/PyO3/maturin/pull/1773)
* Always set minor version to 0 when major version >= 11 for macOS in [#1778](https://github.com/PyO3/maturin/pull/1778)
* Warning about incorrect maturin version pyproject.toml `[build-system] requires` in [#1793](https://github.com/PyO3/maturin/pull/1793)

## [1.2.3] - 2023-08-17

* Fix sdist build failure with workspace path dependencies by HerringtonDarkholme in [#1739](https://github.com/PyO3/maturin/pull/1739)

## [1.2.2] - 2023-08-14

* Fix non interactive mode check when username/password was supplied from cli in #[1737](https://github.com/PyO3/maturin/pull/1737)

## [1.2.1] - 2023-08-14

* Add non-interactive mode to `upload` command in [#1722](https://github.com/PyO3/maturin/pull/1722)
* Fix `link-native-libraries` check for emscripten target in [#1724](https://github.com/PyO3/maturin/pull/1724)
* Add support for `ALL_PROXY` to `upload` command in [#1727](https://github.com/PyO3/maturin/pull/1727)
* Handle renamed Rust dependency in sdist in [#1728](https://github.com/PyO3/maturin/pull/1728)
* Fix invalid TOML when rewriting workspace inherited dependencies in [#1733](https://github.com/PyO3/maturin/pull/1733)

## [1.2.0] - 2023-08-06

* Add basic support for implicit namespaces [#1645](https://github.com/PyO3/maturin/pull/1696)
* Add Linux mips64 and mips architecture support in [#1712](https://github.com/PyO3/maturin/pull/1712)
* Add `x86_64h-apple-darwin` target support in [#1717](https://github.com/PyO3/maturin/pull/1717)

## [1.1.0] - 2023-06-10

* Add basic support for GraalPy in [#1645](https://github.com/PyO3/maturin/pull/1645)
* Refactor abi tag to use `EXT_SUFFIX` in [#1648](https://github.com/PyO3/maturin/pull/1648)
* Add Linux loongarch64 architecture support in [#1653](https://github.com/PyO3/maturin/pull/1653)
* Add `--skip-install` option to `maturin develop` in [#1654](https://github.com/PyO3/maturin/pull/1654)

## [1.0.1] - 2023-05-28

* Add more Python 3.12 sysconfigs in [#1629](https://github.com/PyO3/maturin/pull/1629)
* Fix panicking when no cargo build targets are selected in [#1635](https://github.com/PyO3/maturin/pull/1635)

## [1.0.0] - 2023-05-23

* Add support for multiple `--config-settings` in PEP517 backend in [#1624](https://github.com/PyO3/maturin/pull/1624)
* Remove deprecated `--universal2` cli option in [#1620](https://github.com/PyO3/maturin/pull/1620),
  use `--target universal2-apple-darwin` instead.

## [0.15.3] - 2023-05-20

* Fix cross compile Apple universal2 wheels on non-macOS platforms by MisLink in [#1613](https://github.com/PyO3/maturin/pull/1613)
* Add PEP 517 `config_settings` support in [#1619](https://github.com/PyO3/maturin/pull/1619),
  deprecate `MATURIN_PEP517_ARGS` in favor of the new `build-args` config setting.

## [0.15.2] - 2023-05-16

* When determining the python module name, use pyproject.toml `project.name` over Cargo.toml `package.name` in [#1608](https://github.com/PyO3/maturin/pull/1608)
* Fix rewriting `dev-dependencies` in sdist in [#1610](https://github.com/PyO3/maturin/pull/1610)

## [0.15.1] - 2023-05-07

* Fix finding interpreters from bundled sysconfigs in [#1598](https://github.com/PyO3/maturin/pull/1598)

## [0.15.0] - 2023-05-07

* **Breaking Change**: Build with `--no-default-features` by default when bootstrapping from sdist in [#1333](https://github.com/PyO3/maturin/pull/1333)
* **Breaking Change**: Remove deprecated `sdist-include` option in `pyproject.toml` in [#1335](https://github.com/PyO3/maturin/pull/1335)
* **Breaking Change**: Remove deprecated `python-source` option in `Cargo.toml` in [#1335](https://github.com/PyO3/maturin/pull/1335)
* **Breaking Change**: Turn `patchelf` version warning into a hard error in [#1335](https://github.com/PyO3/maturin/pull/1335)
* **Breaking Change**: [`uniffi_bindgen` CLI](https://mozilla.github.io/uniffi-rs/tutorial/Prerequisites.html#the-uniffi-bindgen-cli-tool) is required for building `uniffi` bindings wheels in [#1352](https://github.com/PyO3/maturin/pull/1352)
* Add Cargo compile targets configuration for filtering multiple bin targets in [#1339](https://github.com/PyO3/maturin/pull/1339)
* Respect `rustflags` settings in cargo configuration file in [#1405](https://github.com/PyO3/maturin/pull/1405)
* Add support for uniffi 0.23 in [#1481](https://github.com/PyO3/maturin/pull/1481)
* Add support for custom TLS certificate authority bundle in [#1483](https://github.com/PyO3/maturin/pull/1483)
* Bump MSRV to 1.64.0 in [#1528](https://github.com/PyO3/maturin/pull/1528)
* Add wildcards support to publish/upload commands on Windows in [#1534](https://github.com/PyO3/maturin/pull/1534)
* Add support for configuring macOS deployment target version in `pyproject.toml` in [#1536](https://github.com/PyO3/maturin/pull/1536)
* Rewrite platform specific dependencies in `Cargo.toml` by viccie30 in [#1572](https://github.com/PyO3/maturin/pull/1572)
* Add trusted publisher support in [#1578](https://github.com/PyO3/maturin/pull/1578)
* Add new `git` source distribution generator in [#1587](https://github.com/PyO3/maturin/pull/1587)

## [0.14.17] - 2023-04-06

* Fix wrong `EXT_SUFFIX` when cross compiling musllinux wheels for Python 3.11 in [#1560](https://github.com/PyO3/maturin/pull/1560)

## [0.14.16] - 2023-03-26

* Deprecate `package.metadata.maturin.name` in favor of `tool.maturin.module-name` in `pyproject.toml` in [#1531](https://github.com/PyO3/maturin/pull/1531)

## [0.14.15] - 2023-03-03

* Add sdist and sccache support to `generate-ci` command

## [0.14.14] - 2023-02-24

* Add support for Emscripten in `generate-ci` command in [#1484](https://github.com/PyO3/maturin/pull/1484)
* Add support for linking with pyo3 in abi3 debug mode on Windows in [#1487](https://github.com/PyO3/maturin/pull/1487)
* Use default `ext_suffix` for Emscripten target if not provided in `PYO3_CONFIG_FILE` in [#1491](https://github.com/PyO3/maturin/pull/1491)
* Deprecate `package.metadata.maturin.data` in favor of `tool.maturin.data` in `pyproject.toml` in [#1492](https://github.com/PyO3/maturin/pull/1492)

## [0.14.13] - 2023-02-12

* `maturin develop` now looks for a virtualenv `.venv` in the current or any parent directory if no virtual environment is active.
* Add a new `generate-ci` command to generate CI configuration in [#1456](https://github.com/PyO3/maturin/pull/1456)
* Deprecate `--universal2` in favor of `universal2-apple-darwin` target in [#1457](https://github.com/PyO3/maturin/pull/1457)
* Raise an error when `Cargo.toml` contains removed python package metadata in [#1471](https://github.com/PyO3/maturin/pull/1471)
* Use `extension_name` instead of `module_name` for CFFI extensions in develop mode in [#1476](https://github.com/PyO3/maturin/pull/1476)

## [0.14.12] - 2023-01-31

* Keep `dev-dependencies` in sdist when there are no path dependencies in [#1441](https://github.com/PyO3/maturin/pull/1441)

## [0.14.11] - 2023-01-31

* Don't package dev-only path dependencies in sdist in [#1435](https://github.com/PyO3/maturin/pull/1435)

## [0.14.10] - 2023-01-13

* Use module name specified by `[package.metadata.maturin]` in [#1409](https://github.com/PyO3/maturin/pull/1409)

## [0.14.9] - 2023-01-10

* Don't pass `MACOSX_DEPLOYMENT_TARGET` when query default value from rustc in [#1395](https://github.com/PyO3/maturin/pull/1395)

## [0.14.8] - 2022-12-31

* Add support for packaging multiple pure Python packages in [#1378](https://github.com/PyO3/maturin/pull/1378)
* Fallback to sysconfig interpreters for pyo3 bindings in [#1381](https://github.com/PyO3/maturin/pull/1381)

## [0.14.7] - 2022-12-20

* Add workspace lock file to sdist as a fallback in [#1362](https://github.com/PyO3/maturin/pull/1362)

## [0.14.6] - 2022-12-13

* Allow Rust crate to be placed outside of the directory containing `pyproject.toml` in [#1347](https://github.com/PyO3/maturin/pull/1347)
* Disallow uniffi bin bindings in [#1353](https://github.com/PyO3/maturin/pull/1353)
* Update bundled Python sysconfigs for Linux and macOS

## [0.14.5] - 2022-12-08

* Support `SOURCE_DATE_EPOCH` when building wheels in [#1334](https://github.com/PyO3/maturin/pull/1334)
* Fix sdist when all Cargo workspace members are excluded in [#1343](https://github.com/PyO3/maturin/pull/1343)

## [0.14.4] - 2022-12-05

* Expanded architecture support for FreeBSD, NetBSD and OpenBSD in [#1318](https://github.com/PyO3/maturin/pull/1318)
* Better error message when upload failed with status code 403 in [#1323](https://github.com/PyO3/maturin/pull/1323)

## [0.14.3] - 2022-12-01

* Bump MSRV to 1.62.0 in [#1297](https://github.com/PyO3/maturin/pull/1297)
* Fix build error when required features of bin target isn't enabled in [#1299](https://github.com/PyO3/maturin/pull/1299)
* Fix wrong platform tag when building in i386 docker container on x86_64 host in [#1301](https://github.com/PyO3/maturin/pull/1301)
* Fix wrong platform tag when building in armv7 docker container on aarch64 host in [#1303](https://github.com/PyO3/maturin/pull/1303)
* Add Solaris operating system support in [#1310](https://github.com/PyO3/maturin/pull/1310)
* Add armv6 and armv7 target support for FreeBSD in [#1312](https://github.com/PyO3/maturin/pull/1312)
* Add riscv64 and powerpc target support for FreeBSD in [#1313](https://github.com/PyO3/maturin/pull/1313)
* Fix powerpc64 and powerpc64le Python wheel platform tag for FreeBSD in [#1313](https://github.com/PyO3/maturin/pull/1313)

## [0.14.2] - 2022-11-24

* Tighten src-layout detection logic in [#1281](https://github.com/PyO3/maturin/pull/1282)
* Fix generating pep517 sdist for src-layout in [#1288](https://github.com/PyO3/maturin/pull/1288)
* Deprecate `python-source` option in `Cargo.toml` in favor of the one in `pyproject.toml` in [#1291](https://github.com/PyO3/maturin/pull/1291)
* Fix auditwheel with read-only libraries in [#1292](https://github.com/PyO3/maturin/pull/1292)

## [0.14.1] - 2022-11-20

* Downgrade `cargo_metadata` to 0.15.0 to fix `maturin build` on old Rust versions like 1.48.0 in [#1279](https://github.com/PyO3/maturin/pull/1279)

## [0.14.0] - 2022-11-19

* **Breaking Change**: Remove support for specifying python package metadata in `Cargo.toml` in [#1200](https://github.com/PyO3/maturin/pull/1200).
  Python package metadata should be specified in the `project` section of `pyproject.toml` instead as [PEP 621](https://peps.python.org/pep-0621/) specifies.
* Initial support for shipping bin targets as wasm32-wasi binaries that are run through wasmtime in [#1107](https://github.com/PyO3/maturin/pull/1107).
  Note that wasmtime currently only support the five most popular platforms and that wasi binaries have restrictions when interacting with the host.
  Usage is by setting `--target wasm32-wasi`.
* Add support for python first [`src` project layout](https://py-pkgs.org/04-package-structure.html#the-source-layout) in [#1185](https://github.com/PyO3/maturin/pull/1185)
* Add `--src` option to generate src layout for mixed Python/Rust projects in [#1189](https://github.com/PyO3/maturin/pull/1189)
* Add Python metadata support for `license-file` field of `Cargo.toml` in [#1195](https://github.com/PyO3/maturin/pull/1195)
* Upgrade to clap 4.0 in [#1197](https://github.com/PyO3/maturin/pull/1197). This bumps MSRV to 1.61.0.
* Remove `workspace.members` in `Cargo.toml` from sdist if there isn't any path dependency in #[1227](https://github.com/PyO3/maturin/pull/1227)
* Fix auditwheel `libpython` check on Python 3.7 and older versions in [#1229](https://github.com/PyO3/maturin/pull/1229)
* Use generic tags when `sys.implementation.name` != `platform.python_implementation()` in [#1232](https://github.com/PyO3/maturin/pull/1232).
  Fixes the compatibility tags for Pyston.
* Set default macOS deployment target version if `MACOSX_DEPLOYMENT_TARGET` isn't specified in [#1251](https://github.com/PyO3/maturin/pull/1251)
* Add support for 32-bit x86 FreeBSD target in [#1254](https://github.com/PyO3/maturin/pull/1254)
* Add `[tool.maturin.include]` and `[tool.maturin.exclude]` and deprecate `[tool.maturin.sdist-include]` [#1255](https://github.com/PyO3/maturin/pull/1255)
* Ignore sdist tar ball instead of error out in [#1259](https://github.com/PyO3/maturin/pull/1259)
* Add support for [`uniffi`](https://github.com/mozilla/uniffi-rs) bindings in [#1275](https://github.com/PyO3/maturin/pull/1275)

## [0.13.7] - 2022-10-29

* Fix macOS `LC_ID_DYLIB` for abi3 wheels in [#1208](https://github.com/PyO3/maturin/pull/1208)
* Pass `--locked` to Cargo when bootstrap from sdist in [#1212](https://github.com/PyO3/maturin/pull/1212)
* Fix build for Python 3.11 on Windows in [#1222](https://github.com/PyO3/maturin/pull/1222)

## [0.13.6] - 2022-10-08

* Fix `maturin develop` in Windows conda virtual environment in [#1146](https://github.com/PyO3/maturin/pull/1146)
* Fix build for crate using `pyo3` and `build.rs` without `cdylib` crate type in [#1150](https://github.com/PyO3/maturin/pull/1150)
* Fix build on some 32-bit platform by downgrading `indicatif` in [#1163](https://github.com/PyO3/maturin/pull/1163)
* Include `Cargo.lock` by default in source distribution in [#1170](https://github.com/PyO3/maturin/pull/1170)

## [0.13.5] - 2022-09-27

* Fix resolving crate name bug in [#1142](https://github.com/PyO3/maturin/pull/1142)

## [0.13.4] - 2022-09-27

* Fix `Cargo.toml` in new project template in [#1109](https://github.com/PyO3/maturin/pull/1109)
* Fix `maturin develop` on Windows when using Python installed from msys2 in [#1112](https://github.com/PyO3/maturin/pull/1112)
* Fix duplicated `Cargo.toml` of local dependencies in sdist in [#1114](https://github.com/PyO3/maturin/pull/1114)
* Add support for Cargo workspace dependencies inheritance in [#1123](https://github.com/PyO3/maturin/pull/1123)
* Add support for Cargo workspace metadata inheritance in [#1131](https://github.com/PyO3/maturin/pull/1131)
* Use `goblin` instead of shelling out to `patchelf` to get rpath in [#1139](https://github.com/PyO3/maturin/pull/1139)

## [0.13.3] - 2022-09-15

* Allow user to override default Emscripten settings in [#1059](https://github.com/PyO3/maturin/pull/1059)
* Enable `--crate-type cdylib` on Rust 1.64.0 in [#1060](https://github.com/PyO3/maturin/pull/1060)
* Update MSRV to 1.59.0 in [#1071](https://github.com/PyO3/maturin/pull/1071)
* Fix abi3 wheel build when no Python interpreters found in [#1072](https://github.com/PyO3/maturin/pull/1072)
* Add `zig ar` support in [#1073](https://github.com/PyO3/maturin/pull/1073)
* Fix sdist build for optional path dependencies in [#1084](https://github.com/PyO3/maturin/pull/1084)
* auditwheel: find dylibs in Cargo target directory in [#1092](https://github.com/PyO3/maturin/pull/1092)
* Add library search paths in Cargo target directory to rpath in editable mode on Linux in [#1094](https://github.com/PyO3/maturin/pull/1094)
* Remove default manifest path for `maturin sdist` command in [#1097](https://github.com/PyO3/maturin/pull/1097)
* Fix sdist when `pyproject.toml` isn't in the same dir of `Cargo.toml` in [#1099](https://github.com/PyO3/maturin/pull/1099)
* Change readme and license paths in `pyproject.toml` to be relative to `pyproject.toml` in [#1100](https://github.com/PyO3/maturin/pull/1100).
  It's technically a **breaking change**, but previously it doesn't work properly.
* Add python source files specified in pyproject.toml to sdist in [#1102](https://github.com/PyO3/maturin/pull/1102)
* Change `sdist-include` paths to be relative to `pyproject.toml` in [#1103](https://github.com/PyO3/maturin/pull/1103)

## [0.13.2] - 2022-08-14

* Deprecate manylinux 2010 support in [#858](https://github.com/PyO3/maturin/pull/858).
  The [manylinux](https://github.com/pypa/manylinux) project already dropped its support
  and the rustc compiler will [drop glibc 2.12 support in 1.64.0](https://blog.rust-lang.org/2022/08/01/Increasing-glibc-kernel-requirements.html).
* Add Linux mips64el architecture support in [#1023](https://github.com/PyO3/maturin/pull/1023)
* Add Linux mipsel architecture support in [#1024](https://github.com/PyO3/maturin/pull/1024)
* Add Linux 32-bit powerpc architecture support in [#1026](https://github.com/PyO3/maturin/pull/1026)
* Add Linux sparc64 architecture support in [#1027](https://github.com/PyO3/maturin/pull/1027)
* Add PEP 440 local version identifier support in [#1037](https://github.com/PyO3/maturin/pull/1037)
* Fix inconsistent `Cargo.toml` and `pyproject.toml` path handling in [#1043](https://github.com/PyO3/maturin/pull/1043)
* Find python module next to `pyproject.toml` if `pyproject.toml` exists in [#1044](https://github.com/PyO3/maturin/pull/1044).
  It's technically a **breaking change**, but previously it doesn't work properly
  if the directory containing `pyproject.toml` isn't recognized as project root.
* Add `python-source` option to `[tool.maturin]` section of pyproject.toml in [#1046](https://github.com/PyO3/maturin/pull/1046)
* Deprecate support for specifying python metadata in `Cargo.toml` in [#1048](https://github.com/PyO3/maturin/pull/1048).
  Please migrate to [PEP 621](https://peps.python.org/pep-0621/) instead.
* Change `python-source` to be relative to the file specifies it in [#1049](https://github.com/PyO3/maturin/pull/1049)
* Change `data` to be relative to the file specifies it in [#1051](https://github.com/PyO3/maturin/pull/1051)
* Don't reinstall dependencies in `maturin develop` in [#1052](https://github.com/PyO3/maturin/pull/1052)
* Find `pyproject.toml` in parent directories of `Cargo.toml` in [#1054](https://github.com/PyO3/maturin/pull/1054)

## [0.13.1] - 2022-07-26

* Add 64-bit RISC-V support by felixonmars in [#1001](https://github.com/PyO3/maturin/pull/1001)
* Add support for invoking with `python3 -m maturin` in [#1008](https://github.com/PyO3/maturin/pull/1008)
* Fix detection of optional dependencies when declaring `features` in `pyproject.toml` in [#1014](https://github.com/PyO3/maturin/pull/1014)
* Respect user specified Rust target in `maturin develop` in [#1016](https://github.com/PyO3/maturin/pull/1016)
* Use `cargo rustc --crate-type cdylib` on Rust nightly/dev channel in [#1020](https://github.com/PyO3/maturin/pull/1020)

## [0.13.0] - 2022-07-09

* **Breaking Change**: Drop support for python 3.6, which is end of life in [#945](https://github.com/PyO3/maturin/pull/945)
* **Breaking Change**: Don't build source distribution by default in `maturin build` command in [#955](https://github.com/PyO3/maturin/pull/955), `--no-sdist` option is replaced by `--sdist`
* **Breaking Change**: maturin no longer search for python interpreters by default and only build for current interpreter in `PATH` in [#964](https://github.com/PyO3/maturin/pull/964)
* **Breaking Change**: Removed `--cargo-extra-args` and `--rustc-extra-args` options in [#972](https://github.com/PyO3/maturin/pull/972). You can now pass all common `cargo build` arguments directly to `maturin build`
* **Breaking Change**: `--repository-url` option in `upload` command no longer accepts plain repository name, full url required and `-r` short option moved to `--repository` in [#987](https://github.com/PyO3/maturin/pull/987)
* Add support for building with multiple binary targets in [#948](https://github.com/PyO3/maturin/pull/948)
* Add a `--target` option to `maturin list-python` command in [#957](https://github.com/PyO3/maturin/pull/957)
* Add support for using bundled python sysconfigs for PyPy when abi3 feature is enabled in [#958](https://github.com/PyO3/maturin/pull/958)
* Add support for cross compiling PyPy wheels when abi3 feature is enabled in [#963](https://github.com/PyO3/maturin/pull/963)
* Add `--find-interpreter` option to `build` and `publish` commands to search for python interpreters in [#964](https://github.com/PyO3/maturin/pull/964)
* Infer target triple from `ARCHFLAGS` for macOS to be compatible with `cibuildwheel` in [#967](https://github.com/PyO3/maturin/pull/967)
* Expose commonly used Cargo CLI options in `maturin build` command in [#972](https://github.com/PyO3/maturin/pull/972)
* Add support for `wasm32-unknown-emscripten` target in [#974](https://github.com/PyO3/maturin/pull/974)
* Allow overriding platform release version using env var in [#975](https://github.com/PyO3/maturin/pull/975)
* Fix `maturin develop` for arm64 Python on M1 Mac when default toolchain is x86_64 in [#980](https://github.com/PyO3/maturin/pull/980)
* Add `--repository` option to `maturin upload` command in [#987](https://github.com/PyO3/maturin/pull/987)
* Only lookup bundled Python sysconfig when interpreters aren't specified as file path in [#988](https://github.com/PyO3/maturin/pull/988)
* Find CPython upper to 3.12 and PyPy upper to 3.10 in [#993](https://github.com/PyO3/maturin/pull/993)
* Add short alias `maturin b` for `maturin build` and `maturin dev` for `maturin develop` subcommands in [#994](https://github.com/PyO3/maturin/pull/994)

## [0.12.20] - 2022-06-15

* Fix incompatibility with cibuildwheel for 32-bit Windows in [#951](https://github.com/PyO3/maturin/pull/951)
* Don't require `pip` error messages to be utf-8 encoding in [#953](https://github.com/PyO3/maturin/pull/953)
* Compare minimum python version requirement between `requires-python` and bindings crate in [#954](https://github.com/PyO3/maturin/pull/954)
* Set `PYO3_PYTHON` env var for PyPy when abi3 is enabled in [#960](https://github.com/PyO3/maturin/pull/960)
* Add sysconfigs for x64 Windows PyPy in [#962](https://github.com/PyO3/maturin/pull/962)
* Add support for Linux armv6l in [#966](https://github.com/PyO3/maturin/pull/966)
* Fix auditwheel bundled shared libs directory name in [#969](https://github.com/PyO3/maturin/pull/969)

## [0.12.19] - 2022-06-05

* Fix Windows Store install detection in [#949](https://github.com/PyO3/maturin/pull/949)
* Filter Python interpreters by target pointer width on Windows in [#950](https://github.com/PyO3/maturin/pull/950)

## [0.12.18] - 2022-05-29

* Add support for building bin bindings wheels with multiple platform tags in [#928](https://github.com/PyO3/maturin/pull/928)
* Skip auditwheel for non-compliant linux environment automatically in [#931](https://github.com/PyO3/maturin/pull/931)
* Fix abi3 wheel build issue when no Python interpreters found on host in [#933](https://github.com/PyO3/maturin/pull/933)
* Add Python 3.11 sysconfigs for Linux, macOS and Windows in [#934](https://github.com/PyO3/maturin/pull/934)
* Add Python 3.11 sysconfig for arm64 Windows in [#936](https://github.com/PyO3/maturin/pull/936)
* Add network proxy support to upload command in [#939](https://github.com/PyO3/maturin/pull/939)
* Fix python interpreter detection on arm64 Windows in [#940](https://github.com/PyO3/maturin/pull/940)
* Fallback to `py -X.Y` when `pythonX.Y` cannot be found on Windows in [#943](https://github.com/PyO3/maturin/pull/943)
* Auto-detect Python Installs from Microsoft Store in [#944](https://github.com/PyO3/maturin/pull/944)
* Add bindings detection to bin targets in [#938](https://github.com/PyO3/maturin/pull/938)

## [0.12.17] - 2022-05-18

* Don't consider compile to i686 on x86_64 Windows cross compiling in [#923](https://github.com/PyO3/maturin/pull/923)
* Accept `-i x.y` and `-i python-x.y` in `maturin build` command in [#925](https://github.com/PyO3/maturin/pull/925)

## [0.12.16] - 2022-05-16

* Add Linux armv7l python sysconfig in [#901](https://github.com/PyO3/maturin/pull/901)
* Add NetBSD python sysconfig in [#903](https://github.com/PyO3/maturin/pull/903)
* Update 'replace_needed' to reduce total calls to 'patchelf' in [#905](https://github.com/PyO3/maturin/pull/905)
* Add wheel data support in [#906](https://github.com/PyO3/maturin/pull/906)
* Allow use python interpreters from bundled sysconfig when not cross compiling in [#907](https://github.com/PyO3/maturin/pull/907)
* Use setuptools-rust for bootstrapping in [#909](https://github.com/PyO3/maturin/pull/909)
* Allow setting the publish repository URL via `MATURIN_REPOSITORY_URL` in [#913](https://github.com/PyO3/maturin/pull/913)
* Allow stubs-only mixed project layout in [#914](https://github.com/PyO3/maturin/pull/914)
* Allow setting the publish user name via `MATURIN_USERNAME` in [#915](https://github.com/PyO3/maturin/pull/915)
* Add Windows python sysconfig in [#917](https://github.com/PyO3/maturin/pull/917)
* Add support for `generate-import-lib` feature of pyo3 in [#918](https://github.com/PyO3/maturin/pull/918)
* Integrate [`cargo-xwin`](https://github.com/messense/cargo-xwin) for cross compiling to Windows MSVC targets in [#919](https://github.com/PyO3/maturin/pull/919)

## [0.12.15] - 2022-05-07

* Re-export `__all__` for pure Rust projects in [#886](https://github.com/PyO3/maturin/pull/886)
* Stop setting `RUSTFLAGS` environment variable to an empty string in [#887](https://github.com/PyO3/maturin/pull/887)
* Add hardcoded well-known sysconfigs for effortless cross compiling in [#896](https://github.com/PyO3/maturin/pull/896)
* Add support for `PYO3_CONFIG_FILE` in [#899](https://github.com/PyO3/maturin/pull/899)

## [0.12.14] - 2022-04-25

* Fix PyPy pep517 build when abi3 feature is enabled in [#883](https://github.com/PyO3/maturin/pull/883)

## [0.12.13] - 2022-04-25

* Stop setting `PYO3_NO_PYTHON` environment variable for pyo3 0.16.4 and later in [#875](https://github.com/PyO3/maturin/pull/875)
* Build Windows abi3 wheels for `pyo3` 0.16.4 and later versions with `generate-abi3-import-lib` feature enabled no longer require a Python interpreter in [#879](https://github.com/PyO3/maturin/pull/879)

## [0.12.12] - 2022-04-07

* Migrate docker image to GitHub container registry in [#845](https://github.com/PyO3/maturin/pull/845)
* Change mixed rust/python template project layout for new projects in [#855](https://github.com/PyO3/maturin/pull/855)
* Automatically include license files in `.dist-info/license_files` following PEP 639 in [#862](https://github.com/PyO3/maturin/pull/862)
* Bring back multiple values support for `--interpreter` option in [#873](https://github.com/PyO3/maturin/pull/873)
* Update the default edition to 2021 for new projects by sa- in [#874](https://github.com/PyO3/maturin/pull/874)
* Drop `python3.6` from `ghcr.io/pyo3/maturin` docker image.

## [0.12.11] - 2022-03-15

* Package license files in `.dist-info/license_files` following PEP 639 in [#837](https://github.com/PyO3/maturin/pull/837)
* Stop testing Python 3.6 on CI since it's already EOL in [#840](https://github.com/PyO3/maturin/pull/840)
* Update workspace members for sdist local dependencies in [#844](https://github.com/PyO3/maturin/pull/844)
* Migrate docker image to github container registry in [#845](https://github.com/PyO3/maturin/pull/845)
* Remove `PYO3_NO_PYTHON` hack for Windows in [#848](https://github.com/PyO3/maturin/pull/848)
* Remove Windows abi3 python lib link hack in [#851](https://github.com/PyO3/maturin/pull/851)
* Add `-r` option as a short alias for `--release` in [#854](https://github.com/PyO3/maturin/pull/854)

## [0.12.10] - 2022-03-09

* Add support for `pyo3-ffi` by ijl in [#804](https://github.com/PyO3/maturin/pull/804)
* Defaults to `musllinux_1_2` for musl target if it's not bin bindings in [#808](https://github.com/PyO3/maturin/pull/808)
* Remove support for building only sdist via `maturin build -i` in [#813](https://github.com/PyO3/maturin/pull/813), use `maturin sdist` instead.
* Add macOS target support for `--zig` in [#817](https://github.com/PyO3/maturin/pull/817)
* Migrate Python dependency `toml` to `tomllib` / `tomli` by Contextualist in [#821](https://github.com/PyO3/maturin/pull/821)
* Disable auditwheel for PEP 517 build wheel process in [#823](https://github.com/PyO3/maturin/pull/823)
* Lookup existing cffi `header.h` in workspace target directory in [#833](https://github.com/PyO3/maturin/pull/833)
* Fix license line ending in wheel metadata for Windows in [#836](https://github.com/PyO3/maturin/pull/836)

## [0.12.9] - 2022-02-09

* Don't require `pyproject.toml` when cargo manifest is not specified in [#806](https://github.com/PyO3/maturin/pull/806)

## [0.12.8] - 2022-02-08

* Add missing `--version` flag from clap 3.0 upgrade

## [0.12.7] - 2022-02-08

* Add support for using [`zig cc`](https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html) as linker for easier cross compiling and manylinux compliance in [#756](https://github.com/PyO3/maturin/pull/756)
* Switch from reqwest to ureq to reduce dependencies in [#767](https://github.com/PyO3/maturin/pull/767)
* Fix missing Python submodule in wheel in [#772](https://github.com/PyO3/maturin/pull/772)
* Add support for specifying cargo manifest path in pyproject.toml in [#781](https://github.com/PyO3/maturin/pull/781)
* Add support for passing arguments to pep517 command via `MATURIN_PEP517_ARGS` env var in [#786](https://github.com/PyO3/maturin/pull/786)
* Fix auditwheel `No such file or directory` error when `LD_LIBRARY_PATH` contains non-existent paths in [#794](https://github.com/PyO3/maturin/pull/794)

## [0.12.6] - 2021-12-31

* Add support for repairing cross compiled linux wheels in [#754](https://github.com/PyO3/maturin/pull/754)
* Add support for `manylinux_2_28` and `manylinux_2_31` in [#755](https://github.com/PyO3/maturin/pull/755)
* Remove existing so file first in `maturin develop` command to avoid triggering SIGSEV in running process in [#760](https://github.com/PyO3/maturin/pull/760)

## [0.12.5] - 2021-12-20

* Fix docs for `new` and `init` commands in `maturin --help` in [#734](https://github.com/PyO3/maturin/pull/734)
* Add support for x86_64 Haiku in [#735](https://github.com/PyO3/maturin/pull/735)
* Fix undefined auditwheel policy panic in [#740](https://github.com/PyO3/maturin/pull/740)
* Fix sdist upload for packages where the pkgname contains multiple underscores in [#741](https://github.com/PyO3/maturin/pull/741)
* Implement auditwheel repair with patchelf in [#742](https://github.com/PyO3/maturin/pull/742)
* Add `Cargo.lock` to sdist when `--locked` or `--frozen` specified in [#749](https://github.com/PyO3/maturin/pull/749)
* Infer readme file if not specified in [#751](https://github.com/PyO3/maturin/pull/751)

## [0.12.4] - 2021-12-06

* Add a `maturin init` command as a companion to `maturin new` in [#719](https://github.com/PyO3/maturin/pull/719)
* Don't package non-path-dep crates in sdist for workspaces in [#720](https://github.com/PyO3/maturin/pull/720)
* Build release packages with `password-storage` feature in [#725](https://github.com/PyO3/maturin/pull/725)
* Add support for x86_64 DargonFly BSD in [#727](https://github.com/PyO3/maturin/pull/727)
* Add a Python import hook in [#729](https://github.com/PyO3/maturin/pull/729)
* Allow pip warnings in `maturin develop` command in [#732](https://github.com/PyO3/maturin/pull/732)

## [0.12.3] - 2021-11-29

* Use platform tag from `sysconfig.platform` on non-portable Linux in [#709](https://github.com/PyO3/maturin/pull/709)
* Consider current machine architecture when generating platform tags for abi3
  wheels on linux in [#709](https://github.com/PyO3/maturin/pull/709)
* Revert back to Rust 2018 edition in [#710](https://github.com/PyO3/maturin/pull/710)
* Warn missing `cffi` package dependency in [#711](https://github.com/PyO3/maturin/pull/711)
* Add support for Illumos in [#712](https://github.com/PyO3/maturin/pull/712)
* Account for `MACOSX_DEPLOYMENT_TARGET` env var in wheel platform tag in [#716](https://github.com/PyO3/maturin/pull/716)

## [0.12.2] - 2021-11-26

* Add support for excluding files from wheels by `.gitignore` in [#695](https://github.com/PyO3/maturin/pull/695)
* Fix `pip install maturin` on OpenBSD 6.8 in [#697](https://github.com/PyO3/maturin/pull/697)
* Add support for x86, x86_64 and aarch64 on NetBSD in [#704](https://github.com/PyO3/maturin/pull/704)
* Add a `maturin new` command for bootstrapping new projects in [#705](https://github.com/PyO3/maturin/pull/705)

## [0.12.1] - 2021-11-21

* Add support for cross compiling PyPy wheels in [#687](https://github.com/PyO3/maturin/pull/687)
* Fix `sysconfig.get_platform` parsing for macOS in [#690](https://github.com/PyO3/maturin/pull/690)

## [0.12.0] - 2021-11-19

* Add support for PEP 660 editable installs in [#648](https://github.com/PyO3/maturin/pull/648)
* Publish musllinux_1_1 wheels for maturin in [#651](https://github.com/PyO3/maturin/pull/651)
* Refactor `develop` command to act identical to PEP 660 editable wheels in [#653](https://github.com/PyO3/maturin/pull/653)
* Upgrade to Rust 2021 edition in [#655](https://github.com/PyO3/maturin/pull/655)
* Add support for powerpc64 and powerpc64le on FreeBSD by pkubaj in [#656](https://github.com/PyO3/maturin/pull/656)
* Fix false positive missing pyinit warning on arm64 macOS in [#673](https://github.com/PyO3/maturin/pull/673)
* Build without rustls on arm64 Windows by nsait-linaro in [#674](https://github.com/PyO3/maturin/pull/674)
* Publish Windows arm64 wheels to PyPI by nsait-linaro in [#675](https://github.com/PyO3/maturin/pull/675)
* Add support for building on Windows mingw platforms in [#677](https://github.com/PyO3/maturin/pull/677)
* Allow building for non-abi3 pypy wheels when the abi3 feature is enabled in [#678](https://github.com/PyO3/maturin/pull/678)
* Add support for cross compiling to different operating systems in [#680](https://github.com/PyO3/maturin/pull/680)

## [0.11.5] - 2021-10-13

* Fixed module documentation missing bug of pyo3 bindings in [#639](https://github.com/PyO3/maturin/pull/639)
* Fix musllinux auditwheel wrongly detects libc forbidden link in [#643](https://github.com/PyO3/maturin/pull/643)
* Fix finding conda Python interpreters on Windows by RobertColton in [#644](https://github.com/PyO3/maturin/pull/644)
* Fix Unicode metadata when uploading to PyPI in [#645](https://github.com/PyO3/maturin/pull/645)
* Fix incorrectly folded long `Summary` metadata
* Fix cross compilation for Python 3.10 in [#646](https://github.com/PyO3/maturin/pull/646)

## [0.11.4] - 2021-09-28

* Autodetect PyPy executables in [#617](https://github.com/PyO3/maturin/pull/617)
* auditwheel: add `libz.so.1` to whitelisted libraries in [#625](https://github.com/PyO3/maturin/pull/625)
* auditwheel: detect musl libc in [#629](https://github.com/PyO3/maturin/pull/629)
* Fixed Python 3.10 and later versions detection on Windows in [#630](https://github.com/PyO3/maturin/pull/630)
* Install entrypoint scripts in `maturin develop` command in [#633](https://github.com/PyO3/maturin/pull/633) and [#634](https://github.com/PyO3/maturin/pull/634)
* Add support for installing optional dependencies in `maturin develop` command in [#635](https://github.com/PyO3/maturin/pull/635)
* Fixed build error when `manylinux`/`compatibility` options is specified in `pyproject.toml` in [#637](https://github.com/PyO3/maturin/pull/637)

## [0.11.3] - 2021-08-25

* Add path option for Python source in [#584](https://github.com/PyO3/maturin/pull/584)
* Add auditwheel support for musllinux in [#597](https://github.com/PyO3/maturin/pull/597)
* `[tool.maturin]` options from `pyproject.toml` will be used automatically in [#605](https://github.com/PyO3/maturin/pull/605)
* Skip unavailable Python interpreters from pyenv in [#609](https://github.com/PyO3/maturin/pull/609)

## [0.11.2] - 2021-07-20

* Use UTF-8 encoding when reading `pyproject.toml` by domdfcoding in [#588](https://github.com/PyO3/maturin/pull/588)
* Use Cargo's `repository` field as `Source Code` in project URL in [#590](https://github.com/PyO3/maturin/pull/590)
* Fold long header fields in Python metadata in [#594](https://github.com/PyO3/maturin/pull/594)
* Fix `maturin develop` for PyPy on Unix in [#596](https://github.com/PyO3/maturin/pull/596)

## [0.11.1] - 2021-07-10

* Fix sdist error when VCS has uncommitted renamed files in [#585](https://github.com/PyO3/maturin/pull/585)
* Add `maturin completions <shell>` command to generate shell completions in [#586](https://github.com/PyO3/maturin/pull/586)

## [0.11.0] - 2021-07-04

* Add support for reading metadata from [PEP 621](https://www.python.org/dev/peps/pep-0621/) project table in `pyproject.toml` in [#555](https://github.com/PyO3/maturin/pull/555)
* Users should migrate away from the old `[package.metadata.maturin]` table of `Cargo.toml` to this new `[project]` table of `pyproject.toml`
* Add PEP 656 musllinux support in [#543](https://github.com/PyO3/maturin/pull/543)
* `--manylinux` is now called `--compatibility` and supports musllinux
* The pure rust install layout changed from just the shared library to a python module that reexports the shared library. This should have now observable consequences for users of the created wheel expect that `my_project.my_project` is now also importable (and equal to just `my_project`)
* Add support for packaging type stubs in pure Rust project layout in [#567](https://github.com/PyO3/maturin/pull/567)
* Support i386 on OpenBSD in [#568](https://github.com/PyO3/maturin/pull/568)
* Support Aarch64 on OpenBSD in [#570](https://github.com/PyO3/maturin/pull/570)
* Support Aarch64 on FreeBSD in [#571](https://github.com/PyO3/maturin/pull/571)
* `Cargo.toml`'s `authors` field is now optional per Rust [RFC 3052](https://github.com/rust-lang/rfcs/blob/master/text/3052-optional-authors-field.md) in [#573](https://github.com/PyO3/maturin/pull/573)
* Allow dotted keys in `Cargo.toml` by switch from `toml_edit` to `toml` crate in [#577](https://github.com/PyO3/maturin/pull/577)
* Fix source distribution with local path dependencies on Windows in [#580](https://github.com/PyO3/maturin/pull/580)

## [0.10.6] - 2021-05-21

* Fix corrupted macOS binary release in [#547](https://github.com/PyO3/maturin/pull/547)
* Fix build with the "upload" feature disabled by ravenexp in [#548](https://github.com/PyO3/maturin/pull/548)

## [0.10.5] - 2021-05-21

* Add `manylinux_2_27` support in [#521](https://github.com/PyO3/maturin/pull/521)
* Add support for Windows arm64 target in [#524](https://github.com/PyO3/maturin/pull/524)
* Always output PEP 600 platform tags in [#525](https://github.com/PyO3/maturin/pull/525)
* Fix missing `PyInit_<module_name>` warning with Rust submodule in [#528](https://github.com/PyO3/maturin/pull/528)
* Better cross compiling support for PyO3 binding on Unix in [#454](https://github.com/PyO3/maturin/pull/454)
* Fix s390x architecture support in [#530](https://github.com/PyO3/maturin/pull/530)
* Fix auditwheel panic with s390x wheels in [#532](https://github.com/PyO3/maturin/pull/532)
* Support uploading heterogeneous wheels by ravenexp in [#544](https://github.com/PyO3/maturin/pull/544)
* Warn about `pyproject.toml` missing maturin version constraint in [#545](https://github.com/PyO3/maturin/pull/545)

## [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 `--manylinux=[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

[1.11.0]: https://github.com/pyo3/maturin/compare/v1.10.2...v1.11.0
[1.10.2]: https://github.com/pyo3/maturin/compare/v1.10.1...v1.10.2
[1.10.1]: https://github.com/pyo3/maturin/compare/v1.10.0...v1.10.1
[1.10.0]: https://github.com/pyo3/maturin/compare/v1.9.6...v1.10.0
[1.9.6]: https://github.com/pyo3/maturin/compare/v1.9.5...v1.9.6
[1.9.5]: https://github.com/pyo3/maturin/compare/v1.9.4...v1.9.5
[1.9.4]: https://github.com/pyo3/maturin/compare/v1.9.3...v1.9.4
[1.9.3]: https://github.com/pyo3/maturin/compare/v1.9.2...v1.9.3
[1.9.2]: https://github.com/pyo3/maturin/compare/v1.9.1...v1.9.2
[1.9.1]: https://github.com/pyo3/maturin/compare/v1.9.0...v1.9.1
[1.9.0]: https://github.com/pyo3/maturin/compare/v1.8.7...v1.9.0
[1.8.7]: https://github.com/pyo3/maturin/compare/v1.8.6...v1.8.7
[1.8.6]: https://github.com/pyo3/maturin/compare/v1.8.5...v1.8.6
[1.8.5]: https://github.com/pyo3/maturin/compare/v1.8.4...v1.8.5
[1.8.4]: https://github.com/pyo3/maturin/compare/v1.8.3...v1.8.4
[1.8.3]: https://github.com/pyo3/maturin/compare/v1.8.2...v1.8.3
[1.8.2]: https://github.com/pyo3/maturin/compare/v1.8.1...v1.8.2
[1.8.1]: https://github.com/pyo3/maturin/compare/v1.8.0...v1.8.1
[1.8.0]: https://github.com/pyo3/maturin/compare/v1.7.8...v1.8.0
[1.7.8]: https://github.com/pyo3/maturin/compare/v1.7.7...v1.7.8
[1.7.7]: https://github.com/pyo3/maturin/compare/v1.7.6...v1.7.7
[1.7.6]: https://github.com/pyo3/maturin/compare/v1.7.5...v1.7.6
[1.7.5]: https://github.com/pyo3/maturin/compare/v1.7.4...v1.7.5
[1.7.4]: https://github.com/pyo3/maturin/compare/v1.7.3...v1.7.4
[1.7.3]: https://github.com/pyo3/maturin/compare/v1.7.2...v1.7.3
[1.7.2]: https://github.com/pyo3/maturin/compare/v1.7.1...v1.7.2
[1.7.1]: https://github.com/pyo3/maturin/compare/v1.7.0...v1.7.1
[1.7.0]: https://github.com/pyo3/maturin/compare/v1.6.0...v1.7.0
[1.6.0]: https://github.com/pyo3/maturin/compare/v1.5.1...v1.6.0
[1.5.1]: https://github.com/pyo3/maturin/compare/v1.5.0...v1.5.1
[1.5.0]: https://github.com/pyo3/maturin/compare/v1.4.0...v1.5.0
[1.4.0]: https://github.com/pyo3/maturin/compare/v1.3.2...v1.4.0
[1.3.2]: https://github.com/pyo3/maturin/compare/v1.3.1...v1.3.2
[1.3.1]: https://github.com/pyo3/maturin/compare/v1.3.0...v1.3.1
[1.3.0]: https://github.com/pyo3/maturin/compare/v1.2.3...v1.3.0
[1.2.3]: https://github.com/pyo3/maturin/compare/v1.2.2...v1.2.3
[1.2.2]: https://github.com/pyo3/maturin/compare/v1.2.1...v1.2.2
[1.2.1]: https://github.com/pyo3/maturin/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/pyo3/maturin/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/pyo3/maturin/compare/v1.0.1...v1.1.0
[1.0.1]: https://github.com/pyo3/maturin/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/pyo3/maturin/compare/v0.15.3...v1.0.0
[0.15.3]: https://github.com/pyo3/maturin/compare/v0.15.2...v0.15.3
[0.15.2]: https://github.com/pyo3/maturin/compare/v0.15.1...v0.15.2
[0.15.1]: https://github.com/pyo3/maturin/compare/v0.15.0...v0.15.1
[0.15.0]: https://github.com/pyo3/maturin/compare/v0.14.17...v0.15.0
[0.14.17]: https://github.com/pyo3/maturin/compare/v0.14.16...v0.14.17
[0.14.16]: https://github.com/pyo3/maturin/compare/v0.14.15...v0.14.16
[0.14.15]: https://github.com/pyo3/maturin/compare/v0.14.14...v0.14.15
[0.14.14]: https://github.com/pyo3/maturin/compare/v0.14.13...v0.14.14
[0.14.13]: https://github.com/pyo3/maturin/compare/v0.14.12...v0.14.13
[0.14.12]: https://github.com/pyo3/maturin/compare/v0.14.11...v0.14.12
[0.14.11]: https://github.com/pyo3/maturin/compare/v0.14.10...v0.14.11
[0.14.10]: https://github.com/pyo3/maturin/compare/v0.14.9...v0.14.10
[0.14.9]: https://github.com/pyo3/maturin/compare/v0.14.8...v0.14.9
[0.14.8]: https://github.com/pyo3/maturin/compare/v0.14.7...v0.14.8
[0.14.7]: https://github.com/pyo3/maturin/compare/v0.14.6...v0.14.7
[0.14.6]: https://github.com/pyo3/maturin/compare/v0.14.5...v0.14.6
[0.14.5]: https://github.com/pyo3/maturin/compare/v0.14.4...v0.14.5
[0.14.4]: https://github.com/pyo3/maturin/compare/v0.14.3...v0.14.4
[0.14.3]: https://github.com/pyo3/maturin/compare/v0.14.2...v0.14.3
[0.14.2]: https://github.com/pyo3/maturin/compare/v0.14.1...v0.14.2
[0.14.1]: https://github.com/pyo3/maturin/compare/v0.14.0...v0.14.1
[0.14.0]: https://github.com/pyo3/maturin/compare/v0.13.7...v0.14.0
[0.13.7]: https://github.com/pyo3/maturin/compare/v0.13.6...v0.13.7
[0.13.6]: https://github.com/pyo3/maturin/compare/v0.13.5...v0.13.6
[0.13.5]: https://github.com/pyo3/maturin/compare/v0.13.4...v0.13.5
[0.13.4]: https://github.com/pyo3/maturin/compare/v0.13.3...v0.13.4
[0.13.3]: https://github.com/pyo3/maturin/compare/v0.13.2...v0.13.3
[0.13.2]: https://github.com/pyo3/maturin/compare/v0.13.1...v0.13.2
[0.13.1]: https://github.com/pyo3/maturin/compare/v0.13.0...v0.13.1
[0.13.0]: https://github.com/pyo3/maturin/compare/v0.12.20...v0.13.0
[0.12.20]: https://github.com/pyo3/maturin/compare/v0.12.19...v0.12.20
[0.12.19]: https://github.com/pyo3/maturin/compare/v0.12.18...v0.12.19
[0.12.18]: https://github.com/pyo3/maturin/compare/v0.12.17...v0.12.18
[0.12.17]: https://github.com/pyo3/maturin/compare/v0.12.16...v0.12.17
[0.12.16]: https://github.com/pyo3/maturin/compare/v0.12.15...v0.12.16
[0.12.15]: https://github.com/pyo3/maturin/compare/v0.12.14...v0.12.15
[0.12.14]: https://github.com/pyo3/maturin/compare/v0.12.13...v0.12.14
[0.12.13]: https://github.com/pyo3/maturin/compare/v0.12.12...v0.12.13
[0.12.12]: https://github.com/pyo3/maturin/compare/v0.12.11...v0.12.12
[0.12.11]: https://github.com/pyo3/maturin/compare/v0.12.10...v0.12.11
[0.12.10]: https://github.com/pyo3/maturin/compare/v0.12.9...v0.12.10
[0.12.9]: https://github.com/pyo3/maturin/compare/v0.12.8...v0.12.9
[0.12.8]: https://github.com/pyo3/maturin/compare/v0.12.7...v0.12.8
[0.12.7]: https://github.com/pyo3/maturin/compare/v0.12.6...v0.12.7
[0.12.6]: https://github.com/pyo3/maturin/compare/v0.12.5...v0.12.6
[0.12.5]: https://github.com/pyo3/maturin/compare/v0.12.4...v0.12.5
[0.12.4]: https://github.com/pyo3/maturin/compare/v0.12.3...v0.12.4
[0.12.3]: https://github.com/pyo3/maturin/compare/v0.12.2...v0.12.3
[0.12.2]: https://github.com/pyo3/maturin/compare/v0.12.1...v0.12.2
[0.12.1]: https://github.com/pyo3/maturin/compare/v0.12.0...v0.12.1
[0.12.0]: https://github.com/pyo3/maturin/compare/v0.11.5...v0.12.0
[0.11.5]: https://github.com/pyo3/maturin/compare/v0.11.4...v0.11.5
[0.11.4]: https://github.com/pyo3/maturin/compare/v0.11.3...v0.11.4
[0.11.3]: https://github.com/pyo3/maturin/compare/v0.11.2...v0.11.3
[0.11.2]: https://github.com/pyo3/maturin/compare/v0.11.1...v0.11.2
[0.11.1]: https://github.com/pyo3/maturin/compare/v0.11.0...v0.11.1
[0.11.0]: https://github.com/pyo3/maturin/compare/v0.10.6...v0.11.0
[0.10.6]: https://github.com/pyo3/maturin/compare/v0.10.5...v0.10.6
[0.10.5]: https://github.com/pyo3/maturin/compare/v0.10.4...v0.10.5
[0.10.4]: https://github.com/pyo3/maturin/compare/v0.10.3...v0.10.4
[0.10.3]: https://github.com/pyo3/maturin/compare/v0.10.2...v0.10.3
[0.10.2]: https://github.com/pyo3/maturin/compare/v0.10.1...v0.10.2
[0.10.1]: https://github.com/pyo3/maturin/compare/v0.10.0...v0.10.1
[0.10.0]: https://github.com/pyo3/maturin/compare/v0.9.4...v0.10.0
[0.9.4]: https://github.com/pyo3/maturin/compare/v0.9.3...v0.9.4
[0.9.3]: https://github.com/pyo3/maturin/compare/v0.9.2...v0.9.3
[0.9.2]: https://github.com/pyo3/maturin/compare/v0.9.1...v0.9.2
[0.9.1]: https://github.com/pyo3/maturin/compare/v0.9.0...v0.9.1
[0.9.0]: https://github.com/pyo3/maturin/compare/v0.8.3...v0.9.0
[0.8.3]: https://github.com/pyo3/maturin/compare/v0.8.2...v0.8.3
[0.8.2]: https://github.com/pyo3/maturin/compare/v0.8.1...v0.8.2
[0.8.1]: https://github.com/pyo3/maturin/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/pyo3/maturin/compare/v0.7.9...v0.8.0
[0.7.9]: https://github.com/pyo3/maturin/compare/v0.7.8...v0.7.9
[0.7.8]: https://github.com/pyo3/maturin/compare/v0.7.7...v0.7.8
[0.7.7]: https://github.com/pyo3/maturin/compare/v0.7.6...v0.7.7
[0.7.6]: https://github.com/pyo3/maturin/compare/v0.7.5...v0.7.6
[0.7.5]: https://github.com/pyo3/maturin/compare/v0.7.4...v0.7.5
[0.7.4]: https://github.com/pyo3/maturin/compare/v0.7.3...v0.7.4
[0.7.3]: https://github.com/pyo3/maturin/compare/v0.7.2...v0.7.3
[0.7.2]: https://github.com/pyo3/maturin/compare/v0.7.1...v0.7.2
[0.7.1]: https://github.com/pyo3/maturin/compare/v0.7.0...v0.7.1
[0.7.0]: https://github.com/pyo3/maturin/compare/v0.6.1...v0.7.0
[0.6.1]: https://github.com/pyo3/maturin/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/pyo3/maturin/compare/v0.5.0...v0.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
