chore: pin GitPython for release bump - #339
Conversation
Signed-off-by: AlexTranAmz <167144297+AlexTranAmz@users.noreply.github.com>
820599b to
10859df
Compare
| @@ -1 +1,2 @@ | |||
| python-semantic-release == 10.6.* No newline at end of file | |||
| python-semantic-release == 10.6.* | |||
| GitPython == 3.1.59 No newline at end of file | |||
There was a problem hiding this comment.
GitPython is not imported anywhere in this repo (grep -rn "import git" finds nothing) — it is a transitive dependency of python-semantic-release. Hard-pinning a transitive dep to an exact patch version has two downsides worth weighing:
- Resolver fragility. If a future
python-semantic-release 10.6.xtightens itsGitPythonrange past3.1.59,pip install -r requirements-release.txtin thereleaseenv (hatch.toml:40) fails outright rather than resolving. The release-bump job then breaks for a reason unrelated to this repo. - No patch uptake. GitPython has a history of security advisories (e.g. CVE-2022-24439, CVE-2023-40590, CVE-2023-41040 — untrusted search path / argument injection). An
==pin means a fixed patch release will not be picked up until someone edits this line by hand.
Every other requirement in this repo uses a minor-series wildcard (python-semantic-release == 10.6.*, and all of requirements-testing.txt). Suggest matching that convention:
GitPython == 3.1.*
If an exact pin is deliberate — i.e. a specific GitPython release broke the bump — please add a short comment naming the breakage (as requirements-testing.txt:8-9 does for black), so a future reader knows when the pin can be relaxed. The commit message ("chore: pin GitPython for release bump") does not record the reason.
python-semantic-release/python-semantic-release#1477 - GitPython break semantic, pin to an older version pending fixes from upstream