Package: debcargo Version: 2.5.0-3+b3 Control: affects -1 src:rust-serde-json
when rust-serde-json moved from 1.0.80 to 1.0.81, Cargo.toml changed in the following two ways: ------------ commit 6c3dfe948a1d088198cfa82f777858502bdb39c2 Author: David Tolnay <dtol...@gmail.com> Date: Tue May 3 12:18:24 2022 -0700 Make it clearer that preserve_order implies a std dependency As indicated in the summary of #885. diff --git a/Cargo.toml b/Cargo.toml index 795f679..cae892f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,7 +56,7 @@ alloc = ["serde/alloc"] # Make serde_json::Map use a representation which maintains insertion order. # This allows data to be read into a Value and written back to a JSON string # while preserving the order of map keys in the input. -preserve_order = ["indexmap"] +preserve_order = ["indexmap", "std"] # Use sufficient precision when parsing fixed precision floats from JSON to # ensure that they maintain accuracy when round-tripped through JSON. This comes ------------ commit 27939bb1f99728c8b878778db8ac51b3d98f9c70 Author: Josh Stone <cuvi...@gmail.com> Date: Tue May 3 11:57:05 2022 -0700 Explicitly enable indexmap/std diff --git a/Cargo.toml b/Cargo.toml index 7222bd7..795f679 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ rust-version = "1.36" [dependencies] serde = { version = "1.0.100", default-features = false } -indexmap = { version = "1.5", optional = true } +indexmap = { version = "1.5.2", features = ["std"], optional = true } itoa = "1.0" ryu = "1.0" ------------ When debcargo tries to map this into debian feature packages, it goes from producing four binary packages in 1.0.80-2: librust-serde-json+alloc-dev librust-serde-json+indexmap-dev librust-serde-json+std-dev librust-serde-json-dev to adding a fifth in my attempt at packaging 1.0.82-1: librust-serde-json+preserve-order-dev in 1.0.80-2, librust-serde-json+preserve-order-dev is Provided: by librust-serde-json+indexmap-dev. But since librust-serde-json+indexmap-dev now depends on the std feature of indexmap, presumably that means that indexmap itself depends on the std feature as well, so preserve_order's dependencies (on both indexmap and std) are again identical to those of indexmap. So the Provides should remain the same, and a new binary package should not be generated, but debcargo does anyway. I have three options, as a result: a) ship as debcargo creates, which requires a trip through NEW for the new package, and potentially antagonizes the ftp team b) collapse_features = true -- but i don't know whether that's going to create the scary cyclic dependency warnings that debcargo warns about but doesn't diagnose for me. c) commit debian/control and debian/control.debcargo.hint, creating a maintenance hassle for future uploads of the serde_json crate. None of these options are great. It would be better if debcargo could identify the minimal feature split correctly here. --dkg
signature.asc
Description: PGP signature