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

Don't put Cargo into the rustc workspace #40297

Merged
merged 1 commit into from Mar 11, 2017

Conversation

Projects
None yet
5 participants
@alexcrichton
Copy link
Member

alexcrichton commented Mar 6, 2017

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the cargo submodule has been moved to a new vendor
directory to ensure it's outside the scope of src/Cargo.toml as a workspace.

Closes #40284

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 6, 2017

r? @brson

@rust-highfive rust-highfive assigned brson and unassigned nikomatsakis Mar 6, 2017

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Mar 6, 2017

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@brson

This comment has been minimized.

Copy link
Contributor

brson commented Mar 6, 2017

This likes like it's putting a submodule into src/vendor, which does not seem like a suitable place for submodules. Why src/vendor? Isn't this where the vendored sources live?

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 6, 2017

Ah yeah unfortunately src/vendor won't work b/c it's hierarchically below src/Cargo.toml, which means it still tries to be part of the workspace.

I could send a commit to Cargo with [workspace] which I believe will disable this though, if you'd prefer. I thought though at some point we were gonna try and wrangle all our third-party deps in vendor/*, although I may be misremembering.

@brson

This comment has been minimized.

Copy link
Contributor

brson commented Mar 6, 2017

If the options are putting this in src/vendor or giving cargo its own workspace I prefer the latter. We wouldn't put all the other submodules into src/vendor, or the other tools, I think - istm src/vendor is purely for incidental dependencies, not for the actual tools that are part of Rust.

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 7, 2017

Unfortunately I can't give Cargo it's own workspace due to CI errors caused by existing bugs in Cargo.

That to me means the only solution is to put Cargo in some external directory for now. I hope to fix rust-lang/cargo#3192 soon though which I believe should allow us to get the "ideal" hierarchy in the future.

@brson how do you feel about vendor (not src/vendor, just vendor) in the meantime?

@alexcrichton alexcrichton force-pushed the alexcrichton:fix-submodules branch from 44d84f3 to a40e673 Mar 7, 2017

@@ -559,7 +559,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
rules.build("tool-qemu-test-client", "src/tools/qemu-test-client")
.dep(|s| s.name("libstd"))
.run(move |s| compile::tool(build, s.stage, s.target, "qemu-test-client"));
rules.build("tool-cargo", "src/tools/cargo")
rules.build("tool-cargo", "vendor/cargo")

This comment has been minimized.

@brson

brson Mar 7, 2017

Contributor

Do you really mean "vendor/" here?

@brson

This comment has been minimized.

Copy link
Contributor

brson commented Mar 7, 2017

r=me with comment addressed

@alexcrichton alexcrichton force-pushed the alexcrichton:fix-submodules branch from a40e673 to b75116d Mar 7, 2017

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 7, 2017

@bors: r=brson

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 7, 2017

📌 Commit b75116d has been approved by brson

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 7, 2017

For posterity, we decided to put cargo into a top-level dir for now. That's not scalable but we'll fix the bug in Cargo soon which prevents Cargo from going into a "proper" location.

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 9, 2017

🔒 Merge conflict

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 9, 2017

@bors: retry

frewsxcv added a commit to frewsxcv/rust that referenced this pull request Mar 9, 2017

Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284
@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 9, 2017

@bors: p=1

We're not getting nightlies because of this

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 10, 2017

🔒 Merge conflict

arielb1 pushed a commit to arielb1/rust that referenced this pull request Mar 10, 2017

Ariel Ben-Yehuda
Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284

arielb1 pushed a commit to arielb1/rust that referenced this pull request Mar 10, 2017

Ariel Ben-Yehuda
Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284
@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 10, 2017

@bors: retry

alexcrichton added a commit to alexcrichton/rust that referenced this pull request Mar 10, 2017

Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284

bors added a commit that referenced this pull request Mar 10, 2017

arielb1 pushed a commit to arielb1/rust that referenced this pull request Mar 10, 2017

Ariel Ben-Yehuda
Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284

bors added a commit that referenced this pull request Mar 10, 2017

arielb1 pushed a commit to arielb1/rust that referenced this pull request Mar 10, 2017

Ariel Ben-Yehuda
Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284

bors added a commit that referenced this pull request Mar 10, 2017

bors added a commit that referenced this pull request Mar 10, 2017

Don't put Cargo into the rustc workspace
This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to the top
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

@alexcrichton alexcrichton force-pushed the alexcrichton:fix-submodules branch from 7688222 to c65996e Mar 10, 2017

@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 10, 2017

@bors: r=brson

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 10, 2017

📌 Commit c65996e has been approved by brson

alexcrichton added a commit to alexcrichton/rust that referenced this pull request Mar 10, 2017

Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284

bors added a commit that referenced this pull request Mar 10, 2017

alexcrichton added a commit to alexcrichton/rust that referenced this pull request Mar 11, 2017

Rollup merge of rust-lang#40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes rust-lang#40284

bors added a commit that referenced this pull request Mar 11, 2017

bors added a commit that referenced this pull request Mar 11, 2017

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 11, 2017

⌛️ Testing commit c65996e with merge ee972fd...

bors added a commit that referenced this pull request Mar 11, 2017

Auto merge of #40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes #40284
@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 11, 2017

@bors: retry

bors added a commit that referenced this pull request Mar 11, 2017

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 11, 2017

⌛️ Testing commit c65996e with merge 3070712...

bors added a commit that referenced this pull request Mar 11, 2017

Auto merge of #40297 - alexcrichton:fix-submodules, r=brson
Don't put Cargo into the rustc workspace

This causes problems when first cloning and bootstrapping the repository
unfortunately, so let's ensure that Cargo sticks around in its own workspace.
Because Cargo is a submodule it's not available by default on the inital clone
of the rust-lang/rust repository. Normally it's the responsibility of the
rustbuild to take care of this, but unfortunately to build rustbuild itself we
need to resolve the workspace conflicts.

To deal with this we'll just have to ensure that all submodules are in their own
workspace, which sort of makes sense anyway as updates to dependencies as
bugfixes to Cargo should go to rust-lang/cargo instead of rust-lang/rust. In any
case this commit removes Cargo from the global workspace which should resolve
the issues that we've been seeing.

To actually perform this the `cargo` submodule has been moved to a new `vendor`
directory to ensure it's outside the scope of `src/Cargo.toml` as a workspace.

Closes #40284
@alexcrichton

This comment has been minimized.

Copy link
Member Author

alexcrichton commented Mar 11, 2017

@bors: retry

bors added a commit that referenced this pull request Mar 11, 2017

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 11, 2017

⌛️ Testing commit c65996e with merge 1727b23...

@bors bors merged commit c65996e into rust-lang:master Mar 11, 2017

1 of 2 checks passed

homu Testing commit c65996e with merge 1727b23...
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@alexcrichton alexcrichton deleted the alexcrichton:fix-submodules branch Mar 11, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.