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

Figure out rust-lang/rust testing strategy #85

Open
ehuss opened this issue May 3, 2023 · 1 comment
Open

Figure out rust-lang/rust testing strategy #85

ehuss opened this issue May 3, 2023 · 1 comment
Labels
implementation Implementation exploration and tracking issues S-needs-design Status: needs design work stabilization blocker This needs a resolution before stabilization

Comments

@ehuss
Copy link
Contributor

ehuss commented May 3, 2023

I think it will be important for build-std to be tested in the rust-lang/rust CI. However, since the cargo side is so tightly coupled with the structure of the std source tree, that will make things difficult (particularly if a change needs to happen in both repos).

Some rough thoughts and ideas:

  • We could use something like rust-toolstate to track failures in build-std. I'm not terribly enthusiastic about that, since rust-toolstate in general was an unpleasant system. Also, a breaking change in rust-lang/rust would break cargo's CI. Cargo's CI could pin a nightly, but then cargo would need to very frequently update that.
  • We could use something like git subtrees. I don't particularly feel comfortable trying to track changes that happen on the rust-lang/rust side, and I don't have confidence that everyone with review rights will avoid making changes to src/tools/cargo without conferring with the team. It also puts a larger burden on our update process, and release processes (though it is unclear how much).
  • Reduce how tightly coupled cargo is with how std is built. This would be good in general, but I am skeptical that we can completely remove all coupling.
  • We'll need to decide which targets get tested and how.
    • Somewhat related to this is how much CI time can be afforded. I think building std takes about a minute, but building cargo's testsuite to run the tests could take longer since that would need building all of cargo (as a test). We might need some separate test suite that is independent of cargo.

Subtrees seem to be the most feasible solution, but I'm not particularly excited about them.

@ehuss ehuss added implementation Implementation exploration and tracking issues stabilization blocker This needs a resolution before stabilization S-needs-design Status: needs design work labels May 3, 2023
@Noratrieb
Copy link
Member

Many projects like Miri are now using JOSH instead of git-subtree, which reduces some of the pains of subtrees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
implementation Implementation exploration and tracking issues S-needs-design Status: needs design work stabilization blocker This needs a resolution before stabilization
Projects
None yet
Development

No branches or pull requests

2 participants