-
Notifications
You must be signed in to change notification settings - Fork 251
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
Add PEP517 check suite and support disabling setup.py for sdists #26
Conversation
PEP-517 tests seem to pass okay locally on all versions, but CI does not like them. Need to investigate a bit further. EDIT: This was resolved. |
1b7bd43
to
0b20938
Compare
@sdispater any thought on the naming for the configuration section? The idea is to reuse this section for project specific configuration. Ideally would like to evolve this further later to provide project specific overrides etc. |
The table to store the setting should be The reason for that is I don't want people to start thinking that they can put any setting in this section (we already have I don't know how many users use this feature, and I don't mind breaking it this it was never documented and it needs improvements anyway but that's something to have in mind and we need to find a way to make it work. |
@sdispater I fear quite a few people are using this feature (based on incoming issues) as this is the only way today the extensions work. I am reluctant to recommend removing it as it is a useful feature. Also, |
@abn When I said If we are not comfortable in removing it, we will need to make it backward compatible, meaning we will need to support both ( So basically people would need to migrate from: build = "my_script.py" to [tool.poetry.build.config]
script = "my_script.py"
generate-setup-file = false |
@sdispater the change has been applied. |
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.
Looks good to me 👍
This change also improves tox configuration to use isolated builds and also adds integration environment
This change adds coverage for the following. - pip wheel build - pep517 compliance checks - pep517 builds for sdists and wheels - pip install with --no-binary :all:
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`.
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`.
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`.
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`.
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`. Co-authored-by: Bartosz Sokorski <[email protected]>
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`. Co-authored-by: Bartosz Sokorski <[email protected]>
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`. Co-authored-by: Bartosz Sokorski <[email protected]>
This is the first step in removing setup file generation from Poetry projects. With this change, projects that require a setup.py to be generated when a build script is used needs to explicitly set `tool.poetry.build.generate-setup-file`, introduced in python-poetry#26, to `true` in `pyproject.toml`. Co-authored-by: Bartosz Sokorski <[email protected]>
Hello 2023 people! Once again we have a great poetry point release breaking existing features. This previous statement is no longer true:
The previous syntax is now gone and your builds are breaking until you use the new syntax (which i couldn't find/search in the docs anywhere? it only exists here?) of: [tool.poetry.build.config]
script = "my_script.py"
generate-setup-file = true |
@mattpeople that config doesn't work, here's what I have: [tool.poetry.build.config]
generate-setup-file = true and I get this error:
The one in the description of this PR does work: [tool.poetry.build]
generate-setup-file = true |
This change will also mean that
tool.poetry.build = "build.py" usage
is now deprecated in favour oftool.poetry.build.script
. The older cofiguration will continue to work as expected.I have also added some additional converage for PEP-517 concerns in a new github actions workflow.
Integration Test Suite Notes
To run pytest integration cases locally, you can do so using one of the following.
tests/integration
.--integration
option will enable all tests with theintegration
marker. You can restrict running only these tests by specifyingtests/integration
directory as an argument.If developing/adding tests, you can simply mark a test as integration, and it will only be executed when the integration suite is executed.