Skip to content

ci: gate renames in Core Checks and docs that source checks read - #247

Merged
djh58 merged 1 commit into
feature/pq-transportfrom
djh58/pq233-ci-gates
Oct 23, 2026
Merged

djh58 merged 1 commit into
feature/pq-transportfrom
djh58/pq233-ci-gates

Conversation

@djh58

@djh58 djh58 commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

CI and lint fixes from review of #233.

  • Every gate lists both sides of a rename. Full Validation already passed --no-renames when listing changed files. Core Checks, its release-file detector and four of the Required Merge Gate's jobs did not.
    • So a PR that only moved src/foo.cpp into doc/user/ classified as public docs in Core Checks, which skipped every source job, and the merge gate accepted its green Core Checks Gate.
    • A move out of ci/release/ skipped the release validator tests the same way.
    • All of them now pass --no-renames. The merge-gate contract test fails on any rename-detecting file listing in the three workflows, and runs every "Write changed file list" step on real renames for each event.
  • Docs-only edits to the two checked docs run their checks. The specification's quoted vectors are checked by generate-pq-transport-vectors.py --check in the lint job, and the operator guide's quick start by feature_pq_quickstart.py. Both docs classified as public docs, so a change to only them ran neither check, and the next source PR failed. They now classify as source, and a contract test fails if a document carrying either check's markers doesn't.
  • lint-pq-doc-tokens.py no longer skips misspelled markers.
    • <!--pq-opt-->, <!--pqopt--> and <!--pq_field--> used to drop their tokens silently. Every comment starting with <!--pq now fails unless it is a token marker, or a vectors block the generator reads (matched with the generator's own pattern).
    • Without binaries, the lint no longer accepts OptionsCategory::HIDDEN options, which -help-debug doesn't list. That matches what feature_pq_quickstart.py checks.
    • test/lint/README.md is updated to match.

Tests run, all passing:

  • test_classify_merge_profile.py
  • test_pq_merge_gate_contract.py (64 failures against the unfixed workflows)
  • test_ci_pq_contract.py, test_merge_gate_poller.py, test_classifier_ci_contract.py, test_scheduled_validation_contract.py and test_ibd_timeout_wiring.py
  • lint-pq-doc-tokens.py, including its self-test
  • actionlint 1.7.7 and 1.7.12, with shellcheck, on both workflows
  • ruff with the repo's rules

Since #245, pull requests into feature/pq-transport don't run CI. #233's full CI covers this change once it merges.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Found in review of #233.

Core Checks listed changed files with rename detection, while Full
Validation and the Required Merge Gate's classifier pass --no-renames.
A change that only moved src/foo.cpp to doc/user/ classified as
public-docs in Core Checks, which skipped all its source jobs, and the
merge gate accepted its green Core Checks Gate. The release-file
detector of the release validator tests missed a move out of
ci/release/ the same way, and the merge gate's jobs that confirm a
lightweight profile listed files with rename detection too. All of
them now pass --no-renames. The merge-gate contract test requires the
three classifier inputs to use the same git commands, fails on any
list of changed files in the three workflows that detects renames, and
runs each list on a real rename for every event.

doc/design/pq-transport.md quotes vectors that
generate-pq-transport-vectors.py --check compares in the lint job, and
feature_pq_quickstart.py runs the quick start of
doc/user/network/pq-transport.md. Both classified as public-docs, so a
change to only them ran neither check, and the next source change
failed. They now classify as source, and a contract test fails if a
document with either check's markers does not.

lint-pq-doc-tokens.py skipped comments where pq is followed by a word
character or a hyphen, so <!--pq-opt-->, <!--pqopt--> and
<!--pq_field--> dropped their tokens silently. Every comment starting
with pq now fails unless it is a token marker or a vectors block that
the generator reads, matched with the generator's own pattern.

Without binaries, the lint also accepted options of
OptionsCategory::HIDDEN, such as -checkpoints, which -help-debug never
lists, so a docs-only change could pass it and fail
feature_pq_quickstart.py later. It now leaves them out, as -help does.
The self-test covers the misspellings and a hidden option, and
test/lint/README.md describes both rules.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@djh58

djh58 commented Oct 23, 2026

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T17:33:28.615170Z 5a199b8 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: 5a199b8344

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@djh58
djh58 merged commit d58c327 into feature/pq-transport Oct 23, 2026
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