Skip to content

Follow upstream drift, and stop the drift check crying wolf - #15

Merged
menjoo merged 1 commit into
mainfrom
claude/upstream-ci-check-failure-306irx
Aug 19, 2026
Merged

Follow upstream drift, and stop the drift check crying wolf#15
menjoo merged 1 commit into
mainfrom
claude/upstream-ci-check-failure-306irx

Conversation

@menjoo

@menjoo menjoo commented Aug 19, 2026

Copy link
Copy Markdown
Owner

The scheduled upstream-drift job has failed on all three of its runs. Only one
of those was news:

  • cucumber/gherkin dropped the trailing space from the Texas dialect's rule
    keyword ("Rule " -> "Rule"). It matters: GherkinParser matches block
    keywords as ":", so with the trailing space a Rule: line in a
    Texas feature was never recognised as a rule. Regenerating the dialect
    table fixes that.

The rest was noise. Each corpus tool cloned upstream shallowly and pinned
rev-parse HEAD, so the recorded Source line moved for any commit to those
repositories -- a README typo in the monorepo re-pinned all 50+12 Gherkin
fixtures -- and the drift check reported news every week the fixtures had not
moved. They now pin the last commit that touched testdata/, which is the
provenance the line was always meant to carry. That needs a path-scoped log, so
the clone is blobless rather than shallow; it stays cheap (~8 MB, under three
seconds for cucumber/gherkin) and the whole regeneration still runs in under
ten seconds.

Re-pinning to the last testdata commit moves all three Source lines once more,
with byte-identical corpora underneath.

The scheduled upstream-drift job has failed on all three of its runs. Only one
of those was news:

  * cucumber/gherkin dropped the trailing space from the Texas dialect's `rule`
    keyword ("Rule " -> "Rule"). It matters: GherkinParser matches block
    keywords as "<keyword>:", so with the trailing space a `Rule:` line in a
    Texas feature was never recognised as a rule. Regenerating the dialect
    table fixes that.

The rest was noise. Each corpus tool cloned upstream shallowly and pinned
`rev-parse HEAD`, so the recorded Source line moved for any commit to those
repositories -- a README typo in the monorepo re-pinned all 50+12 Gherkin
fixtures -- and the drift check reported news every week the fixtures had not
moved. They now pin the last commit that touched `testdata/`, which is the
provenance the line was always meant to carry. That needs a path-scoped log, so
the clone is blobless rather than shallow; it stays cheap (~8 MB, under three
seconds for cucumber/gherkin) and the whole regeneration still runs in under
ten seconds.

Re-pinning to the last testdata commit moves all three Source lines once more,
with byte-identical corpora underneath.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012FHrC4wQaCMKaHLZcnFiS5
@menjoo
menjoo merged commit 7c199bf into main Aug 19, 2026
4 checks passed
@menjoo
menjoo deleted the claude/upstream-ci-check-failure-306irx branch August 19, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant