Thanks for the response. yes - as I stated in my earlier e-mail - I expected that these things were known and understood.
Cheers, Andrew. On Thu, 2026-10-01 at 19:39 +0200, Fabian Grünbichler wrote: > On Thu, Oct 1, 2026, at 11:57 AM, [email protected] wrote: > > The Debian NEW review of rust-derivre 0.3.12-3 has been completed. > > > > Decision: ACCEPTED > > Reviewer: Andrew McMillan > > Thanks for the review! > > > Review comment: > > > > Hi, > > > > Some packaging-quality issues. I suspect you already know these > > though... > > > > Major downgrade of hashbrown (0.17.1 → 0.14.5). > > > > Cargo.toml.orig:20 requires 0.17.1, but > > debian/patches/relax-version.patch rewrites it to 0.14.5 (two major > > versions older) purely because Debian only has 0.14 > > (control:18,37). > > The crate uses hashbrown::hash_table::Entry/HashTable > > (src/hashcons.rs:1,4), which still exist in 0.14 so it compiles, > > but > > this silently changes the hash-table implementation upstream pinned > > — > > worth flagging for review rather than accepting blindly. > > This is expected - unfortunately the upstream Rust ecosystem tends to > bump in a semver-incompatible fashion rather often (much more often > than regular C libraries would bump their soname), often for minor > issues not relevant for most reverse dependencies. Coupled with a > tendency to blindly bump dependency versions to the latest, without > actually using any of the newly introduced features/interfaces, we > end up with a wide range of versions of any particular crate in the > wild, where versions can be nominally incompatible, but mostly > compatible in practice. Of course *real breaking changes* exist as > well. If we would not have a lot of patches down- or upgrading > version constraints in Cargo.toml, we'd run afoul of the goal of not > having N versions of any particular upstream project in the archive, > if we can avoid it. We try to keep the number of "semver-suffixed" > crate packages (rust-foo-N or rust-foo-0.N) to what is actually > needed. > > Such patches make up the vast majority of patching that happens in > rust-* packages.. Dropping them would mean introducing a lot more > rust-foo-N packages, which would make our lives and that of other > teams (including the DFSG team ;)) harder! > > > Test-only dev-dependencies missing from Build-Depends-Arch. > > > > The crate's test targets (tests/basic.rs, fowler.rs, etc.) depend > > on > > bstr, serde, toml (Cargo.toml:86-99), but none of these appear in > > control Build-Depends. They're only listed in debian/tests/control > > for > > autopkgtest. Since debian/rules is a plain dh $@ --buildsystem > > cargo > > with no nocheck, the build-time test run cannot build these targets > > — a > > likely FTBFS unless tests are intentionally skipped. (Worth > > verifying > > against CI.) > > This is also expected. dev-dependencies often introduce cyclic > dependencies which would make upgrading and testing migration harder > if included as regular build dependencies. > > debcargo generated source packages will do the following: > - if there are no dev-dependencies in Cargo.toml, the test suite > is run as part of the build and as autopkgtests > - if there are dev-dependencies in Cargo.toml, at build time only a > build test is done, the full test suite is postponed to autopkgtests > > Hope this does sound reasonable :) > Fabian -- ---------------------------------------------------------------------- Porirua, New Zealand +64 (27) 288 6741 https://andrew.mcmillan.net.nz Do nothing unless you must, and when you must act: hesitate. ----------------------------------------------------------------------

