m4/pyproject_toml_metadata.m4: Allow Python 3.12#36869
m4/pyproject_toml_metadata.m4: Allow Python 3.12#36869vbraun merged 2 commits intosagemath:developfrom
m4/pyproject_toml_metadata.m4: Allow Python 3.12#36869Conversation
|
Someone please set #36561 back to "positive review" |
|
This is a nightmare. We have 10 places where you by hand have to fill 3.12 (or 3.13). This is m4. m4 I suppose is capable of getting LT_VERSION or LE_VERSION or whatever from some central place, |
That's right, Dima! But you are phrasing this rather ambiguously. Every Python distribution package has standard metadata, which includes the In a multirepo layout, as discussed at length in #36777, each distribution package in its separate GitHub repository would require a separate pull request to update their metadata. But thanks to our advanced monorepo tooling ( |
|
I am having a couple of issues here: Under some circumstances I ended up with a distribution (wheel) named UNKNOWN. I'm thinking this may be be because I had not run bootstrap or something (I sure did run bootstrap, but maybe I cleaned up without realizing). I don't know what can be done about this, but at least In an ideal world, sage-setup has an independent version number with independent releases, and sagemath-standard doesn't require a particular sage-setup version that is not released (this means: not even in beta, because if I'm going down the road of packaging sage-setup I need to be sure I'll be able to build betas without having to muck with the sage-setup that comes with the distro). My workflow here is something like
I'm still unsure how this will work out in the end... I'm also trying |
It's m4 so that we can have central synchronization of version info and shared boilerplate. |
Yes, in an ideal world, but I'm not going to do this while the modularization work is still ongoing. Right now, all versions are synchronized because otherwise we would have to test compatibility with other published versions. I don't have the bandwidth for this. |
|
|
Creating a ccache-friendly version of pypa/build would be worthwhile |
|
I do work from git checkout for develop and the tip of Volker's merging tree. For releases, I just use pypi sdist.
|
Would something like |
Have to look it up. I have not seen it yet, but one of my requirement is for it to be on pypi at release time. It is annoying if it isn't. |
OK, no, it wouldn't be on PyPI. There can only be one version of sage-conf on PyPI -- the one for installing from PyPI |
|
I misunderstood your sentence. I thought you meant something existing. Yes, It could be interesting, so long I can get a sdist from pypi at release time. |
That's it for that. Nevermind, it is not that onerous. Possibly a build option? |
Yes, we can look into doing that. |
Mark as future work for when I have time (which is technically never :) ) |
Does sage-setup change that much? What about having a slow release cycle? Even if sage-setup stays in the monorepo, it could have its own release version, and sage-the-distro could install sage-setup from the released version in pypi instead of the version in the monorepo. Again: if sage-the-distro aims to be a "reference distribution" it should eat its own dogfood, not have "shortcuts". Also as you explained in #36754 (comment), building sagemath-standard is not tested at all, so... But again, the answer IMO is to always build sage-the-lib using a released version of sage-setup (afaict, the last relevant change to sage_setup was the move to cython 3). |
This would be a blocker for me. Rebuilding sagelib from clean slate takes 1:20 (most of the time cythonizing 562 files, as cython doesn't support ccache afaik). Building gives 0 ccache misses, with 563 direct hits (before cpp) and 63 preprocessed hits. To be fair, I rerun the pep517 build with the exact same options as the setup.py build, and it took 2:08. The time difference may be in creating the wheel (i.e. zipping, which seems to be single thread). My options (via environment): I wonder if the |
This could be |
|
Let's get this in? |
|
Now the last setup.cfg is gone. |
|
I'm not reviewing 53 commits and 121 files changed just to change 3.11 for 3.12. I've fixed all the low level stuff so that sage works on python 3.12, and I've been running and testing it on python 3.12 for a couple of months, first on cython 0.29 and now on cython 3. It works, and if someone has python 3.12 installed on their system, just let them use it. In general, stop adding upper bounds on unreleased versions. Since they are unreleased, you don't know that they are incompatible. TL;DR: Just change the damn number, or kill the upper bound altogether. |
Yes, thanks, your report that it works is already acknowledged in the PR description. Thanks for all your work on it. |
|
I have tested this branch (merged with #36181, if not the package system was not accepted) in Fedora 39. Only two failed tests, |
|
The giac failure disappear with the giac package; the other one does not disappear even with the gap package instead of the system package
|
|
Happy new year, and thanks a lot for testing! Which doctest is failing in |
|
Happy new year! I am not able to isolate the test, maybe you can do it from the above attached crash log. It says only |
|
The giac failure disappear with the giac package; the other one does not disappear even with the gap package instead of the system package
|
|
Happy new year, and thanks a lot for testing! Which doctest is failing in |
|
Happy new year! I am not able to isolate the test, maybe you can do it from the above attached crash log. It says only |
|
If the crash is reproducible, could you run it with |
|
I attach the output of the test and the crash. |
|
According to error.txt, the segfault occurs in: FWIW, that's different from the failing run that I linked, https://github.com/sagemath/sage/actions/runs/6840579851/job/18600012965#step:11:13016, which segfaulted in many earlier lines, starting from line 1455. Edit: That's now #37026 |
|
I've added fedora-39 to the systems tested in #36181 |
|
I'm posting to record a vote of -1 on behalf of Tobias Diez. |
|
+1 for me. |
|
Documentation preview for this PR (built with commit 8fdedff; changes) is ready! 🎉 |
|
I've rebased it away from its open dependency. |
|
LGTM I wonder, since there already is a line |
|
Thanks @tornaria. I don't have a better answer than "this is traditional decoration". |
|
@tornaria Since this PR is "disputed", we have to include the vote tally. I'm assuming that your LGTM means that your -1 vote from #36869 (comment) is replaced by a +1 vote, which brings us to:
Hence the label "positive review" is correct. |
Ok, so it's the metadata that shows up e.g. in pypi (see: https://pypi.org/project/sagemath-standard/). I'm guessing that the |
|
Well, I think the classifiers are intended to be machine-readable. https://pypi.org/project/trove-classifiers/ is the canonical reference. The design is from over 20 years ago, PEP 301. |
sagemathgh-36869: `m4/pyproject_toml_metadata.m4`: Allow Python 3.12 <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> We allow Python 3.12 in the distribution packages of the Sage library, based on the downstream reports by @tornaria and @kiwifb After parts of this was done in other PRs in the meantime, this amounts to adding the missing classifier `Programming Language :: Python :: 3.12` in a bunch of files, including `m4/pyproject_toml_metadata.m4`. <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [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 accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36869 Reported by: Matthias Köppe Reviewer(s):
We allow Python 3.12 in the distribution packages of the Sage library, based on the downstream reports by @tornaria and @kiwifb
After parts of this was done in other PRs in the meantime, this amounts to adding the missing classifier
Programming Language :: Python :: 3.12in a bunch of files, includingm4/pyproject_toml_metadata.m4.📝 Checklist
⌛ Dependencies