Cargo: Regular nightly updates?

Created on 4 Jun 2018  路  10Comments  路  Source: rust-lang/cargo

I was wondering if it would be helpful to have a regular schedule for updating Cargo on the rust repo. I would be willing to help be responsible for sending regular PRs on some schedule (every other week? every week?). I think it could be scripted so it would be a simple "run command", review, push. I think it would also be helpful to run tests locally to ensure things like RLS don't break and to avoid wasting bors queue time. The script could also automatically check beta branches, too (for example, I noticed there are a few commits on beta that haven't been pushed, yet).

Let me know if you think this would be helpful. I don't want to create extra work for other people (such as those managing the rust queue and approving PRs). Just an idea, feel free to close if the as-needed basis works better.

All 10 comments

@matklad I noticed that the 1.27 release is coming soon, and just wanted to check if you want the few commits linked above merged in. I'm uncertain about how late merges are handled. I'm happy to post a PR if it is desired.

@ehuss ohhhh, that sounds pretty bad, we should've back ported them weeks ago :( Yep, all of the commits on the tip of the beta branch are important: https://github.com/rust-lang/cargo/commits/rust-1.27.0.

Pleas do send a backporitng PR to rust-lang/rust if you want to (or I can do it myself).

As for the original question, I am not well-versed in the rust release process, but my understanding is that the main reason why we can't just use the latest Cargo for a nightly is that RLS depends on the source code of Cargo, and it's build might be broken because of Cargo update.

IIRC, before we've added all the tools to the rust-lang/rust as submodules, we did publish fresh Cargo every night.

It is certainly desired that Cargo reaches nightly/beta as soon as possible.

I think some kind of automated solution is possible? I.e. a bot that syncs master/beta branches every night. I wouldn't worry to much about CI time "wasted" because of accidental RLS incompatibility: this seems to be rare, and it's nice to get info about it upfront. That said, doing some light "does RLS builds" testing in a separate repo might be useful.

cc @kennytm @TimNN as folks who know about bors and infra way more than me :)

There's an open issue on rust-lang/rust for more seamless submodule updates: https://github.com/rust-lang/rust/issues/49413. It looks like there's not been much activity; my directions should still stand as valid.

Yea, I'll go ahead and post it.

I'll take a closer look at that issue and see if I can help with making things move more smoothly.

If we could automate this I'd love to have a regular weekly update!

@alexcrichton If you have a chance, can you take a look at my comment in that issue? I just want to make sure that splitting up the workspace makes sense, and how different tools should be handled (for example, should something like Clippy be on its own, part of the tools workspace, or something else?).

Where do we stand on this? Personally, as a cargo contributor, I'd love to be able to consume nightly cargo the day after a PR lands, but it's not too much work to build it locally. Perhaps we could add some kind of cargo support to rustup-toolchain-install-master (or write a variant of it).

Personally, as a cargo contributor, I'd love to be able to consume nightly cargo the day after a PR lands,

You can do that with

cargo install --force --git https://github.com/rust-lang/cargo/

It's a hack, but it mostly works and is quite cute :-)

I don't think we'll get a significant improvement over the current situation. Updates frequently require some intervention. Bors time is also at a premium, and it would be a significant amount of work to change how rust's tests are done, and would be very risky to change. I try not to let it go longer than a week between updates, which I think should be good enough.

Was this page helpful?
0 / 5 - 0 ratings