Skip to content

Require nanobind 2.x when building for Python 3.9 - #351

Merged
godlygeek merged 1 commit into
bloomberg:mainfrom
godlygeek:work_around_nanobind_metadata
Aug 26, 2026
Merged

Require nanobind 2.x when building for Python 3.9#351
godlygeek merged 1 commit into
bloomberg:mainfrom
godlygeek:work_around_nanobind_metadata

Conversation

@godlygeek

Copy link
Copy Markdown
Contributor

Nanobind 3.x dropped support for Python 3.9, but its packaging metadata does not reflect that change. Work around this by declaring the restriction ourselves.

Note that as things stand today, anyone who wants to build any previously published sdist for Python 3.9 will need to supply the --build-constraint argument to pip install or the --build-constraints argument to uv pip install and provide a file containing a nanobind < 3 constraint, essentially providing the metadata on each pip install call that isn't currently reflected in the nanobind package's published metadata.

Relates-to wjakob/nanobind#1424

Nanobind 3.x dropped support for Python 3.9, but its packaging metadata
does not reflect that change. Work around this by declaring the
restriction ourselves.

Note that as things stand today, anyone who wants to build any
previously published sdist for Python 3.9 will need to supply the
`--build-constraint` argument to `pip install` or the
`--build-constraints` argument to `uv pip install` and provide a file
containing a `nanobind < 3` constraint, essentially providing the
metadata on each `pip install` call that isn't currently reflected in
the `nanobind` package's published metadata.

Signed-off-by: Matt Wozniski <mwozniski@bloomberg.net>
@godlygeek godlygeek self-assigned this Aug 25, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.56%. Comparing base (98e8154) to head (7da0975).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #351      +/-   ##
==========================================
- Coverage   77.57%   77.56%   -0.01%     
==========================================
  Files          57       57              
  Lines        6612     6611       -1     
  Branches      630      630              
==========================================
- Hits         5129     5128       -1     
  Misses       1483     1483              
Flag Coverage Δ
cpp 77.56% <ø> (-0.01%) ⬇️
python 77.56% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@godlygeek
godlygeek merged commit 919f3ce into bloomberg:main Aug 26, 2026
38 checks passed
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.

3 participants