Skip to content

Fix a typo in check_dependencies.py which makes setuptools_rust a running dependency#19417

Merged
devonh merged 2 commits intoelement-hq:developfrom
renaudallard:patch-2
Feb 3, 2026
Merged

Fix a typo in check_dependencies.py which makes setuptools_rust a running dependency#19417
devonh merged 2 commits intoelement-hq:developfrom
renaudallard:patch-2

Conversation

@renaudallard
Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • Pull request is based on the develop branch
  • Code style is correct (run the linters)

There is a typo in check_dependencies.py which makes setuptools_rust a runtime requirement, but there is no need for it at runtime. This patch solves the typo. I tested starting 1.146.0 with this patch and without setuptools_rust and it starts correctly

@renaudallard renaudallard requested a review from a team as a code owner January 30, 2026 09:35
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jan 30, 2026

CLA assistant check
All committers have signed the CLA.

The typo makes it a requirement to have setuptools_rust as a runtime dependency.
Copy link
Copy Markdown
Member

@anoadragon453 anoadragon453 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your contribution! A couple notes:

  • This appears to make tests.util.test_check_dependencies.TestDependencyChecker.test_setuptools_rust_ignored fail. Is the test wrong?
  • The issue that the code in question links to (python-poetry/poetry#6154) seems to be closed. Can this workaround be dropped instead?

Even though we switched to maturin as the build backend, we still make use of setuptools_rust so that poetry install can continue to work. But @renaudallard you may not have run into issues on this branch unless you cleared your build cache and ran poetry install --extras all?

Use packaging.utils.canonicalize_name() to normalize the package name
when checking if setuptools-rust should be ignored as a runtime dependency.
This handles both underscore and hyphen variants of the package name.
Also update the test to use the canonical hyphenated form.
@renaudallard
Copy link
Copy Markdown
Contributor Author

renaudallard commented Feb 2, 2026

My fix was enough to solve the dependency in OpenBSD ports system, but it indeed fails on tests. I have implemented a patch on the OpenBSD ports system for synapse (https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/net/synapse/), but having it upstream would solve the issue in a proper way.

While poetry#6154 was fixed in Poetry 1.6.0, that fix only applies to poetry install.
System package managers (e.g., OpenBSD's py3-synapse) use pip with poetry-core as the build backend, which still exposes build dependencies as runtime dependencies. Without this workaround, Synapse refuses to start on these systems unless setuptools-rust is installed as a runtime dependency. So the workaround is still necessary unfortunately.

@devonh
Copy link
Copy Markdown
Member

devonh commented Feb 3, 2026

@renaudallard Are you able to sign the CLA so we can merge this PR?

@renaudallard
Copy link
Copy Markdown
Contributor Author

Sure, it's done

Copy link
Copy Markdown
Member

@devonh devonh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking the time to do this and make Synapse better for all packagers.

@devonh devonh merged commit 98a540a into element-hq:develop Feb 3, 2026
74 of 76 checks passed
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Feb 10, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [element-hq/synapse](https://github.com/element-hq/synapse) | minor | `1.146.0` → `1.147.0` |

---

### Release Notes

<details>
<summary>element-hq/synapse (element-hq/synapse)</summary>

### [`v1.147.0`](https://github.com/element-hq/synapse/releases/tag/v1.147.0)

[Compare Source](element-hq/synapse@v1.146.0...v1.147.0)

### Synapse 1.147.0 (2026-02-10)

No significant changes since 1.147.0rc1.

### Synapse 1.147.0rc1 (2026-02-03)

#### Bugfixes

- Fix memory leak caused by not cleaning up stopped looping calls. Introduced in v1.140.0. ([#&#8203;19416](element-hq/synapse#19416))
- Fix a typo that incorrectly made `setuptools_rust` a runtime dependency. ([#&#8203;19417](element-hq/synapse#19417))

#### Internal Changes

- Prune stale entries from `sliding_sync_connection_required_state` table. ([#&#8203;19306](element-hq/synapse#19306))
- Update "Event Send Time Quantiles" graph to only use dots for the event persistence rate (Grafana dashboard). ([#&#8203;19399](element-hq/synapse#19399))
- Update and align Grafana dashboard to use regex matching for `job` selectors (`job=~"$job"`) so the "all" value works correctly across all panels. ([#&#8203;19400](element-hq/synapse#19400))
- Don't retry joining partial state rooms all at once on startup. ([#&#8203;19402](element-hq/synapse#19402))
- Disallow requests to the health endpoint from containing trailing path characters. ([#&#8203;19405](element-hq/synapse#19405))
- Add notes that new experimental features should have associated tracking issues. ([#&#8203;19410](element-hq/synapse#19410))
- Bump `pyo3` from 0.26.0 to 0.27.2 and `pythonize` from 0.26.0 to 0.27.0. Contributed by [@&#8203;razvp](https://github.com/razvp) @&#8203; ERCOM. ([#&#8203;19412](element-hq/synapse#19412))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zLjYiLCJ1cGRhdGVkSW5WZXIiOiI0My4zLjYiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3877
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants