Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upIs there a version that (still) compiles with nightly-2016-07-07 ? #470
Comments
This comment has been minimized.
This comment has been minimized.
|
I think there's a way to override the dependency: http://doc.crates.io/specifying-dependencies.html#overriding-dependencies |
This comment has been minimized.
This comment has been minimized.
|
That didn't work unfortunately
One way I know of to specify a good version for I think it would be useful to be able to restrain dependency constraints even further in cargo. Something like: [dependencies]
serde = "=0.7.14"
serde_json = "0.7.4"
serde_macros = "=0.7.14"
[serde_macros.dependencies]
# serde_macros depends on "0.7.x" constrain it to "<=0.7.14"
serde_codegen = "<=0.7.14"But for now, I think it's an interesting flaw in the Serde ecosystem that old builds that built with a specific version of the compiler can end up not building anymore with that same version a couple of weeks later. |
dtolnay
added
the
support
label
Jul 29, 2016
This comment has been minimized.
This comment has been minimized.
|
Yeah this is not supported well. Let us know if you have ideas how we could make this better. For now you should be able to use this other way of overriding dependencies. I just did this successfully today for running benchmarks against 0.7.0 so even older than yours. Basically clone the relevant dependencies (probably just serde) and create a paths = [
"/path/to/serde/serde",
"/path/to/serde/serde_codegen",
"/path/to/serde/serde_codegen_internals",
"/path/to/serde/serde_macros"
]Then |
This comment has been minimized.
This comment has been minimized.
|
The problem I have with that solution is that it's not very portable, unless I vendor serde. But I am not sure that there is a better way to do it at this point in time.
I think the fundamental problem is that a minor version bump (e.g. So even though the API of Maybe this breakage can be attenuated by tightening the constraints on such sensitive crates, or bump the major version more easily when the targeted nightly (range) is changed. |
This comment has been minimized.
This comment has been minimized.
|
Would this be fixed by serde_macros using an |
This comment has been minimized.
This comment has been minimized.
|
I think so, but I haven't thought it through, so don't take my word for it |
This comment has been minimized.
This comment has been minimized.
|
Nothing we can do about the past releases, but this should be resolved going forward by #472. Thanks for reporting this. |
dtolnay
closed this
Jul 30, 2016
This comment has been minimized.
This comment has been minimized.
|
Thanks for the fix! |
azerupi commentedJul 29, 2016
I'm trying to build a webapp with Serde and Diesel, both using nightly for codegen. But diesel does only support
nightly-2016-07-07and I can't seem to build Serde for that nightly.In my
Cargo.tomlI have:I have tried
0.8.0,0.7.15,0.7.14,0.7.13and0.7.12butquasialways fails to build.I've tried to find the cause of this and I have come up with a plausible hypothesis:
Even though I strictly rely on
serde_macros = "=0.7.14"it itself relies on anyserde_codegen = "0.7.x"so it downloads the latest compatible version, which is0.7.15. That in turns relies on the latest version of quasi which I guess uses compiler APIs that are not yet available innightly-2016-07-07Is this possible? And what can we do about it?