Dependencies: refactor requirements into server/client/dev, pin dependencies for server and dev #6767
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.
Main commits
requirements.txt
into three files, for client, server and development/testing.pip-tools
to the development dependencies.pip-tools
includespip-compile
, which lets us also pin the secondary dependencies installed by our main dependencies. With this, we can avoid issues such as this one:xmlsec
-related failures in CI/CD #6694. We can also add a pre-commit action to runpip-compile
automatically.File structure
To avoid cluttering up the top-level directory, I've moved the requirements file into the
requirements
folder.For
dev
andserver
, the requirements file with the.in
suffix represent the input files topip-compile
; the.txt
files are the requirements files generated bypip-compile
.client
does not have an.in
file, because we are not pinningclient
dependencies.Integration test failure
The integration test failure is due to this part of the
dev
Dockerfile inrucio/containers
:https://github.com/rucio/containers/blob/e75e7194cc9f404b46c977751c334b2b8f71b677/dev/Dockerfile#L75-L83
requirements.txt
does not exist anymore, so this fails. I can make a PR to address this inrucio/containers
, but the change would not be reflected until the next release, so I think the best way to handle this (once both PRs are approved) would be to:rucio/containers
rucio/dev
image on Docker Hub