-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
So we had kind of a situation over at imag
.
What happened
We had this PR https://github.com/matthiasbeyer/imag/pull/871 for introducing Ruby bindings for imag (using the awesome ruru crate), which are build with the thermite
Ruby gem helper, which packs .so
s into a gem. As you can see, the PR 871 succeeded on travis, so I merged it.
Master was broken instantly, because thermite
couldn't find the liblibimagruby.so
anymore (which it could find on PR 871).
So I opened https://github.com/matthiasbeyer/imag/pull/894 to revert the whole thing and merged it as soon as travis succeeded.
Then I opened https://github.com/matthiasbeyer/imag/pull/895, cherry-picked each commit from the initial https://github.com/matthiasbeyer/imag/pull/871 and pushed it. Travis failed again.
What I can see
We build against Rust 1.13, Beta and Stable. All have to succeed to get a CI-OK.
The table below shows the rustc/cargo versions for the specific builds. The failing builds (stable) use the same cargo and rustc as the succeeding build from the PR 871.
PR | travsi-jobset | build | rustc | cargo | status |
---|---|---|---|---|---|
871 | 198740111 | 1.13 | rustc 1.13.0 (2c6933acc 2016-11-07) | cargo 0.13.0-nightly (eca9e15 2016-11-01) | succeeded |
871 | 198740111 | Beta | rustc 1.16.0-beta.1 (5276ba72e 2017-01-31) | cargo-0.17.0-nightly (dfc0f95 2017-02-01) | succeeded |
871 | 198740111 | Stable | rustc 1.15.0 (10893a9a3 2017-01-19) | cargo 0.16.0-nightly (6e0c18c 2017-01-27) | succeeded |
master | 198837920 | 1.13 | rustc 1.13.0 (2c6933acc 2016-11-07) | cargo 0.13.0-nightly (eca9e15 2016-11-01) | succeeded |
master | 198837920 | Beta | rustc 1.16.0-beta.1 (5276ba72e 2017-01-31) | cargo-0.17.0-nightly (dfc0f95 2017-02-01) | succeeded |
master | 198837920 | Stable | rustc 1.15.0 (10893a9a3 2017-01-19) | cargo 0.16.0-nightly (6e0c18c 2017-01-27) | failed |
895 | 198869296 | 1.13 | rustc 1.13.0 (2c6933acc 2016-11-07) | cargo 0.13.0-nightly (eca9e15 2016-11-01) | succeeded |
895 | 198869296 | Beta | rustc 1.16.0-beta.1 (5276ba72e 2017-01-31) | cargo-0.17.0-nightly (dfc0f95 2017-02-01) | succeeded |
895 | 198869296 | Stable | rustc 1.15.0 (10893a9a3 2017-01-19) | cargo 0.16.0-nightly (6e0c18c 2017-01-27) | failed |
The failed PRs fail because thermite
cannot find the liblibimagruby.so
.
As you can see, it seems to have failed out of nowhere. There were no other PRs merged during these merges.
I reproduced the error on a VM using
cargo 0.17.0
rustc 1.16.0-nightly
The liblibimagruby.so
lives in /target/debug/deps/liblibimagruby.so
, but is expected to be in /target/debug/liblibimagruby.so
.
Can someone help me investigate?
(Notice: Workspaces involved!)
How to reproduce
I'm not sure. I guess it would be enough to call bundle install --path vendor/bundle
in /libimagruby
and then make lib-imag-ruby-test
in the root directory of the project. (We use make
to automate cargo
calls and also because we have to call bundle exec rake thermite:tarball
in between).
(I do not test this on my local machine because I use distro-package rustc/cargo and I'm still on 1.14
, where everything works fine as far as I can see)