Skip to content

Fix extraction push race and churn; pin deps; bump actions - #5

Merged
sclintonowasp merged 1 commit into
mainfrom
fix-workflows
Oct 28, 2026
Merged

sclintonowasp merged 1 commit into
mainfrom
fix-workflows

Conversation

@sclintonowasp

Copy link
Copy Markdown
Member

Follow-up fixes for the corpus workflows, from what showed up after merging #1–#4.

Extraction push race. When #2 and #3 merged seconds apart, two extraction runs started together and the first one's push to main was rejected. Now runs queue (concurrency: extract-pdf-text), check out the latest main rather than the triggering commit, and rebase-and-retry the push if a merge still lands mid-run.

Extracted-text churn.

  • extract_pdf_text.py no longer rewrites a file whose extracted text is unchanged. Before, every run touched every file just to bump the extracted: date in the header.
  • pypdf and pyyaml were unpinned. Now pinned to pypdf==6.21.4 / pyyaml==6.0.3. I checked that 6.21.4 reproduces the current committed _extracted/ text byte-for-byte, so merging this causes no rewrite. validate-corpus now installs from requirements.txt too.

Node 20 deprecation. actions/checkout v4 → v5 and actions/setup-python v5 → v6 across all three workflows.

Tested locally: with the pinned versions, extraction over the whole corpus writes 0 files; a file differing only in its date header is left alone; a file with changed text is rewritten; the validator passes (21 resources); all workflow YAML parses.

Not included: the CORPUS_BOT_TOKEN secret, which a repo admin needs to add, for inbox PR checks re-running on the bot's commit.


Generated by Claude Code

- extract-pdf-text: queue runs (concurrency group), check out latest
  main, and rebase-and-retry the push, so merges landing close together
  no longer fail with a rejected push.
- extract_pdf_text.py: skip files whose extracted text is unchanged
  instead of rewriting every file to bump the extracted: date.
- Pin pyyaml==6.0.3 and pypdf==6.21.4 (reproduces the committed
  _extracted/ text exactly), so output only changes when a PDF does.
  validate-corpus now installs from requirements.txt too.
- actions/checkout v4 -> v5, actions/setup-python v5 -> v6 (Node 24).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015bzez2N6vdSh6qXV7Y44P9
@sclintonowasp
sclintonowasp merged commit c2072ee into main Oct 28, 2026
1 check passed
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.

2 participants