build: Don't have both a pip and pip-tools requirements files.#37636
build: Don't have both a pip and pip-tools requirements files.#37636
Conversation
|
@timmc-edx I feel like you've thought about this a bit before so I'd love your thoughts on this change if you have a sec for it. Though, review from others is also welcome. |
|
I'm having some trouble seeing the logic here. Won't this still break during a period of incompatible latest/latest? Or is the idea that pip-tools will constrain the pip version somehow and ensure we get a compatible pair? |
|
The |
|
In a situation where latest of pip and pip-tools are incompatible, I would predict the following:
What am I missing here? |
|
...actually, why have pip.txt at all if pip-tools.txt includes it? |
|
Yea, I was thinking about that too, like do we need both? Thinking about it more, the pip-compile of |
Previously we would upgrade pip before we upgrade pip-tools. This breaks when the latest version of pip is not compatible with the current version of pip-tools as happened with jazzband/pip-tools#2252 If we re-order the steps so that we upgrade pip-tools first, we know that this upgrade call will work since it will run with the versions of pip and pip-compile that ran the last full upgrade. However in this case the pip.txt file is redundant as the pip-tools.txt file already has the latest version of pip that is compatible with the current version of pip-tools being installed. This changeset also updates the compile-requirements command to ignore the common_constraints entry for pip so that we can verify the upstream fix of pip-compile before we remove the entry from common_constraints.txt upstream.
Use the `pre-requirements` target to ensure that pip is installed at a version that's valid for the rest of the workflow.
647ad0e to
6f37e0b
Compare
timmc-edx
left a comment
There was a problem hiding this comment.
Looks good! Just needs updated PR title/desc.
We need the two to always be compatible so just have the pip-tools file which controls both the version of pip and pip-tools. See openedx/openedx-platform#37636 for rationale which is the same for this repo.
When we track the two packages separately it's easy to get into a deadlock situation where one prevents the other from being upgraded. Update both in lockstep so we know that the versions will work together when either one is updated. Similar to openedx/openedx-platform#37636
When we track the two packages separately it's easy to get into a deadlock situation where one prevents the other from being upgraded. Update both in lockstep so we know that the versions will work together when either one is updated. Similar to openedx/openedx-platform#37636
Due to openedx/openedx-platform#37636 the pip.txt file used during build does not exist anymore. This now installs the consolidated pip-tools.txt file.
Due to openedx/openedx-platform#37636 the pip.txt file used during build does not exist anymore. This now installs the consolidated pip-tools.txt file.
* feat: Add support for arm64 builds. This allows the docker image to be built on arm64 machines by paramaterizing based on the architecture. * fix: Point to correct pip requirements file. Due to openedx/openedx-platform#37636 the pip.txt file used during build does not exist anymore. This now installs the consolidated pip-tools.txt file.
Combine pip and pip-tools install into a single text file. We need them to always be in sync with each other so it doesn't make sense to separate their requirements files or upgrades. See openedx/openedx-platform#37636 for more details.
Combine pip and pip-tools install into a single text file. We need them to always be in sync with each other so it doesn't make sense to separate their requirements files or upgrades. See openedx/openedx-platform#37636 for more details.
The two should be built in sync not in separate files. See openedx/openedx-platform#37636 for more details.
See openedx/openedx-platform#37636 for more details.
See openedx/openedx-platform#37636 for more details.
This is applying the same fix as openedx/openedx-platform#37636 to the edx-search repo so that we can more safely do make upgrades in the future.
This is applying the same fix as openedx/openedx-platform#37636 to the edx-search repo so that we can more safely do make upgrades in the future.
Previously we would upgrade pip before we upgrade pip-tools. This
breaks when the latest version of pip is not compatible with the current
version of pip-tools as happened with jazzband/pip-tools#2252
If we re-order the steps so that we upgrade pip-tools first, we know
that this upgrade call will work since it will run with the versions of
pip and pip-compile that ran the last full upgrade.
However in this case the pip.txt file is redundant as the pip-tools.txt
file already has the latest version of pip that is compatible with the
current version of pip-tools being installed.
This changeset also updates the compile-requirements command to ignore
the common_constraints entry for pip so that we can verify the upstream
fix of pip-compile before we remove the entry from
common_constraints.txt upstream.