-
Notifications
You must be signed in to change notification settings - Fork 44
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
Errors caused by "incompatible version of rustc" #67
Comments
Same here |
Thanks! I'll look into it |
As described by OP this problem arises when we have dependency that has not changed on crates.io and was built locally with more than one version of the compiler (ie. switch from nightly to stable, release of new stable, etc.). The heuristics for selecting the rlib/so/dylib/dll to link are as follows:
This works quite well in case of dynamic deps (libs changing locally without version bump) and static compiler setup it breaks apart if we change the compiler (we have >1 rlib for given crate, all with identical versions and the latest one is for wrong compiler - rlibs don't get rebuilt by cargo if matching version already exists). Sadly I see no clear solution, each one of the below seams not acceptable:
TL;NR I'll need to think about it some more :/ |
Hmm one hotfix that seams to work on POC level is to actually invoke rustc for candidate deps and check if it spews incompatible version error. Of course this slows the testing to a crawl ATM but with some skeptic internals rewriting it might give a workable short term solution. We would have to move the candidate dep/fingerprint handling from This will most likely need to wait for the semi-major rewrite of skeptic I'm planning including the usage of macros 1.1 #60. |
Skeptic appears to be picking up the wrong version of a crate if rustc has changed but the source hasn't, for example https://travis-ci.org/asajeffrey/josephine#L2092-L2114
The text was updated successfully, but these errors were encountered: