modernized build#2070
Conversation
build packages based on metadata (pyproject.toml+setup.cfg). barebone setup.py is needed for compability, e.g. `pip install -e`
test would fail one run (stopping instead of stopped) and pass the next.
| roundrobin >=0.0.2 | ||
| typing-extensions >=3.7.4.3 | ||
| Jinja2 <3.1.0 | ||
| pywin32;platform_system=='Windows' |
There was a problem hiding this comment.
i was unable to get it working with pywin32 being an extras_require as in the setup.py case, however this should be the same(?). pywin32 only needed when running on windows.
https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#platform-specific-dependencies
|
LGTM. Have you tested it on windows? I have a windows box somewhere, but I can't be bothered to fire it up :) |
If you mean the changed way pywin32 is included? I could've actually just tested it myself.. without writing an obscure comment like that, my bad. on "linux" (Windows 10 WSL2 with ubuntu 21.04): on windows 10: |
|
I’m gonna give Heyman a day or two to chime in, but it looks all good to me! |
|
Looks good to me 👍 |
i mentioned in a previous PR #2040 that there was problems adding locust as a git dependency; pip or pip-tools got confused that there was a
pyproject.toml, but nobuild-systemsection available. all it contained was settings forblack.there have been other projects having the same problem.
the underlying problem seems to have been fixed now, so it is indeed possible to have locust as a git dependency (which I realized after implementing this...). but there are probably other benefits of moderizing the build setup to be PEP517 and PEP518 compatible.
since most stuff already was present in
setup.cfg, it was quite an easy transition to move away fromsetup.py, however editable installs is not yet supported bypyproject.tomland hence a bare bonesetup.pyis needed.most work had to be done in the github workflow and tox settings.
regarding the changes of
commandtopython -m <module>intest.yml:https://snarky.ca/why-you-should-use-python-m-pip/