[Pkg-rust-maintainers] Bug#998027: Bug#998027: rust-smallvec: autopkgtest regression: #![feature]` may not be used on the stable release channel

peter green plugwash at p10link.net
Thu Oct 28 20:29:28 BST 2021


"error[E0554]: `#![feature]` may not be used on the stable release channel" is a red herring.
The autopkgtests for rust packages try the tests in normal mode first, then if it fails with
E0554 they are rerun in "nightly" mode.

The real issue is further down the log.

> 
> error[E0658]: const generics are unstable
>    --> src/lib.rs:412:15
>     |
> 412 | impl<T, const N: usize> SmallVecData<[T; N]> {
>     |               ^
>     |
>     = note: see issue #74878 <https://github.com/rust-lang/rust/issues/74878> for more information
>     = help: add `#![feature(min_const_generics)]` to the crate attributes to enable

const generics were stabilized in rustc 1.51, currently testing has 1.50 and unstable has 1.56

Possible ways forward.

1. Do nothing, wait for the issue to go away when the new rustc makes it into testing.
    (currently blocked by issues in llvm and libmodulemd (via meson))
2. Add breaks, in some ways this is the correct soloution, but given that britney does
    not properly enforce build-dependencies I fear it could cause more problems than it
    solves (i.e. ending up with version of librust-smallvec-dev and rustc in testing that
    are individually installable but not co-installable).
3. Revert the removal of " #![cfg_attr(feature = "const_generics", feature(min_const_generics))]"
    in upstream commit https://github.com/servo/rust-smallvec/commit/2964a8469be212f6abbb05758cabe6416d144580
    this would allow the code to be used on old compilers in nightly mode, but afaict would mean it couldn't
    be used in regular mode on newer compilers.
4. Set the test_is_broken flag for the const_generics and const_new features, as far
    as I can tell no applications in Debian use those features.

Personally I'm in favor of option 1.



More information about the Pkg-rust-maintainers mailing list