-
Notifications
You must be signed in to change notification settings - Fork 67
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
Introduce Poetry as build system #620
base: next
Are you sure you want to change the base?
Conversation
Introduces main() method to ccm and then common if __name__ == '__main__': to run it
Fixes deprecated warnings about node12
Testing should cover:
|
https://jenkins.scylladb.com/view/master/job/scylla-master/job/byo/job/dtest-byo/640/. Works with no issues (the one fail is unrelated for sure)
https://jenkins.scylladb.com/job/scylla-staging/job/phala/job/python-driver-tests/2/consoleText. Not sure if tested |
I'm not sure, my personal experience with it isn't that great (we use in Argus for example)
even me myself wasn't very consistent with that: I tend to the first, just naming scylla and that's it
no we shouldn't lock, it's a library, and with locking it can complex the user of that library. |
Would love to hear it, my personal experience is positive, but there are plethora of other solutions we could use |
Overview
main()
method toccm
scriptWhy Poetry
Poetry enables to do both dependency management and building in one package. Setuptools could be used as well, but I find Poetry easier to use and it solves both problems at once. It is a modern build system with nice features like dependency groups (so we dont need multiple requirements files) etc. It also has good IDE support, making installing and managing dependencies much easier than it is today.
How to use it
Main difference between using requirements files or setup.py and Poetry is that poetry by default installs everything into venv and manages that env as well. Local development can be setup with simple
poetry install
, then you can either usepoetry run <your_cmd>
for running anything inside the poetry venv or you can simply usepoetry shell
to get into venv shell.If you want to also install test dependencies you can use
poetry install --with=test
instead. Building is done throughpoetry build
andpoetry publish
and you can change CCM version withpoetry version
.More importantly, CCM can be installed with
pip install git+...
even if you dont have poetry installed, so this change should not break any existing workflows.TODO
poetry publish
pytest.ini
intopyproject.toml
Testing
Questions for reviewers