Keep civil-date math in one utils::time module: days_from_civil is written twice and vex::time claims to be the only copy
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 66/100
Direção de pesquisa
Read crates/socket-patch-core/src/api/date.rs, formats/cargo/floor.rs, and vex/time.rs, then check how api::date is imported by tests/e2e_hosted_production.rs. Move the listed time functions and tests into src/utils/time.rs, update callers and remove the duplicate implementation and outdated claim. Run the named date and dated-channel tests; done means behavior is unchanged and only one days_from_civil definition remains.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
[agent] Filed by the scheduled architecture audit (audit-core). Register: register.
Kind: refactor. Register ID: A26.
Problem
Calendar arithmetic (Howard Hinnant's civil-date algorithms) lives in three modules at 5ca5623:
api/date.rsL48-L56:days_from_civil(year: i64, month: u32, day: u32), the parser half (parse_timestamp_secs, used byapi::rankingandapi::retry).formats/cargo/floor.rsL25-L33: a seconddays_from_civil(year: i64, month: i64, day: i64), spelled withdiv_euclidinstead of theif y >= 0 { y } else { y - 399 } / 400form. It is used to datenightly-YYYY-MM-DDtoolchains.vex/time.rsL30-L36: the inversecivil_from_days, insideunix_to_ymdhms. Its doc claims "this is the single civil-date implementation in the crate".telemetryalso formats timestamps through it.
Today the two days_from_civil copies compute the same values; api/date.rs's round-trip test pins only its own copy. A time module under vex/ that telemetry and api import, plus a date parser under api/, puts a general utility in two feature modules.
Proposed change
- Add
crates/socket-patch-core/src/utils/time.rsholdingdays_from_civil,unix_to_ymdhms,now_rfc3339andparse_timestamp_secs, with the tests ofapi/date.rsandvex/time.rs. - Delete
formats/cargo/floor.rs's copy and callutils::time::days_from_civil(convert itsi64month and day at the call). - Delete
api/date.rsandvex/time.rs, or reduce them topub uselines if the CLI or tests import them by path (tests/e2e_hosted_production.rsimportsapi::date::parse_timestamp_secs). - Drop the "single civil-date implementation" claim.
Size
4–5 files. The diff is mostly moves; about −25 net lines.
Acceptance criteria
- Behavior is unchanged.
days_from_civil_inverts_unix_to_ymdhms,parsed_order_is_chronological_in_both_formats,unix_to_ymdhms_matches_brute_forceand floor.rs's dated-channel tests pass unchanged. - One
days_from_civilremains in the crate (grep -rn "fn days_from_civil" cratesreturns one hit). - While moving the tests, drop the fake assert
assert!(secs > prev_2822 || secs == 0)inparsed_order_is_chronological_in_both_formats(date.rs L523). It checks the test's own loop counter, not the parser.
- Linguagem predominante
- Rust
- Estrelas
- 9
- Forks
- 2
- Merge médio
- 20h 47min
- PRs com merge (30d)
- 681
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 54/100
SocketDev/socket-patch#1993 ·
Mantenedores costumam responder em até 1 dia
-
arch-audit refactor
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 66/100
SocketDev/socket-patch#1992 ·
Mantenedores costumam responder em até 1 dia
-
agent:triaged arch-audit priority:p3 refactor
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
SocketDev/socket-patch#1987 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de SocketDev/socket-patch
Issues semelhantes
-
Perl - Readme DriftTalvez já em andamento @Omnideth assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
CommunityToolkit/Aspire#2375 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 86/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia