-
Notifications
You must be signed in to change notification settings - Fork 395
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
added poetry dependency management #207
base: main
Are you sure you want to change the base?
Conversation
Wow, what a great timing! Looking more into this... |
Did you intend to push the lock file? Also, what about gcc? That's sometimes needed if the gcc is old |
About
|
But doesn't the lock file include highly OS-specific things? Maybe I'm reading too much into all these linux links. For the gcc thing, I guess we can ask people to conda install recent gcc if their version is too old. Manually. Does that match what you have in mind? Also, will this work with pip somehow? We'd like to add pip installation and want to make sure it runs in conda. (My apologies for the many small questions. I can look into any of them that you don't have time to answer/explore.) Happy to merge once we resolve this set of questions. |
Actually, lock file includes wheels for all major OSs simultaneously. See, an example:
I don't know exactly how, but
Yes, sure. We can combine
|
One more. The poetry can also work as an addition, without any changes to existing infrastructure. This PR takes exactly this approach. |
@okhat Could you, please, review it? Thanks |
The lock file is hardware/os independent. It's generally a bad idea to push it on libraries, however, since it constrains the dependencies to a single version. That is generally too restrictive outside of applications running in their dedicated environments (ref)
Poetry will generally work without a setup.py, as it is designed to use the newly (newer-ly, rather) pyproject.toml specification file. |
Ok @Alexandre-SCHOEPP so basically I can't merge this with the lock file, right? cc: @leo-gan what's a good way to deal with this? |
If we want reproducible tests (hence reproducible development) we need to merge the lock file into repo. |
I've added
poetry
.poetry
flawlessly installed all dependencies without any additional manual installation steps (with thepoetry install
command), includingtorch
nvidia-cuda...
, etc.poetry
checks all interdependencies between packages and locks all package versions inpoetry.lock
file. It is a much safer way to deal with dependencies.If you think it makes sense to switch to poetry, I'll add the necessary descriptions in the Readme file.
Thanks!