Repository navigation
Commit d243130
fix(ci): check out Rust sources as LF on Windows too (#582)
* fix(ci): check out Rust sources as LF on Windows too
main's CI failed after the v2.9.8 merge (0bd814d), on `test
(windows-latest)` only, so Auto Release skipped and v2.9.8 has no tag yet.
The failure:
app::tests::every_load_path_installs_a_dual_system_cabinet
`build_dual_cabinet` is called from `cabinet_for_image` only
left: 3, right: 1
The cause is the checkout, not the code. The frontend's source-shape
tests read app.rs with include_str! and cut off the test module at
"\n#[cfg(test)]\nmod tests {". The windows-latest runner checks out
with core.autocrlf, so the file is CRLF and that pattern never matches.
The "production" text is then the whole file, and the test counts its
own assertion strings: three occurrences of `self.build_dual_cabinet(`
where production has one. Splits on the bare "\n#[cfg(test)]" survive
CRLF, because the "\n" is still inside "\r\n"; only the two
"...\nmod tests {" splits break, which is why one test failed and not
six.
Pull requests never saw it: the matrix gives non-release PRs Linux
only, and Windows tests run on main and on release/* branches. This
branch is named release/* so its PR runs Windows.
Fix: `*.rs text eol=lf` in .gitattributes, next to the existing
WGSL/GLSL rule that exists for the same reason (a byte-compared shader
generator). Every .rs file is already LF in the index (`git ls-files
--eol`: 523 of 523 i/lf), so no committed byte changes; only what a
Windows checkout writes. Rust compiles LF sources on every platform.
Not done: making each test split CRLF-tolerant. The attribute fixes the
cause for every test that reads source, including future ones, which a
per-test patch would not.
Verified: converting app.rs to CRLF locally reproduces the failure
exactly (left 3, right 1); restoring LF passes it. `git check-attr`
reports eol=lf for app.rs. The Windows leg of this PR's CI is the real
check.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* docs(release): v2.9.8 ships the 261001 bitstream pair
The release notes promised bitstreams "compiled from the release commit
at fitter seed 2, on the day of the release". That is no longer true.
The release-day compile of the merged sibling (65d86a6, BUILD_DATE
261003) missed on-die setup by 0.162 ns on the pll_hdmi output counter
(Slow 1100mV -40C), and release-rbf.sh refused it. The off-die build
closed (+0.033 / +0.116 ns).
At the maintainer's direction (2026-10-03, the v2.9.3 precedent),
v2.9.8 ships the pair compiled at 261001. That compile came from
hardware sources identical to the release commit: the diff of rtl/,
sys/, *.qip and *.sdc between its tree (e2f88bd) and the merge is
empty. Timing: on-die +0.656 / +0.105 ns, off-die +0.033 / +0.116 ns.
Two clean compiles of each were byte-identical: on-die 132ec5c0...,
off-die 995f8259....
The notes now say exactly that, carry both md5s (the old text promised
to add them on attach), and name the datecoded on-die file,
RustyNES_20261001.rbf. The sibling's releases/ change is its PR #50.
CHANGELOG's Verification bullet records the same fact. The release
audits (notes render, anchors, state prose) pass, and markdownlint is
clean.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>1 parent 0bd814d commit d243130
3 files changed
Lines changed: 20 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
65 | 68 | | |
66 | 69 | | |
67 | 70 | | |
| |||
82 | 85 | | |
83 | 86 | | |
84 | 87 | | |
85 | | - | |
| 88 | + | |
86 | 89 | | |
87 | 90 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
583 | 583 | | |
584 | 584 | | |
585 | 585 | | |
586 | | - | |
587 | | - | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
588 | 590 | | |
589 | 591 | | |
590 | 592 | | |
| |||
0 commit comments