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

Convert rustfmt from a submodule to a subtree #82208

Merged
merged 4,926 commits into from
May 15, 2021
Merged

Conversation

jyn514
Copy link
Member

@jyn514 jyn514 commented Feb 17, 2021

r? @calebcartwright cc @Manishearth @Mark-Simulacrum

The motivation is that submodule updates cause rustfmt to not be available on nightly a lot; most recently it was unavailable for over 10 days, causing the beta release to be delayed. Additionally this is much less work on the part of the rustfmt maintainers to keep the rustfmt compiling, since now people making breaking changes will be responsible for fixing them.

I kept the rustfmt git history so it looks like there are thousands of commits. The important commits are https://github.com/rust-lang/rust/compare/851dee3af9404bf399c3c4ffefe5105edb3debad~..pull/82208/head. This adds about 10 MB of git history, which is not terribly much compared to the 702 MB that already exist.

  • Add src/tools/rustfmt to x.py check

  • Fix CRLF issues with rustfmt tests (see commit for details)

  • Use rustc_private instead of crates.io dependencies

    This was already switched upstream and would have landed in the next submodule bump anyway. This just updates Cargo.lock for rust-lang/rust.

  • Add yansi-term to the list of allowed dependencies.

    This is a false positive - rustc doesn't actually use it, only rustfmt, but because it's activated by the cargo feature of a dependency, tidy gets confused. It's fairly innocuous in any case, it's used for color printing.
    This would have happened in the next submodule bump.

  • Remove rustfmt from the list of toolstate tools.

  • Give a hard error if testing or building rustfmt fails.

  • Update log to 0.4.14

    This avoids a warning about semicolons in macros; see the commit for details.

  • Don't add tools to the sysroot when they finish building.

    This is the only change that could be considered a regression - this avoids a "colliding StableCrateId" error due to a bug in resolve (creader: Host crate loaded twice produces different CrateNums if host != target #56935). The regression is that this rebuilds dependencies more often than strictly necessary. See the commit for details.

Fixes #85226 (permanently). Closes #82385. Helps with #70651. Helps with #80639.

rchaser53 and others added 30 commits October 4, 2019 11:25
…nt-prefix

add static support for raw prefix identifiers
@Mark-Simulacrum
Copy link
Member

Going to temporarily close this - it seems to be causing some trouble on bors, which is stalling out builds for other PRs. I will reopen and investigate in more detail tomorrow, but don't want to stall the queue overnight (for me).

@RalfJung
Copy link
Member

Let's see if we can reopen now without harm. Also to be sure:
@bors r-

@RalfJung RalfJung reopened this May 15, 2021
@RalfJung
Copy link
Member

Can this be r+'d again? Looks like the merge conflict was resolved?

@Mark-Simulacrum
Copy link
Member

We can try. @bors r+ rollup=never

@bors
Copy link
Contributor

bors commented May 15, 2021

📌 Commit 34368ec has been approved by Mark-Simulacrum

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 15, 2021
@bors
Copy link
Contributor

bors commented May 15, 2021

⌛ Testing commit 34368ec with merge eac3c7c...

@bors
Copy link
Contributor

bors commented May 15, 2021

☀️ Test successful - checks-actions
Approved by: Mark-Simulacrum
Pushing eac3c7c to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 15, 2021
@bors bors merged commit eac3c7c into rust-lang:master May 15, 2021
@rustbot rustbot added this to the 1.54.0 milestone May 15, 2021
@jyn514 jyn514 deleted the rustfmt-subtree branch May 15, 2021 17:43
@Xanewok Xanewok mentioned this pull request May 15, 2021
bors added a commit to rust-lang-ci/rust that referenced this pull request May 17, 2021
Update RLS

Contains rust-lang/rls#1736. With rust-lang#82208 merged, this should now close rust-lang#85225. Tested locally with `./x.py test src/tools/rls` and seems to be working as expected.

I noticed the rustfmt merge didn't trigger toolstate upgrade (because we pruned most but not all of the related machinery?), so I'd rather get this rubber-stamped by someone more knowledgeable with infra/the merged changes in case I missed something and need to include something else here to unbreak the RLS toolstate.

r? `@Mark-Simulacrum`
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Jun 8, 2021
Remove rustfmt tests from top-level .gitattributes

These are tracked in src/tools/rustfmt/.gitattributes already, they
don't need to be listed twice.

r? `@ehuss` since you suggested adding them in rust-lang#82208; I think it should be ok now that bors isn't trying to merge the `subtree add` changes.

cc `@calebcartwright`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-rustfmt Area: Rustfmt merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

rustfmt no longer builds after rust-lang/rust#83813 Changing rustfmt from submod to subtree