Skip to content

Support Python 3.15#927

Open
ikrommyd wants to merge 5 commits into
bloomberg:mainfrom
ikrommyd:support-py315
Open

Support Python 3.15#927
ikrommyd wants to merge 5 commits into
bloomberg:mainfrom
ikrommyd:support-py315

Conversation

@ikrommyd
Copy link
Copy Markdown

@ikrommyd ikrommyd commented May 18, 2026

Closes #920

Describe your changes
We switch to enum class instead of enum because cython uses IntFlag for enum and that messes up negative values in 3.15.
We also remove the ".llvm." in symbol check in hybrid_stack_trace as that no longer appears to be the case.
We add 3.15 in CI and we have to use the cibuildwheel release candidate to get 3.15.

Testing performed
Tested locally with 3.14 and 3.15 and the tests pass. We'll see what the CI says

@ikrommyd ikrommyd changed the title Support py315 Support python 3.15 May 18, 2026
@ikrommyd ikrommyd changed the title Support python 3.15 Support Python 3.15 May 18, 2026
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented May 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.34%. Comparing base (4a99614) to head (95bdbb4).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #927      +/-   ##
==========================================
- Coverage   92.43%   92.34%   -0.09%     
==========================================
  Files          99       99              
  Lines       11785    11785              
  Branches      429      429              
==========================================
- Hits        10893    10883      -10     
- Misses        892      902      +10     
Flag Coverage Δ
cpp 92.34% <ø> (-0.09%) ⬇️
python_and_cython 92.34% <ø> (-0.09%) ⬇️

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

☔ View full report in Codecov by Sentry.
📢 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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@da-woods
Copy link
Copy Markdown

I do intend to fix the negative enum issue in Cython before 3.15 - I just haven't decided exactly how (or done it) yet.

The other thing you could do rather than changing the numbers is change the enum to cpdef enum class. This creates a c++ enum class instead (which is probably fine here) and creates an IntEnum rather than an IntFlag which should avoid the issue.

@ikrommyd
Copy link
Copy Markdown
Author

@da-woods I tried switching to enum class and tests are fine locally. We'll see what CI says.

ikrommyd added 5 commits May 18, 2026 21:54
…arch for .llvm. in the symbol

Signed-off-by: Iason Krommydas <iason.krom@gmail.com>
Signed-off-by: Iason Krommydas <iason.krom@gmail.com>
Signed-off-by: Iason Krommydas <iason.krom@gmail.com>
Signed-off-by: Iason Krommydas <iason.krom@gmail.com>
Signed-off-by: Iason Krommydas <iason.krom@gmail.com>
@ikrommyd
Copy link
Copy Markdown
Author

Rebased to main. Had to fix conflicts in workflows.

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.

Support Python 3.15

3 participants