bug(ci): some warnings are not enforced by `features` step
Mantenedores costumam responder em até 1 dia
@cratelyn já está trabalhando nisso.
Desde 13/10/2026.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
in https://github.com/hyperium/hyper/pull/4231, we noticed that the features step in the CI pipeline did not properly catch some warnings when running cargo hack against various feature combinations.
i tracked that down to a root cause of discrepancy between what warnings we enforce when running cargo test --features full, here:
Also since they can just be dropped immediately without triggering a warning, do
{}_span!macros not have#[must_use]?i was really curious about this as well. i think i figured this out:
first, i confirmed that
Enteredis marked with this attribute: https://docs.rs/tracing/0.1.44/src/tracing/span.rs.html#387and i was also able to confirm that a warning appears when building the errant commit
b236593bwith a nightly toolchain, with the tracing feature active.moreover, i even found that these did generate warnings in CI, here: https://github.com/hyperium/hyper/actions/runs/38023510701/job/114129390066#step:7:217
however, note the specific warnings we deny when running
cargo hack, here:- name: check --feature-powerset with tracing feature run: cargo hack --no-dev-deps check --feature-powerset --depth 2 --features tracing --skip ffi env: RUSTFLAGS: "--cfg hyper_unstable_tracing -D dead_code -D unused_imports"...as compared to the compiler warning:
warning: unused `EnteredSpan` that must be used --> src/proto/h1/role.rs:86:5 | 86 | trace_span!("parse_headers"); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: once a span has been entered, it should be exited = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default help: use `let _ = ...` to ignore the resulting value | 86 | let _ = trace_span!("parse_headers");; | +++++++ +we are only denying
dead\_codeandunused\_imports, and this is a separate linting rule.we don't enforce warnings as strictly when running
cargo hack, because we only deny warnings in tests here:// src/lib.rs #![cfg_attr(all(test, feature = "full"), deny(unreachable_pub))] #![cfg_attr(all(test, feature = "full"), deny(warnings))] #![cfg_attr(all(test, feature = "nightly"), feature(test))]https://github.com/cratelyn/hyper/blob/b236593b60195dd25b53fefbb6b3f47b422b2db9/src/lib.rs#L4-L6
i think we can fix this easily, but i wanted to write this up here to (a) explain in-band why we didn't see a CI failure previously, and (b) act as a comment i can spin out into a separate issue.
thank you again for your thoughtful review, @/dswij, i appreciate it very much.
we should bring these into alignment. it can be somewhat abrasive to develop code in a feature that always enforces warnings however, so it would be nice to keep this blanket enforcement of all warnings cordoned off to specific builds in CI, as opposed promoting that to an unpredicated #![deny(warnings)].
- Linguagem predominante
- Rust
- Estrelas
- 16.4k
- Forks
- 1.8k
- Merge médio
- 1d 10h
- PRs com merge (30d)
- 13
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 hyperium/hyper
-
C-feature
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 65/100
hyperium/hyper#2652 · 4 reações ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
Mantenedores costumam responder em até 1 dia
-
http1 server: let idle keep-alive connections hold no read/write buffers (opt-in buffer provider)AbertaA-http1 A-server B-rfc S-blocked
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
hyperium/hyper#4240 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Write a HIP for `Body::poll_progress()`Talvez já em andamento @cratelyn assumiu há 16 dias. AbertaA-body B-rfc C-feature
hyperium/hyper#4228 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Upgraded HTTP/2 CONNECT streams cannot be reset, so a failed tunnel looks like a clean closeTalvez já em andamento @jeremyjpj0916 assumiu há 25 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
Mantenedores costumam responder em até 1 dia
Todas as issues de hyperium/hyper
Issues semelhantes
-
checkpoint/verify/rebuild_indexes on a thread holding a WriteTransaction deadlock instead of INT-001Abertabug known-issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
project-minigraf/minigraf#734 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 4 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 1 dia
-
bug CLI documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
openai/codex#56630 · 3 comentários · 3 reações ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
DayuanJiang/PecoFence#139 ·
Mantenedores costumam responder em até 1 dia