-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
GH-37929: [Python] begin moving static settings to pyproject.toml #41041
Conversation
|
I will try to investigate how other projects handle development versions with pyproject.toml! |
I found this! https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html#dynamic-metadata I'll get to work updating. |
006ce35
to
b0aa7e6
Compare
I am actively trying to figure out how to fix what's coming up in the build failures! |
b0aa7e6
to
f54d1ec
Compare
ab076e8
to
f9072a4
Compare
This is the current challenge for this PR. To migrate the static metadata to the pyproject.toml, we need to set a Setuptools_scm will only let you configure Callables in the setup.py. There are two callables we set, one for
As they currently are, we cannot configure these in the pyproject.toml, it will not accept a Python callable. The next part of the challenge is that if you move the version metadata to pyproject.toml, none of the configurations in I'm thinking that the next step is to contact the maintainers of setuptools_scm, and see if they have any advice. |
The setuptools_scm docs have an example of passing a callable in setup.py with using pyproject.toml: https://setuptools-scm.readthedocs.io/en/latest/customizing/#providing-project-local-version-schemes |
Also, it seems that we use |
I found open issues for the behaviour I am noticing: |
Locally, the test seems to be behaving decently:
The question is understanding why it is failing in CI. |
Note that we're not married to setuptools_scm. If we find out that something else would work better for us, then we can switch to it. Found this comparison using a quick search: jwodder/versioningit#46 (comment) |
|
9b0f5b4
to
b83e36a
Compare
I've rebased main to fix conflicts |
@github-actions crossbow submit -g python |
Revision: 50a35c1 Submitted crossbow builds: ursacomputing/crossbow @ actions-77bf8dcbea |
@github-actions crossbow submit example-python-minimal-build-ubuntu-venv |
Revision: 24054ef Submitted crossbow builds: ursacomputing/crossbow @ actions-c870c684c4
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this can be merged now, @jorisvandenbossche @pitrou any other concerns?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I would also say, let's merge this ;)
Thanks everyone! This turned out to be such a surprising doozy. |
…ml (apache#41041) ### Rationale for this change To migrate Arrow to modern Python packaging standards, see [PEP-517](https://peps.python.org/pep-0517/) and [PEP-518](https://peps.python.org/pep-0518/). * GitHub Issue: apache#37929 This PR focuses on migrating the static settings, the metadata and version, to pyproject.toml. Future PRs will migrate more of the build process to pyproject.toml. Lead-authored-by: anjakefala <[email protected]> Co-authored-by: Raúl Cumplido <[email protected]> Co-authored-by: Joris Van den Bossche <[email protected]> Signed-off-by: Jacob Wujciak-Jens <[email protected]>
After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit ad897bb. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about 2 possible false positives for unstable benchmarks that are known to sometimes produce them. |
Rationale for this change
To migrate Arrow to modern Python packaging standards, see PEP-517 and PEP-518.
This PR focuses on migrating the static settings, the metadata and version, to pyproject.toml. Future PRs will migrate more of the build process to pyproject.toml.