Skip to content

Latest commit

 

History

History
434 lines (273 loc) · 16.3 KB

Changelog.md

File metadata and controls

434 lines (273 loc) · 16.3 KB

Changelog

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

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning (for the cli, not for the crate).

Unrelease

  • Add PEP 656 musllinux support in #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)

0.10.6 - 2021-05-21

  • Fix corrupted macOS binary release in #547
  • Fix build with the "upload" feature disabled by ravenexp in #548

0.10.5 - 2021-05-21

  • Add manylinux_2_27 support in #521
  • Add support for Windows arm64 target in #524
  • Always output PEP 600 platform tags in #525
  • Fix missing PyInit_<module_name> warning with Rust submodule in #528
  • Better cross compiling support for PyO3 binding on Unix in #454
  • Fix s390x architecture support in #530
  • Fix auditwheel panic with s390x wheels in #532
  • Support uploading heterogenous wheels by ravenexp in #544
  • Warn about pyproject.toml missing maturin version constraint in #545

0.10.4 - 2021-04-28

  • Interpreter search now uses python 3.6 to 3.12 in #495
  • Consider requires-python when searching for interpreters in #495
  • Support Rust extension as a submodule in mixed Python/Rust projects in #489

0.10.3 - 2021-04-13

  • The upload command is now implemented, it is mostly similar to twine upload. #484
  • Interpreter search now uses python 3.6 to 3.12
  • Add basic support for OpenBSD in #496
  • Fix the PowerPC platform by messense in #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
  • Basic s390x support

0.10.0 - 2021-04-02

  • Change manylinux default version based on target arch by messense in #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
  • Add --skip-existing option to publish by messense #444
  • maturn develop install dependencies automatically by messense #443
  • Load credential from pypirc using repository name instead of package name by messense #445
  • Add manylinux_2_24 support in #451
  • Improve error message when auditwheel failed to find versioned offending symbols in #452
  • Add auditwheel test to CI in #455
  • Fix sdist transitive path dependencies.
  • auditwheel choose higher priority tag when possible in #456, dropped auditwheel Cargo feature.
  • develop now writes an INSTALLER 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

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
  • Set executable bit on shared library by messense in #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
  • Recognize PYO3_CROSS_LIB_DIR for cross compiling with abi3 targeting windows.
  • package.metadata.maturin.classifier is renamed to classifiers by kngwyu in #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
  • Allow python 3 interpreter with debuginfo use maturin by inevity in #370
  • pypirc is checked for credentials by houqp in #374
  • Added support for PowerPC by mzpqnxow and programmerjake in #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).
  • Add support for PyO3 0.12's PYO3_PYTHON environment variable. #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

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

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
  • Added support for manylinux2014 by ijl in #273

Fixed

  • Remove python 2 from tags by ijl in #254
  • 32-bit wheels didn't work on linux. This has been fixed by dae in #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
  • Support settings all applicable fields from the python core metadata specification in Cargo.toml
  • Support for FreeBSD by kxepal #173

Fixed

  • Downgraded to structopt 0.2.16 to avoid the yanked 0.2.17

Added

  • Basic pypy support by ijl #105

Removed

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

Added

  • Support for conda environments on windows by paddyhoran #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 docker image makes it easy to build fully manylinux compliant wheels. See the readme for usage details.
  • Support for manylinux2010 by ijl #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 in your Cargo.toml with package.metadata.maturin.classifier. Implemented by ijl in #48. Example:
 [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

Changed

Fixed

Fixed

  • Added cargo lock to project #9

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

Changed

  • Renamed --bindings-crate to --bindings
  • Use deflate compression for zips by ijl #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. 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