You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f14d2b9
Browse filesBrowse the repository at this point in the historyBrowse files
fix: use unconstrained extensionTargets ('*') for all languages, not a version floor
Supersedes the earlier Java-only, version-floor approach with the correct
fix, based on further investigation:
- Extends the fix to all 4 languages that have ext/ext-library-sources
packs (java, csharp, go, python), not just java.
- Uses fully unconstrained extensionTargets: '*' instead of a version
floor ('>=X.Y.Z'). A floor only protects consumers on newer CLIs;
consumers on older CLIs below the floor would still be silently
dropped - the same bug, just shifted.
- Git archaeology on java/ext/qlpack.yml shows '*' was the original,
intentional design for ~2.9 years (Sept 2023-July 2026) until PR #166's
CLI-bump automation blindly regex-replaced every codeql/<pkg>: version
line - dependencies: and extensionTargets: alike - across all 4
languages, with no distinction between the two. This was an
unintentional regression, not a deliberate compatibility fix.
- extensionTargets never participates in codeql pack install/upgrade's
registry dependency resolution (confirmed empirically: no lock-file
entry is ever generated for it), so '*' here cannot 'fetch latest' the
way an unconstrained dependencies: entry would - it only means 'apply
regardless of which <lang>-all version is in play'.
- Dedicated research across all 4 languages' ExternalFlowExtensions.qll
history in github/codeql found exactly one genuine breaking change,
ever: neutralModel gained a kind column in both Java and C#
(codeql/java-all and codeql/csharp-all 0.6.2, CodeQL CLI v2.13.3, May
2023). Go and Python have never had a breaking change. Even that one
break fails loudly (QL compile error), never silently - so this repo's
own CI is a sufficient tripwire for any future break, without needing
a preemptive floor.
Also:
- pin-codeql-library-versions.sh and update-codeql-version.yml comments
updated to describe the '*' decision (was previously written to
describe a version-floor approach that was never actually correct).
- Added a short protective comment above extensionTargets: in all 6
qlpack.yml files explaining what happens if it's ever pinned/floored
again, so a future manual edit doesn't reintroduce #206.
Fixes#206
0 commit comments