Repository navigation
refactor(traits): build the traits table in Rust and drop the Python it replaces - #408
Merged
Merged
Conversation
Bead: pgp-bs9u.25
Bead: pgp-bs9u.25
Bead: pgp-bs9u.25
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 21 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
Reverts 339b647. Bead: pgp-bs9u.25
Exercise the three named fault controls in Guard before testing the restored source. Retain the local red log as reviewable evidence. Bead: pgp-bs9u.25
Bead: pgp-bs9u.25
…-c2b # Conflicts: # CHANGELOG.md # bin/copy_number.py # docs/rust.md # scripts/ci/e2e-case-paths.tsv # tests/parity/oracle.ref
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.
Step 42 still depended on Python to read traits and haplotype rules. An unused Python copy-number engine also remained beside the Rust engine.
The step now calls
og traits table,phase-sitesandcheck. The replaced evaluator and copy-number engine are removed. Report metadata remains for its importers. Output columns, names and readings stay the same. Readers retain only catalog sites. Both outputs are staged before publication. Staging failures and directory destinations preserve both previous tables. The two final renames are separate, so a second-rename failure can leave the first table updated. Write errors name the path and exit cleanly.The catalog stays plain TSV. Quotes remain literal, so quoted headers, quoted fields and tabs inside quotes cannot bypass validation. The report collector still reads the output with
QUOTE_NONE. The six fixed reference labels, flipped-allele controls and per-rule HTML assertions run on og-generated tables. Test-side checks validate the retained marker metadata and its swap, complement, off-copy and wrong-context controls.How it was checked
OG_REQUIRED=1.rust-c2b-traitspasses all 12 assertions locally. A fresh mount probe confirms Docker cannot read the host scratch file.traits-panel-1,42-slivar-31andfollowups-clinvar-traits-1-rules-htmlneed fork CI.WRONG_REFERENCEcatalog mutations and the off-copy marker metadata mutation fail their specific restored assertions. Guard repeats them and requires exactly one expected assertion failure per mutation.ab5088dcreverted it. The subsequent Guard run ran the controls with the source restored afterwards.d0c12a52666fe22a01112b095ab9df2d2f129c77. Upstream fast checks are queued or running on the checks page. Guard and Rust must pass before landing.Fork E2E scheduling and landing remain with the maintainer. The three container-dependent cases remain unverified for this port.
Five runs per input on macOS ARM64, Python 3.14 versus Rust release. Wall time is the median. Memory is the maximum peak. Both output files compare byte for byte.
Files needed beyond the initial lane list
rust/og/src/main.rs: expose the three verbs.tests/demo/make_demo_sample.py,tests/e2e/genotype-rules-2-g2.sh,tests/e2e/report-followups-1-sections.sh: replace calls to the deleted evaluator.tests/test_collect_summary.py,tests/test_genotype_rules_indels.py,tests/test_render_report.py: preserve report assertions through og. Shards without a binary use the pinned historical oracle..github/workflows/guard.yml: run CLI tests and named fault controls.tests/e2e/rust-c2b-traits.sh: test the Rust commands.scripts/ci/e2e-case-paths.tsv,scripts/ci/e2e-case-times.tsv: register coverage and remove the deleted path.tests/parity/cases.tsv,tests/parity/oracle.ref,tests/parity/gen/traits.sh: compare the port with its pinned oracle.tests/parity/remnants.tsv: list retained metadata.tests/parity/README.md,tests/parity/evidence/rust-c2b-controls.txt: explain coverage and retain failing-control evidence.docs/rust.md,rust/README.md: document the commands.docs/cn-loci.md: remove the claim that the deleted engine remains.Bead: pgp-bs9u.25