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 upFigure out combined Rust+Cargo installation #16456
Comments
brson
added
A-windows
labels
Aug 12, 2014
brson
added
the
I-nominated
label
Aug 12, 2014
This comment has been minimized.
This comment has been minimized.
|
to properly categorize this bug, we need to decide whether cargo is a 1.0-blocking feature. deferring for a later triage with @alexcrichton present (and hopefully then we can decide about categorizing cargo) |
This comment has been minimized.
This comment has been minimized.
|
Given that it's the foundation of the new Guide, I would argue that it is. (Or that the guide then needs changed) |
This comment has been minimized.
This comment has been minimized.
|
I don't see any reason not to consider it a blocker. Cargo largely works already, and the remaining work item, the registry, is well under way. |
This comment has been minimized.
This comment has been minimized.
|
P-high, 1.0 milestone. |
pnkfelix
added this to the 1.0 milestone
Aug 28, 2014
pnkfelix
added
P-high
and removed
I-nominated
labels
Aug 28, 2014
This comment has been minimized.
This comment has been minimized.
|
So... can we add it as a submodule? |
brson
self-assigned this
Sep 17, 2014
This comment has been minimized.
This comment has been minimized.
|
@vadimcn My inclination right now is to create an entirely new repository for the purposes of packaging Rust, moving out much of existing dist logic. @alexcrichton likes the idea of having both the Rust and Cargo repos just produce a simple tarball, then having another project that takes them and combines them into platform-specific installers. |
brson
changed the title
Figure out combined Rust+Cargo installation on Windows
Figure out combined Rust+Cargo installation
Sep 30, 2014
This comment has been minimized.
This comment has been minimized.
|
Here's my current plan: general setup
windows installer
unix installer
potential improvements
OS X package
automation
@alexcrichton What you think? |
This comment has been minimized.
This comment has been minimized.
|
Sounds great!
|
This comment has been minimized.
This comment has been minimized.
|
Let me clarify that at the end of this the current Rust dist builders will not exist and the combined dist builder will create and upload both the Rust and combined artifacts (and also Cargo - see first point).
|
This comment has been minimized.
This comment has been minimized.
|
It feels somewhat odd to me that the combined builder would build rust from source as opposed to downloading the artifact as produced by someone else. I thought we were going to handle the scheduling with #14431 (comment) and just run this script every hour or so, and 23/24 runs a day would do nothing. |
This comment has been minimized.
This comment has been minimized.
|
That being said, I'm also fine if it builds rust from source |
brson
referenced this issue
Oct 7, 2014
Closed
Factor out the common code in configure script #17854
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton my intention was to run a periodic cron job to promote the artifacts from the staging directory to the distribution directory on s3. My concern with doing the same thing with buildbot was that something has to trigger buildbot to do the build based on the status of the dist directory. We could have that cron job do multiple things, both promote from staging to dist, and kick off the combined build, though I kind of would prefer not to do that, keeping the bits of automation separate. If we do have that script start the combined build then we need some way to trigger buildbot, which i don't know how to do offhand, but is surely possible. If we really wanted to we could probably do this and #14431 (comment) not as a cron job but as part of the buildbot script, running in response to successful dist builds, though of course I'm loath to pack more functionality into our script. I'm somewhat worried about the possibility of race conditions causing commit mismatches across the variety of platforms we support, particularly with cargo. I've read mention of locks in buildbot, so we may be able to just throw in a big lock that protects the combined builds from the individual builds. |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton we don't particularly need to do the staging->dist commit-id tracking on s3, but can do it locally on the build master. we don't even need to upload to a staging directory, everything can be retained locally until the final build is complete. Not sure if that's better or worse: with the uploaded staging artifacts at least you have the option of downloading them before the full set is built. |
This comment has been minimized.
This comment has been minimized.
|
Tracking things locally instead of on S3 seems fine, certainly easier for the time being. We may have more freedom of directory structure there in order to prevent things from going awry as well. I'm basically fine with whatever's simplest right now, we could always time things to weed out most race conditions with the possibility of making it "rock solid" in the future. |
brson
referenced this issue
Oct 31, 2014
Closed
Print version diff for rust and cargo since last rustup.sh invocaction #18485
brson
referenced this issue
Nov 21, 2014
Closed
Ensure that all dist bots contain build the same set of docs #19200
This comment has been minimized.
This comment has been minimized.
|
OK, here's the plan as I see it currently, though details are still vague to me. I am still maintaining the premise that the cargo and rust builds should remain entirely separate. The reasons for this are pretty squishy, I admit: the current independent development model is working well; both builds are very complex and self-hosting, so combining them doubly-so; cargo and rust won't necessarily always support the same platforms, so it may continue to be desirable to produce rustc installers independently.
At that point we can create a
|
This comment has been minimized.
This comment has been minimized.
|
Need to start thinking about a future in which we support multiple simultaneous installs. |
brson
added a commit
to brson/rust
that referenced
this issue
Nov 25, 2014
This was referenced Nov 25, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 10, 2014
bors
added a commit
to rust-lang/cargo
that referenced
this issue
Dec 10, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 10, 2014
bors
added a commit
to rust-lang/cargo
that referenced
this issue
Dec 10, 2014
bors
added a commit
to rust-lang/cargo
that referenced
this issue
Dec 11, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 11, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 11, 2014
bors
added a commit
to rust-lang/cargo
that referenced
this issue
Dec 11, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 11, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 11, 2014
This comment has been minimized.
This comment has been minimized.
|
I've made a lot of progress on this and rust-installer can merge two installers now. I still need to use it to create the combined installer project and then upgrade rust and cargo to use it, adjust automation, move the os x and win installers. |
brson
added a commit
to brson/rust
that referenced
this issue
Dec 12, 2014
brson
added a commit
to brson/rust
that referenced
this issue
Dec 16, 2014
alexcrichton
added a commit
to alexcrichton/rust
that referenced
this issue
Dec 17, 2014
alexcrichton
added a commit
to alexcrichton/rust
that referenced
this issue
Dec 17, 2014
alexcrichton
added a commit
to alexcrichton/rust
that referenced
this issue
Dec 17, 2014
bors
added a commit
that referenced
this issue
Dec 30, 2014
This comment has been minimized.
This comment has been minimized.
|
Done. |
brson commentedAug 12, 2014
On Unix, the rustup.sh script will install both Rust+Cargo (though that may not end up the official installation mechanism). On Windows, acquiring Cargo is not so convenient.
The obvious thing to do on Windows is to put them both in the same installer, but since Cargo and Rust live in different repos (and should continue to do so for the foreseeable future imo) creating that installer will require some work.
Nominating.