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
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
[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.
- Linguagem predominante
- Rust
- Estrelas
- 9
- Forks
- 2
- Merge médio
- 18h 47min
- PRs com merge (30d)
- 637
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de SocketDev/socket-patch
-
agent:triaged arch-audit priority:p3 refactor
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
SocketDev/socket-patch#1860 ·
Mantenedores costumam responder em até 1 dia
-
agent:triaged arch-audit priority:p3 refactor
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
SocketDev/socket-patch#1838 ·
Mantenedores costumam responder em até 1 dia
-
arch-audit refactor
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
SocketDev/socket-patch#1987 ·
Mantenedores costumam responder em até 1 dia
-
agent:triaged arch-audit bug priority:p3
Dificuldade 3/5 Meio dia Facilidade para iniciantes 55/100
SocketDev/socket-patch#1982 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
agent:triaged arch-audit bug priority:p3
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
SocketDev/socket-patch#1981 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de SocketDev/socket-patch
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
limitlessprojects/Go-Hybrid#3342 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
librespeed/speedtest-rust#52 · 1 comentário ·
-
enhancement needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
bherbruck/solvecraft#11246 · 1 comentário · 1 reação ·
-
example
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
rust-lang-nursery/rust-cookbook#954 ·
Mantenedores costumam responder em até 1 dia