e2e_hosted_production and e2e_vendored_production are a near-fork: 11 identical helpers, a copied PURL/UUID catalog and hand-rolled VEX checkers beside vex_e2e_common
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by diffing the duplicated helpers (pm_command, published_uuids, urlencode, site_packages, assert_pristine/assert_patched) between crates/socket-patch-cli/tests/e2e_hosted_production.rs and e2e_vendored_production.rs, and compare them with tests/vex_e2e_common/mod.rs. Done means both suites still compile with cargo test --no-run and the hosted and vendored production CI legs run and skip the same set under the *_STRICT=1 variants. The drifted helpers need a maintainer decision on which variant to keep before you change them.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
[agent] Filed by the scheduled architecture audit (audit-cli-tests). Register: register.
Kind: refactor. Register ID: T68.
Problem
The two #[ignore]d production suites (2,718 and 2,711 lines) share most of their harness by copy.
Identical copies (md5). 11 helpers are identical in e2e_hosted_production.rs and e2e_vendored_production.rs:
| Helper | Hosted | Vendored |
|---|---|---|
pm_command |
L447 | L513 |
published_uuids |
L559 | L687 |
urlencode |
L752 | L716 |
minimist_entry |
L1003 | L639 |
berry_skip_code |
L1585 | L1470 |
site_packages |
L1833 | L644 |
urllib3_patched |
L1852 | L663 |
pypi_manifestless_vex |
L1874 | L1793 |
The other three identical helpers are ok, dump and read. The PURL/UUID catalog is also copied, including all 6 gem UUIDs.
Drifted copies. 8 more have drifted:
strictandhas_command;tool,assert_pristineandassert_patched;yarn_berry_vex,bun_manifestless_vex_production(38 lines differ) andgem_manifestless_vex(40 lines differ).
UNPUBLISHED_ECOSYSTEMS has drifted too: hosted probes 16 purls, vendored fewer.
Helpers rewritten inside the same binary. These shared helpers are already compiled into the hosted suite, which rewrites them anyway:
hosted_pin_countL421 duplicatescommon::envelope::hosted_pins(..).len().urlencodeduplicatesvlt_e2e_common::urlencode.site_packagesduplicatesuv_vex::site_packages.berry_skip_codeand the bunskipclosure duplicatevex_e2e_common::skipped_reason.- The
redirect-state.jsonabsence check is hand-written 6× (L343, L1288, L1617, L1794, L2410, L2685) besidevex_e2e_common::assert_no_hosted_ledger. - 4 attestation checkers (pnpm L1274, berry L1551, bun L1766, gem L2385) duplicate
assert_attested. - 2 VEX runners duplicate
run_vex. Only the bun runner setsSOCKET_NO_API_TOKEN, so the copies have drifted.
Same-file duplication. GET + status + JSON parse is written 5× (L351, L559, L589, L626, L663).
Proposed change
- Add a
tests/production_common/mod.rsholding:- the catalog (PURLs, UUIDs,
UNPUBLISHED_ECOSYSTEMSas one list with per-mode filters); - one
get_json(url)probe; pm_command/tool/strict;assert_pristine/assert_patched(drop themarkerparameter: it is alwaysPATCH_MARKER).
- the catalog (PURLs, UUIDs,
- Include it from both suites and delete the local copies.
- Replace the hand-rolled VEX runners and checkers, ledger checks and pin counts with the
vex_e2e_common/envelopehelpers already in the binary. - The
strictenv-var names stay per suite, as a parameter.
Size
2 suites plus 1 new module. Roughly −600 lines.
Acceptance criteria
- Both suites still compile (
--no-run). - The CI "hosted production" and "vendored production" jobs pass under
*_STRICT=1with the same set of legs run and skipped. Compare the leg logs before and after. - The drifted helpers settle on the stricter variant, which the PR names.
- Lingua principale
- Rust
- Stelle
- 9
- Fork
- 2
- Merge medio
- 20h 47m
- PR unite (30g)
- 681
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SocketDev/socket-patch
-
agent:triaged arch-audit priority:p3 refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
SocketDev/socket-patch#1860 ·
I maintainer di solito rispondono entro 1 giorno
-
agent:triaged arch-audit priority:p3 refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
SocketDev/socket-patch#1838 ·
I maintainer di solito rispondono entro 1 giorno
-
arch-audit refactor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
SocketDev/socket-patch#1993 ·
I maintainer di solito rispondono entro 1 giorno
-
arch-audit refactor
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
SocketDev/socket-patch#1992 ·
I maintainer di solito rispondono entro 1 giorno
-
agent:triaged arch-audit priority:p3 refactor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
SocketDev/socket-patch#1987 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di SocketDev/socket-patch
Issue simili
-
A-linter
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
oxc-project/oxc#28783 ·
I maintainer di solito rispondono entro 1 giorno
-
Substrait consumer doesn't recognise `shift_left` / `shift_right` from functions_arithmetic.yamlApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
apache/datafusion#27059 ·
I maintainer di solito rispondono entro 1 giorno
-
Bump calamine to 0.38: RUSTSEC-2026-0436 (CFB/OLE2 panic and unbounded allocation) fails cargo auditAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
docling-project/docling.rs#979 ·
I maintainer di solito rispondono entro 1 giorno
-
llm translation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno