Skip to content

Conversation

@dimpase
Copy link
Member

@dimpase dimpase commented Oct 30, 2025

This provides support for Python 3.14, and drops Python 3.11

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

@cxzhong
Copy link
Contributor

cxzhong commented Oct 30, 2025

We also need to publish new wheels of cypari2, because the old wheels are not compatible with new cysignals. If someone install the old cypari2 wheels but with new cysignals, it will lead to segfault.

@github-actions
Copy link

github-actions bot commented Oct 30, 2025

Documentation preview for this PR (built with commit e2ba58d; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@cxzhong
Copy link
Contributor

cxzhong commented Oct 30, 2025

some CI distro runs on Python 3.11. You need to fix it. Just change the compatible python version to 3.12-3.14. I hope in next beta version we can support python 3.14 experimently.

[cysignals-1.12.6]   [spkg-install] meson-python: error: The package requires Python version >=3.12, running on 3.11.2
[cysignals-1.12.6]   [spkg-install] 
[cysignals-1.12.6]   [spkg-install] ERROR Backend subprocess exited when trying to invoke build_wheel
[cysignals-1.12.6]   [spkg-install] ********************************************************************************
[cysignals-1.12.6]   [spkg-install] Error building a wheel for cysignals-1.12.6
[cysignals-1.12.6]   [spkg-install] ********************************************************************************

@dimpase

@tobiasdiez
Copy link
Contributor

some CI distro runs on Python 3.11. You need to fix it. Just change the compatible python version to 3.12-3.14. I hope in next beta version we can support python 3.14 experimently.

see #40936

We also need to publish new wheels of cypari2

see sagemath/cypari2#190

@cxzhong
Copy link
Contributor

cxzhong commented Oct 30, 2025

some CI distro runs on Python 3.11. You need to fix it. Just change the compatible python version to 3.12-3.14. I hope in next beta version we can support python 3.14 experimently.

see #40936

We also need to publish new wheels of cypari2

see sagemath/cypari2#190

Thank you for your work. I think we can merge this in next beta version.

@dimpase
Copy link
Member Author

dimpase commented Oct 30, 2025

testing cypari with python 3.14 now

@enriqueartal
Copy link
Contributor

I built sage with python 3.14 but basically all the tests failed due to segmentation faults. May this PR help to solve the issue?
I did some random tests in the command line and they worked.

@cxzhong
Copy link
Contributor

cxzhong commented Oct 31, 2025

I built sage with python 3.14 but basically all the tests failed due to segmentation faults. May this PR help to solve the issue?
I did some random tests in the command line and they worked.

because of cysignals and cypari2 are not compatible. You install cysignals 1.12.4 But cypari2 is built with 1.12.6

@dimpase dimpase changed the title bump cysignals to 1.12.6 bump cysignals to 1.12.6, cypari to 2.2.4 Oct 31, 2025
@cxzhong
Copy link
Contributor

cxzhong commented Oct 31, 2025

And we require #40936 to let CI pass.

@dimpase
Copy link
Member Author

dimpase commented Oct 31, 2025

I added #40936 to dependencies

@enriqueartal
Copy link
Contributor

I managed to build it if Fedora 43 (python 3.14) with this versions, but the tests failed with segmentations faults.

@dimpase
Copy link
Member Author

dimpase commented Oct 31, 2025

Are you on cpython 3.14t, or on 3.14?

We aren't ready for 3.14t I suppose.

@enriqueartal
Copy link
Contributor

Python version in Fedora 43 is 3.14.0.

@dimpase
Copy link
Member Author

dimpase commented Oct 31, 2025

Can you start sage, or it crashes on startup as well?

@enriqueartal
Copy link
Contributor

It starts and I can make computations. I tried a small file, galois_group_perm.py to run the examples one by one, and it works, with ./sage -t the same file gets only segmentation faults.

@dimpase
Copy link
Member Author

dimpase commented Nov 1, 2025

looks like a different version of a package gets loaded in the testing environment.

@cxzhong
Copy link
Contributor

cxzhong commented Nov 1, 2025

It starts and I can make computations. I tried a small file, galois_group_perm.py to run the examples one by one, and it works, with ./sage -t the same file gets only segmentation faults.

It is because you build version and runtime version is different. First, run ./sage -sh then pip install --upgrade cysignals, next, run pip install --upgrade cypari2. Then run make to rebuild the sagelib. I think it will be better

@dimpase
Copy link
Member Author

dimpase commented Nov 1, 2025 via email

@enriqueartal
Copy link
Contributor

I did not rebuild sagelib, but the problem was the same with the previous versions of cysignals and cypari, and also now after rebuilding sagelib. I will try a fresh build

@cxzhong
Copy link
Contributor

cxzhong commented Nov 1, 2025

I did not rebuild sagelib, but the problem was the same with the previous versions of cysignals and cypari, and also now after rebuilding sagelib. I will try a fresh build

Can you send the doctest log to us?

@enriqueartal
Copy link
Contributor

I send the log of one test.
a.log

@enriqueartal
Copy link
Contributor

And the crash logs ...
crash.log

@dimpase
Copy link
Member Author

dimpase commented Nov 2, 2025

what if you run tests single-threaded, i.e.
./sage -tp1 <file> ?

@enriqueartal
Copy link
Contributor

what if you run tests single-threaded, i.e. ./sage -tp1 <file> ?

Same thing. It seems to be a test problem.

vbraun pushed a commit to vbraun/sage that referenced this pull request Nov 2, 2025
This provides support for Python 3.14, and drops Python 3.11

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->

- sagemath#40936: needed for CI to pass

URL: sagemath#41116
Reported by: Dima Pasechnik
Reviewer(s): Chenxin Zhong
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants