Repository navigation
ci: compile corpus modules serially under hard memory limits - #4
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The existing corpus job only validates schemas and performs a module-graph dry run. Add a reusable
-m/-lharness that emits the selected module and dependency closure, then compiles all seven destination languages serially with hard systemd memory limits, swap disabled, and ten-minute command timeouts. Failures retain command logs, timing, peak process RSS, compiler hashes, manifests, file counts, and CI artifacts.--keep-goingcollects all target failures while returning nonzero.PR/push CI checks CDA and UBL Python at 3500 MiB. Weekly/manual CI checks UCI, CDA, UBL, NeTEx, and FpML across all seven languages with heavy jobs serialized. UCI uses a documented 12000 MiB budget; the other modules use 3500 MiB. Rust retains codecs and Serde, explicitly enables topological splitting, and disables debug info/incremental compilation. Runner documentation now describes validation/dry-run accurately; FpML gains its missing XML-signature dependency.
Validation: six harness regression tests pass, including real kernel memory/swap limits, timeout descendant cleanup, malformed source failure retention, and keep-going behavior. Ruff and workflow YAML parsing pass. UCI passes all seven targets locally at 12000 MiB with PolyXML compiler fixes on main (031ab53), including Rust at 11729812 KiB peak process RSS. CDA/UBL/FpML Python pass. NeTEx generation and Python compilation now pass at 3500 MiB; remaining target errors are retained. Historical failed runs and final evidence are in
results/2026-10-03/.Representative CI previously verified the sudo/system-manager harness tests and CDA/UBL Python. The updated full-UCI gate still needs its manual CI run before issue #1 closes. Compilation checks do not establish runtime XML conformance.
Closes #3. Addresses #1; its final CI success will be verified after merge.