-
-
Notifications
You must be signed in to change notification settings - Fork 488
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
m4/pyproject_toml_metadata.m4
: Allow Python 3.12
#36869
Conversation
m4/pyproject_toml_metadata.m4
, src/setup.cfg.m4
: Allow Python 3.12
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? |
m4/pyproject_toml_metadata.m4
, src/setup.cfg.m4
: Allow Python 3.12m4/pyproject_toml_metadata.m4
: Allow Python 3.12
Now the last setup.cfg is gone. |
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! 🎉 |
3783fe8
to
8fdedff
Compare
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. |
<!-- ^^^^^ 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.12
in a bunch of files, includingm4/pyproject_toml_metadata.m4
.📝 Checklist
⌛ Dependencies