Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

serde's -rc4 dependency breaks old cargo #257

Closed
cuviper opened this issue Jan 27, 2017 · 2 comments
Closed

serde's -rc4 dependency breaks old cargo #257

cuviper opened this issue Jan 27, 2017 · 2 comments

Comments

@cuviper
Copy link
Member

cuviper commented Jan 27, 2017

See https://users.rust-lang.org/t/crates-io-compatibility-with-old-cargo/9127

It appears that since we have a dependency on serde, even optional, then Cargo < 0.9 (w/ Rust 1.8) can't parse serde-0.9.0's dev-dependency on serde-derive 0.9.0-rc4, specifically the "-rc4" part. It doesn't matter that this version is out of our range, and from my tests even yanking won't solve anything.

So what should num do?

I think we're stuck, because anyone referencing num with old Cargo is seemingly going to have this transitive problem, even if we were to now remove our serde feature entirely. I made a test crate to try this out, and even though the latest version has no dependencies at all, and all others are yanked, it still can't be used by old Cargo.

If somebody has a working Cargo.lock already, they should be fine, hopefully. But for such a person it doesn't matter what we do now. It may be that such old users are extinct by now anyway.

So... shall we embrace the break and raise our minimum Rust to 1.8? That's the least that's not broken right now, through no fault of our own. There are also some nice things we'll gain access to, like the std::ops::*Assign traits that were stabilized in 1.8.

@cuviper
Copy link
Member Author

cuviper commented Jan 28, 2017

One casualty will be Ubuntu 16.04, which has rustc 1.7 and cargo 0.8 in universe.

cuviper added a commit to cuviper/num that referenced this issue Feb 10, 2017
This bumps the minimum rustc to 1.8.0, "fixing" rust-num#257.  I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.

This adds 1.15.0 to the CI matrix to build stable num-derive.  We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.

The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden.  It's also now consolidated into one test_full.sh
which considers $TRAVIS_BRANCH as needed.
homu added a commit that referenced this issue Feb 10, 2017
Bump rustc to 1.8 and revamp all CI

This bumps the minimum rustc to 1.8.0, "fixing" #257.  I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.

This adds 1.15.0 to the CI matrix to build stable num-derive.  We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.

The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden.  It's also now consolidated into one test_full.sh
which considers $TRAVIS_BRANCH as needed.
cuviper added a commit to cuviper/num that referenced this issue Feb 10, 2017
This bumps the minimum rustc to 1.8.0, "fixing" rust-num#257.  I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.

This adds 1.15.0 to the CI matrix to build stable num-derive.  We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.

The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden.  It's also now consolidated into one test_full.sh
which considers $TRAVIS_RUST_VERSION as needed.
homu added a commit that referenced this issue Feb 10, 2017
Bump rustc to 1.8 and revamp all CI

This bumps the minimum rustc to 1.8.0, "fixing" #257.  I normally
consider this a breaking change, but we were already broken due to
external factors, for which I couldn't find a workaround.

This adds 1.15.0 to the CI matrix to build stable num-derive.  We still
need nightly to run its tests though, because of compiletest_rs, and
dev-dependencies can't be optional.

The testing scripts are moved from .travis/ to ci/, as they don't really
need to be hidden.  It's also now consolidated into one test_full.sh
which considers $TRAVIS_RUST_VERSION as needed.
@cuviper cuviper closed this as completed Feb 10, 2017
@bluss
Copy link
Contributor

bluss commented Mar 26, 2017

Interesting issue and this seems like the only reasonable move.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants