Abstract
When someone opens a pull request or pushes a change to the schemas, nothing runs automatically to check that the Schematron rules embedded in the XSD files still work. The repository has no pull-request checks at all; the only automation builds release files after a release is published.
This is how 176 broken or missing rules built up over time without anyone noticing (see #338 through #343). The new make check-schematron command finds these problems in about two seconds, but only if someone remembers to run it.
Proposal: add a GitHub Actions workflow that runs make check-schematron on every pull request and on every push to the development branches, and run the same check before release files are built. If the check fails, the pull request shows a red X and cannot be merged until the rules are fixed.
Additional context
Cost: about 15 seconds per run on GitHub's free runners. Needs Python 3 and lxml, installed from tools/requirements.txt. The check itself runs python3 -m unittest discover -s tests/schematron, which audits all 52 applicable schemas and validates about 1,700 synthesized documents.
Abstract
When someone opens a pull request or pushes a change to the schemas, nothing runs automatically to check that the Schematron rules embedded in the XSD files still work. The repository has no pull-request checks at all; the only automation builds release files after a release is published.
This is how 176 broken or missing rules built up over time without anyone noticing (see #338 through #343). The new
make check-schematroncommand finds these problems in about two seconds, but only if someone remembers to run it.Proposal: add a GitHub Actions workflow that runs
make check-schematronon every pull request and on every push to the development branches, and run the same check before release files are built. If the check fails, the pull request shows a red X and cannot be merged until the rules are fixed.Additional context
Cost: about 15 seconds per run on GitHub's free runners. Needs Python 3 and
lxml, installed fromtools/requirements.txt. The check itself runspython3 -m unittest discover -s tests/schematron, which audits all 52 applicable schemas and validates about 1,700 synthesized documents.