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

