Description
This may overlap with ci-abi-metadata.yml/ci-abi-snapshots.yml, but if those workflows check ABI metadata format rather than actually regenerating and diffing, adding an explicit regenerate-and-diff job would give a stronger correctness guarantee that abis/*.json truly reflects current contract source.
This is part of the CI/CD configuration under .github/workflows/, the automated gate that enforces every other guarantee this project claims to have, from ABI/contract consistency to documentation linting to coverage reporting. CONTRIBUTING.md lists specific required status checks that every PR must pass before merging, which means a gap in CI configuration doesn't just fail to catch a class of bug, it actively lets that class of bug merge to main with a green checkmark that reviewers reasonably trust.
Because CI is the one piece of the project every single contributor interacts with on every single PR, inefficiencies or blind spots here have an outsized multiplier effect: a slow or overly broad workflow wastes a small amount of time on every PR forever, and a missing check is a permanently open door for exactly the class of regression it should have caught.
Requirements and context
- Confirm existing ABI CI jobs regenerate-and-diff rather than schema-check only; add the stronger check if missing
Suggested execution
- Fork the repo and create a branch
git checkout -b test/ci-abi-regenerate-diff-check
- Implement changes
- Update
.github/workflows/ci-abi-snapshots.yml or add a new job
- Test and commit
- Deliberately edit a contract without updating
abis/ on a test branch and confirm CI fails
Example commit message
test: add regenerate-and-diff enforcement to ABI snapshot CI
Guidelines
- Assignment required before starting
- PR description must include:
Closes #[issue_id]
- Keep PR description professional and detailed
Description
This may overlap with
ci-abi-metadata.yml/ci-abi-snapshots.yml, but if those workflows check ABI metadata format rather than actually regenerating and diffing, adding an explicit regenerate-and-diff job would give a stronger correctness guarantee thatabis/*.jsontruly reflects current contract source.This is part of the CI/CD configuration under
.github/workflows/, the automated gate that enforces every other guarantee this project claims to have, from ABI/contract consistency to documentation linting to coverage reporting.CONTRIBUTING.mdlists specific required status checks that every PR must pass before merging, which means a gap in CI configuration doesn't just fail to catch a class of bug, it actively lets that class of bug merge tomainwith a green checkmark that reviewers reasonably trust.Because CI is the one piece of the project every single contributor interacts with on every single PR, inefficiencies or blind spots here have an outsized multiplier effect: a slow or overly broad workflow wastes a small amount of time on every PR forever, and a missing check is a permanently open door for exactly the class of regression it should have caught.
Requirements and context
Suggested execution
.github/workflows/ci-abi-snapshots.ymlor add a new jobabis/on a test branch and confirm CI failsExample commit message
test: add regenerate-and-diff enforcement to ABI snapshot CIGuidelines
Closes #[issue_id]