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
Move to only using pyproject.toml
#10432
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
silv-io
requested review from
sannya-singal,
ackdav,
dominikschubert,
MEPalma,
thrau,
baermat,
bentsku,
viren-nadkarni,
macnev2013,
giograno,
alexrashed,
steffyP,
joe4dev,
dfangl,
pinzon,
simonrw and
calvernaz
as code owners
March 11, 2024 15:00
bentsku
reviewed
Mar 11, 2024
silv-io
force-pushed
the
move-to-pyproject-toml-core
branch
from
March 11, 2024 19:07
f039d39
to
635446d
Compare
silv-io
added
the
semver: patch
Non-breaking changes which can be included in patch releases
label
Mar 11, 2024
silv-io
force-pushed
the
move-to-pyproject-toml-core
branch
from
March 11, 2024 19:26
279db25
to
90b6043
Compare
silv-io
removed request for
simonrw,
dominikschubert,
calvernaz,
viren-nadkarni,
steffyP and
ackdav
March 11, 2024 21:47
silv-io
removed request for
giograno,
joe4dev,
macnev2013,
dfangl,
pinzon,
sannya-singal,
MEPalma and
baermat
March 11, 2024 21:47
silv-io
force-pushed
the
move-to-pyproject-toml-core
branch
2 times, most recently
from
March 12, 2024 10:56
4c823f2
to
0b88b6c
Compare
silv-io
force-pushed
the
move-to-pyproject-toml-core
branch
from
March 12, 2024 13:02
0b88b6c
to
68da688
Compare
alexrashed
approved these changes
Mar 12, 2024
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.
Awesome! This is quite a step forward towards up-to-date best-practices with python project config / packaging! 🚀
I only had a few questions (basically just for comments), afterwards we are good to go! 🚀 💯 🧹
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Using only
pyproject.toml
to define project metadata and dependencies is the new preferred way of doing things. Future distributions will only usepyproject.toml
instead of a combination ofpyproject.toml
,setup.py
andsetup.cfg
. Having all those things homogenized is helpful for introducing a multi-distribution project.Changes
setup.cfg
andsetup.py
(and all references thereof) in favor of storing all this information inpyproject.toml
%(extra)s
syntax from thesetup.cfg
but recursively reference the package itself (so if extratest
depends on extraruntime
, extratest
needs to contain"localstack-ext[runtime]"
). This means that the package itself needs to be marked as unsafe for the pinning of dependencies.build
package needs to be added, and the unsafe packages need to be adapted.build
package for building distributions instead ofsetup.py
plux
for creating the entrypoints instead ofsetup.py
pyproject.toml
in pinned dependency checker and align black version with pinned version)setup.cfg
defined the minimum Python version. This got transferred to thepyproject.toml
.black
beforehand did not properly deduce from thesetup.cfg
that it should only produce 3.8 compatible code. With this information now being in thepyproject.toml
it does. For this reason some of the existing code needs to be reformatted (every single generated AWS API)Testing
The pipeline should be green and the produced artifacts should remain equivalent
TODO
What's left to do: