git: raise the minimum version to 2.47.3 and publish the tested matrix #536
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Reference
sixfold-space/madtea#536
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
ADR 0038 pins the minimum git version at 2.38.0. madtea does not work on 2.38.0, so that record states a floor the tool does not meet. This raises the floor to the git in current Debian stable and publishes what CI actually tests.
The defect
TestMadTRefInspectGrepAtLocalOnlyReffails on git 2.38.0:gitcli(7)documents--end-of-optionsas a general convention: everything after it is not an option, and it exists because--is already taken in commands that separate revisions from paths. madtea uses it to stop a semi-trusted ref being parsed as a flag, which is correct usage. git below some version does not honour its own documented contract forgrep.The 2.43.1 release note says the form "failed to interpret
--revas a rev, and--pathas a path. This was fixed for many programs likeresetandcheckout." It never namesgrep, so it does not establish a version wheregrepworks.Measured: fails on 2.38.0, works on 2.47.3. Everything between is unmeasured.
Why the floor moves to 2.47.3
Current Debian stable. Debian freezes package versions at release and backports only security fixes, so trixie carries 2.47.3 for its whole life. That makes it a stable, publishable target rather than a number derived from changelog archaeology, and it removes the need to determine exactly where the
grepbehaviour changed.Versions measured from the distro repositories on 2026-09-17, not from a table:
Ubuntu 24.04 is the notable exclusion: it is the current Ubuntu LTS, supported to 2029. Its package is
1:2.43.0-1ubuntu7.3, and its changelog carries only CVE backports (27613, 27614, 46835, 48384, 48385, 48386, 50349, 52006, 32002). The--end-of-optionsfix is a bugfix, not a CVE, so it is almost certainly absent there.macOS 15's bundled git is excluded, but Homebrew installs 2.55.0 and takes precedence on PATH, so a Mac user who installs git at all is in scope. The version gate added in #524 gives anyone below the floor a clear error naming the found and required versions, not a mis-parse.
Work
internal/gitexecand its tests.git-matrixjob. With the floor at trixie's own git, the floor leg needs no source build, which removes the GPG verification, the kernel.org download, themadtea-gitcachevolume and the Rust toolchain problem. The job should cover the published in-scope versions using pinned images, not source builds.Acceptance
git-matrixjob runs green, and has been executed before it merges.Refs #525, #524.