Live upgrade and integration tests
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 22h 40m
- Merged PRs (30d)
- 46
Description
It's critical that self-updates do not ever break. Right now I'm very unconfident that we can guarantee this.
To rectify this I intend to do several things:
- Modify the deployment scripts to create archives for the release artifacts.
- Create a new crate rustup-live-test that just contains tests
- Its test scenarios work by setting RUSTUP_DIST_ROOT into the live archives to simulate updates over time
- The dist root is configurable so that it can be run against dev-static.rlo, static.rlo, or the file system
- Create a new crate rustup-build-archives that rebuilds the archives. Use this to backfill the live archives and for local testing.
- Create two git branches master-live-test, stable-live-test, with new CI configs
- These just run the new tests. We'll use these to test the dev deployment before the stable deployment.
cc @alexcrichton @aturon @Diggsey
This is what I intend to do next. I think before doing any further production deployments.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the deployment scripts and how release artifacts are currently produced. Then examine the proposed rustup-live-test and rustup-build-archives crates, including RUSTUP_DIST_ROOT handling and the planned CI configurations. Done means live-update scenarios run against the configured distribution roots and the dev and stable test branches are exercising them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system, ci-cd, devops, release, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100