[Pkg-rust-maintainers] Bug#1007026: rust-weedle - needs nom 5
Peter Green
plugwash at debian.org
Thu Mar 10 20:55:49 GMT 2022
Package: rust-weedle
Version: 0.12.0-1
Severity: serious
x-debbugs-cc: git at rxv.cc, jamessan at debian.org
James McCoy and I are currently working on updating the rust-nom package
in Debian from version 5 to version 7. Debian also has version 4 of
nom packaged as a separate source package.
The version of rust-weedle currently in testing, depends on version 5
of rust-nom and hence is a blocker for this transition. This was not
realized before starting the transition because the version of
rust-weedle in Debian at the time I did the pre-transition analysis
depended on nom 4.
The only reverse dependency of rust-weedle in Debian is
rust-wasm-bindgen-webidl. rust-wasm-bindgen-webidl has no reverse
dependencies.
I first tried relaxing the dependency to allow nom 7, unfortunately
it quickly became clear, that it was beyond my skill level to port
the crate to nom 7. I filed a bug upstream but have not yet received
any response.
I did not consider it appropriate to introduce yet another version
of nom to the Debian archive to support a crate that was not being
used by any applications. So I decided to patch weedle to use nom 4
which was already in the archive, by reverting the upstream changes
that switched from nom 4 to nom 5. This passed it's autopkgtests and
I uploaded it.
Unfortunately it turns out that reverting the nom 5 changes, changed
the API of the crate and broke rust-wasm-bindgen-webidl.
Possible ways forward:
1. Port weedle to nom 7. This beyond my skill level and it wouldn't
surprise me if it caused API breaks of it's own.
2. Port weedle to nom 4 in a way that avoids the API break, I tried
to do this, but it also turned out to be beyond my skill level.
3. Remove rust-weedle and rust-wasm-bindgen-webidl from testing,
this is IMO the most appropriate option if there are no-longer
any short to medium term plans to package software that depends
on these crates.
4. Introduce a rust-nom-5 source package. This is probably what
I would suggest if there are applications that people want to
package that use weedle and/or wasm-bindgen-webidl.
5. Patch rust-wasm-bindgen-webidl to work with the API break, this
is probably feasible from a code point of view, but i'm not sure
how one would handle it from a dependency versioning point of view
6. Revert rust-weedle and rust-wasm-bindgen-webidl to earlier versions
using "really" version numbers, this may cause some issues with
dependency versioning (though I think the way rust dependencies
use virtual packages will mitigate this)
If noone objects or prposes a different route, I intend to ask
the release team to remove rust-weedle and rust-wasm-bindgen-webidl
from testing after other blockers for the nom 7 transition are
cleared.
More information about the Pkg-rust-maintainers
mailing list