Skip to content

Move the legacy Perl toolchain to legacy_perl/ - #1098

Merged
FelixKrueger merged 3 commits into
devfrom
legacy-perl-move
Aug 8, 2026
Merged

Move the legacy Perl toolchain to legacy_perl/#1098
FelixKrueger merged 3 commits into
devfrom
legacy-perl-move

Conversation

@FelixKrueger

@FelixKrueger FelixKrueger commented Aug 8, 2026

Copy link
Copy Markdown
Owner

The frozen Perl v0.25.x toolchain moves from the repository root into legacy_perl/ so the landing page reads Rust-first: the 12 Perl scripts, their plotly/ report assets, test_data.fastq, and the Perl-era release packager. No behaviour change to any tool — commit 1 is a pure rename, commit 2 points every in-repo consumer at the new path and adds an unskippable layout gate.

Consumers updated (24 code sites): 8 oracle-test path literals, both plotly drift guards, 7 golden-generation scripts (their stale up-counts — which resolved to rust/, a multicall-consolidation relic — repaired to the real repo root while touching them), 4 scripts/ byte-identity harnesses, and all 44 ci_tests.yml invocations. .gitattributes' root-anchored plotly/** line is rewritten; legacy_perl/ is excluded from the Docker build context (~20 MB); README/CHANGELOG updated. license.txt stays at root (release packaging copies it from there).

New gate: tests/legacy_perl_layout.rs asserts the 12 scripts + 4 code-read plotly assets exist — unconditional, no Perl needed, cannot skip. This closes a real hazard demonstrated during implementation: with the scripts moved and paths unfixed, the 12 summary_perl_oracle tests and the template-drift guard pass silently green (they are skip-capable and outside the perl-oracle job's EXPECTED list).

Verification (full record in plans/08082026_legacy-perl-move/PLAN.md §12): oracle-battery baseline 72 ok on dev; post-move/pre-fix sabotage failed exactly the 20 loud gates; post-fix battery 73 ok = baseline + the new gate, 0 failed; the layout gate was observed red under deliberate sabotage before being trusted; fmt + clippy (default and rammap-inprocess) clean; Perl bismark2report proven to resolve $RealBin/plotly from the new location.

Known external cost (accepted, in CHANGELOG): blob/master/<script> deep links 404 — the immutable v0.25.1 tag is the stable Perl reference. bioconda/Homebrew/containers are unaffected (they build from rust/ or the tag).

Pure git mv, no content edits: the 12 Perl executables, the Perl-era release
packager, plotly/ (report assets), and test_data.fastq. Path fixes for every
in-repo consumer follow in the next commit so renames stay cleanly detectable.
…le layout gate

Follow-up to the pure move: updates all 23 in-repo path sites (8 oracle-test
literals, 2 plotly drift guards, 6 golden-generation scripts, 4 scripts/
byte-identity harnesses, 44 ci_tests.yml invocations + hints), adds
tests/legacy_perl_layout.rs (unconditional existence gate for the 12 scripts
+ 4 code-read plotly assets — cannot skip, needs no Perl), and updates
.gitattributes/.dockerignore/README/CHANGELOG prose.

The six tests/data golden scripts had a stale up-count resolving to rust/
(multicall-consolidation relic) — repaired to the real repo root while
touching them. filter_nonconversion's hardcoded absolute default is now a
computed repo root. copy_bismark_files_for_release.pl moves as a historical
artifact, accepted broken (its Docs/ inputs no longer exist; PLAN Open-5).

Verification (PLAN §12): oracle battery baseline 72 ok on dev; post-move
pre-fix sabotage failed exactly the 20 loud gates while the 13 skip-capable
summary/template oracles stayed silently green (the hazard the layout gate
closes); post-fix battery 73 ok = baseline + the new gate, 0 failed; layout
gate observed red under deliberate sabotage; fmt + clippy (default and
rammap-inprocess) clean; Perl bismark2report proven to resolve plotly from
the new location.
… name legacy_perl/plotly

Dual code review (A+B, both APPROVE) + coverage audit (COMPLETE) fixes:
- legacy_perl_layout.rs asserts mode +x on the 12 scripts (cfg(unix)) —
  ci_tests.yml runs them as ./legacy_perl/<name>, so the bit is load-bearing
- drift-guard assert messages and comments now name legacy_perl/plotly/
- rust/README.md v0.25.1 sentence leads with the tag layout it instructs
- .gitattributes block realigned; filter_nonconversion golden script reuses
  HERE; c2c matrix help text word restored
- PLAN §12/§13: 7th golden script recorded (true counts 7/24), V2 ok-count
  marked toolchain-sensitive, published-tarball constraint noted
@FelixKrueger
FelixKrueger merged commit 5e40555 into dev Aug 8, 2026
14 checks passed
@FelixKrueger
FelixKrueger deleted the legacy-perl-move branch August 8, 2026 11:02
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