diff --git a/build_rust.py b/build_rust.py index 662474dcb47..31ef841d8f0 100644 --- a/build_rust.py +++ b/build_rust.py @@ -14,7 +14,6 @@ def build(setup_kwargs: Dict[str, Any]) -> None: target="synapse.synapse_rust", path=cargo_toml_path, binding=Binding.PyO3, - py_limited_api=True, # We force always building in release mode, as we can't tell the # difference between using `poetry` in development vs production. debug=False, diff --git a/poetry.lock b/poetry.lock index d916c627a03..218d905763a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2585,13 +2585,13 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( [[package]] name = "setuptools-rust" -version = "1.8.1" +version = "1.9.0" description = "Setuptools Rust extension plugin" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-rust-1.8.1.tar.gz", hash = "sha256:94b1dd5d5308b3138d5b933c3a2b55e6d6927d1a22632e509fcea9ddd0f7e486"}, - {file = "setuptools_rust-1.8.1-py3-none-any.whl", hash = "sha256:b5324493949ccd6aa0c03890c5f6b5f02de4512e3ac1697d02e9a6c02b18aa8e"}, + {file = "setuptools-rust-1.9.0.tar.gz", hash = "sha256:704df0948f2e4cc60c2596ad6e840ea679f4f43e58ed4ad0c1857807240eab96"}, + {file = "setuptools_rust-1.9.0-py3-none-any.whl", hash = "sha256:409caf49dcf7ad9bd510b4bf4011fbad504e745fae98f57fe1c06f3a97719638"}, ] [package.dependencies] diff --git a/pyproject.toml b/pyproject.toml index fb310589f75..59b371acd3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -382,7 +382,7 @@ furo = ">=2022.12.7,<2025.0.0" # runtime errors caused by build system changes. # We are happy to raise these upper bounds upon request, # provided we check that it's safe to do so (i.e. that CI passes). -requires = ["poetry-core>=1.1.0,<=1.9.0", "setuptools_rust>=1.3,<=1.8.1"] +requires = ["poetry-core>=1.1.0,<=1.9.0", "setuptools_rust>=1.3,<=1.8.1", "wheel"] build-backend = "poetry.core.masonry.api" @@ -400,13 +400,13 @@ skip = "cp36* cp37* pp37* *-musllinux_i686 pp*aarch64 *-musllinux_aarch64" # We need a rust compiler before-all = "curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain stable -y --profile minimal" -environment= { PATH = "$PATH:$HOME/.cargo/bin" } +environment = { PATH = "$PATH:$HOME/.cargo/bin", DIST_EXTRA_CONFIG = "/tmp/bdist.ini" } # For some reason if we don't manually clean the build directory we # can end up polluting the next build with a .so that is for the wrong # Python version. -before-build = "rm -rf {project}/build" -build-frontend = "build" +before-build = "rm -rf {project}/build && echo '[bdist_wheel]\npy_limited_api=cp38\n' > $DIST_EXTRA_CONFIG" +build-frontend = "build; args: --config-setting=--build-option=--py-limited-api=cp38" # Build ABI3 wheels for 3.8+ test-command = "python -c 'from synapse.synapse_rust import sum_as_string; print(sum_as_string(1, 2))'"