Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

CI perf (coverage tradeoff): Windows-only path bugs reach main because `test (windows-latest, *)` runs only nightly

Aperta
#1,720 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
github-actions, rust
Ambito
ci-cd

Direzione di ricerca

Start in ci.yml around line 346 where the test job's Windows shards are gated by CI_SCOPE. Read the merge_group trigger and windows-compile-check step to see where to add a Windows cargo test step for socket-patch-core. Done means merge_group runs cargo test -p socket-patch-core --lib on windows-latest while keeping checks ci-ok and clippy unchanged. Validate by triggering a merge_group with a crate change.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

agent:needs-human agent:triaged ci-perf priority:p3

Filed by the CI janitor routine. This is a cost vs. coverage tradeoff, so it goes to the CI profiler/implementer and a human. The janitor didn't change CI.

Evidence

On pull_request and merge_group, the test job runs only on Linux, with macOS added on PRs. test (windows-latest, 1|2) runs only when vars.CI_SCOPE == 'full', on the nightly schedule, or on dispatch (ci.yml line 346). On merge_group, Windows gets only windows-compile-check. Windows-only test failures therefore surface after merge, on the nightly run.

Nightly CI (schedule) on main, last 7 days:

date run result Windows-only failure fix
10-24 40067511756 ❌ yarnrc::tests::global_folder_values_read_like_yarn: \${HOME} is read as absolute on Windows #1710 (open, green, waiting on review)
10-23 39907645034 ❌ governing_root::tests::vlt_project_root_governs_unlisted_directories (RUNNER~1 vs \\?\ paths); get_failure_paths::engine_nested_apply_preserves_conflicts_introduced_during_fetch; one test in the user_patches target #1686
10-22 39730006970 ❌ uv::tests::global_uv_settings_reads_the_user_then_first_system_file (/ vs \) #1663
10-21 39551481612 ✅
10-20 39376690526 ❌ (Linux, pipenv/uv: not this issue) #1716

Across 3 consecutive nights there were 5 Windows-only test regressions. Each made main red for about a day and needed its own follow-up PR plus another merge-queue trip. All of them were deterministic path-form assertions (separators, 8.3 short names, \\?\ verbatim prefixes), not flakes, so one Windows run of the changed crate's tests before merge would have caught every one.

Options (for the profiler/implementer to cost)

  1. Run cargo test -p socket-patch-core --lib on Windows in merge_group, next to windows-compile-check. It's the target that failed in 4 of the 5 cases. Its test step took 207–325 s in the failing nightlies, on top of the existing compile-check build.
  2. Use path filters to run the Windows test shards on merge_group only when crates/** changes. That is nearly every agent PR, so it would cost about as much as running them always.
  3. Keep the current setup, but add a lint or helper that rejects /-joined PathBuf expectations in tests. This is cheaper, but it only covers the separator case.

Please keep the required check names ci-ok and clippy unchanged.

Lingua principale
Rust
Stelle
8
Fork
2
Merge medio
19h 9m
PR unite (30g)
641

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di SocketDev/socket-patch

Tutte le issue di SocketDev/socket-patch

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.