- Fix deprecation warning from use of
wheel.bdist_wheel
.
- Fix regression in 1.10.0 where editable builds would be built in release mode
- Add
SETUPTOOLS_RUST_PEP517_USE_BASE_PYTHON
environment variable to use the base interpreter path when running inside a virtual environment to avoid recompilation when switching between virtual environments. #429 - Delay import of dependencies until use to avoid import errors during a partially complete install when multiple packages are installing at once. #437
- Deprecate
--build-temp
argument tobuild_rust
command (it does nothing). #457
- Deprecate
py_limited_api
option toRustExtension
in favour of always using"auto"
to configure this frombdist_wheel
. #410
- Fix regression in
install_extension
crashing since 1.8.0. #380
- Add support for setting a custom cargo profile with the
SETUPTOOLS_RUST_CARGO_PROFILE
environment variable. #364
- Remove direct imports from
distutils
. #336 - Include
py.typed
when packaging to denote that setuptools-rust includes type hints. #338
- Add support for
pyproject.toml
configuration using[tool.setuptools-rust]
options. #348
- Fix
plat_name
handling in the casebdist_wheel.plat_name
is set via configuration file (e.g.,setup.cfg
). #352
- Prefer passing
--crate-type
option to cargo if "toolchain >= 1.64". #322
- Fix a bug where rebuilding the library would cause any running processes using it to segfault. #295
- Fix
setup.cfg
format for compatibility with "poetry==1.4.0". #319
- Fix regression in
dylib
build artifacts not being found since 1.5.0. #290 - Fix regression in sdist missing examples and other supplementary files since 1.5.0. #291
- Fix regression in
get_lib_name
crashing since 1.5.0. #280 - Fix regression in
Binding.Exec
builds with multiple executables not finding built executables since 1.5.0. #283
- Add support for extension modules built for wasm32-unknown-emscripten with Pyodide. #244
- Locate cdylib artifacts by handling messages from cargo instead of searching target dir (fixes build on MSYS2). #267
- No longer guess cross-compile environment using
HOST_GNU_TYPE
/BUILD_GNU_TYPE
sysconfig variables. #269
- Fix crash when checking Rust version. #263
- Increase minimum
setuptools
version to 62.4. #246
- Add
cargo_manifest_args
to support locked, frozen and offline builds. #234 - Add
RustBin
for packaging binaries in scripts data directory. #248
Exec
bindingRustExtension
withscript=True
is deprecated in favor ofRustBin
. #248- Errors while calling
cargo metadata
are now reported back to the user #254 quiet
option will now suppress output ofcargo metadata
. #256setuptools-rust
will now matchcargo
behavior of not setting--target
when the selected target is the rust host. #258- Deprecate
native
option ofRustExtension
. #258
- If the sysconfig for
BLDSHARED
has no flags,setuptools-rust
won't crash anymore. #241
- Increase minimum
setuptools
version to 58. #222
- Fix crash when
python-distutils-extra
linux package is installed. #222 - Fix sdist built with vendored dependencies on Windows having incorrect cargo config. #223
- Drop support for Python 3.6. #209
- Fix building macOS arm64 wheel with cibuildwheel. #217
- Removed dependency on
tomli
to simplify installation. #200 - Improve error messages on invalid inputs to
rust_extensions
keyword. #203
- Fix regression from
setuptools-rust
1.1.0 which broke builds for thex86_64-unknown-linux-musl
target. #194 - Fix
--target
command line option being unable to take a value. #195 - Fix regression from
setuptools-rust
1.0.0 which broke builds on arm64 macos conda builds. #196 - Fix regression from
setuptools-rust
1.1.0 which incorrectly converted library extension suffixes to the "abi3" suffix whenpy_limited_api
was unspecified. #197
- Fix incompatibility with Python 3.6.0 using default values for NamedTuple classes. #184
- Stop forcing the
msvc
Rust toolchain for Windows environments using thegnu
toolchain. #187
- Add
--target
command line option for specifying target triple. #136 - Add new default
"auto"
setting forRustExtension.py_limited_api
. #137 - Support very verbose cargo build.rs output. #140
- Switch to
tomli
dependency. #174
- Remove
test_rust
command. (python setup.py test
is deprecated.) #129 - Remove
check_rust
command. #131 - Move
tomlgen_rust
command to separatesetuptools-rust-tomlgen
package. #167
- Use info from sysconfig when cross-compiling. #139
- Put Rust extension module binary under
build/lib.*
directory. #150 - Fix
Exec
binding with console scripts. #154
- Fix some files unexpectedly missing from
sdist
command output. #125
- Bump minimum Python version to Python 3.6.
- Support building x86-64 wheel on arm64 macOS machine. #114
- Add macOS universal2 wheel building support. #115
- Add option to cargo vendor crates into sdist. #118
- Respect
PYO3_PYTHON
andPYTHON_SYS_EXECUTABLE
environment variables if set. #96 - Add runtime dependency on setuptools >= 46.1. #102
- Append to, rather than replace, existing
RUSTFLAGS
when building. #103
- Set executable bit on shared library. #110
- Don't require optional
wheel
dependency. #111 - Set a more reasonable LC_ID_DYLIB entry on macOS. #119
- Respect
CARGO_BUILD_TARGET
environment variable if set. #90 - Add
setuptools_rust.__version__
and require setuptools >= 46.1. #93
- Fix support for Python 3.5. #86
- Fix further cases of building for 32-bit Python on 64-bit Windows. #87
- Fix building on Linux distributions that use musl (e.g. Alpine) out of the box. #80
- Fix support for namespace packages. #79
- Fix building for 32-bit Python on 64-bit Windows. #77
- Remove python 2 support. #53
- Fix compatibility with
cffi
. #68 - Add support for pyo3
0.12
'sPYO3_PYTHON
setting. #71
- Fix tomlgen_rust generating invalid
Cargo.toml
files. - Fix tomlgen_rust setting wrong path in
.cargo/config
.
- Added license file #41
- Add
html-py-ever
example
path
inRustExtension
now defaults toCargo.toml
- Add
rustc_flags
andverbose
as options - Adopted black code style
- Moved changelog to markdown
- This release significantly improves performance
- Fix build_rust crashing on Cargo.toml manifests without a name key in the [lib] section
- Fix single quotes not being handled when parsing Cargo.toml
- Remove unicode_literals import as Python 2
distutils
does not support Unicode
- Find inplace extensions and automatically generate
Cargo.toml
manifests #29
- Improve compatibility of build_rust with build_ext #28
- Ignore strip option when platform is win32 #26
- Fix script generation for bdist_wheel
- Added native parameter
- Fix script generation for executables
- Support multiple rust binaries #24
- Generate console-script for Binding.Exec #22
- Do not run cargo check for sdist command #18
- Remove extra python3 file extension for executables.
- Allow to strip symbols from executable or dynamic library.
- Use PyO3 0.2 for example.
- Allow to build executable and pack with python package.
- Use PyO3 0.1 for example.
- check command respects optional option
- Don't fail when Rust isn't installed while all extensions are optional
- Fix pypi source distribution
- Add optional option to RustExtension #16
- Support CARGO_TARGET_DIR variable #14
- Add support for PyO3 project https://github.com/PyO3/PyO3
- Add support for no-binding mode
- Added support for "cargo test"
- Fixed unbound method type error #4
- Added support for "cargo check"
- Added "--qbuild" option for "build_rust" command. Set "quiet" mode for all extensions.
- Added "--debug" and "--release" options for "build_rust" command.
- Fixed cargo manifest absolute path detection
- Fixed bdist_egg and bdist_wheel support
- setuptool's clean command cleans rust project as well
- Use absolute path to cargo manifest
- Enable debug builds for inplace builds, otherwise build release
- Simplify monkey patches
- Fix compatibility with some old versions of setuptools
- Fixed OSX extension compilation
- Use distutils exceptions for errors
- Add rust version check for extension
- Cleanup example project
- Fix bdist_egg and bdist_wheel commands
- Initial release