Fix docutils dependencies via source mirror
What does this MR do?
This MR (temporarily/iteratively) addresses our need to fix Python dependency versions, as we have had production issues due to floating dependencies.
Specifically:
- Mirrored and patched Python docutils to have fixed upstream dependencies. This is currently under my personal namespace, and should be moved as soon as convenient.
- Gitlab Mirrors:
- Github Mirror: https://github.com/docutils
- The original is hosted on sourceforge as an svn repository
- Installed mirror in lieu of using PyPI
- There is a more concise pip install command we can use, but it requires git, which is unavailable in the images that need docutils installed
pip install "docutils @ git+https://gitlab.com/axugl/docutils@0.21.1-frozen#egg=pkg&subdirectory=docutils"
- There is a more concise pip install command we can use, but it requires git, which is unavailable in the images that need docutils installed
Additional context in Distribution Maintainers Call and #1952 (comment 1929784975).
Related issues
Closes #1952
https://gitlab.com/gitlab-com/gitlab-OKRs/-/work_items/7019 - Long-term solution to Python packaging problem investigated here
!1841 (closed) - An alternate proposal to use pipenv instead
Checklist
See Definition of done.
For anything in this list which will not be completed, please provide a reason in the MR discussion
Required
-
Merge Request Title, and Description are up to date, accurate, and descriptive -
MR targeting the appropriate branch -
MR has a green pipeline on GitLab.com -
When ready for review, MR is labeled "~workflow::ready for review" per the Distribution MR workflow
Expected (please provide an explanation if not completing)
-
Test plan indicating conditions for success has been posted and passes - rst is correctly rendered in Gitlab via helm chart deployment
- The corresponding containers have the correct version of docutils installed when checked via shell
-
Documentation created/updated -
Integration tests added to GitLab QA -
The impact any change in container size has should be evaluated -
New dependencies are managed with dependencies.io
Edited by Alec Xu