rust-lang / promote-release

Tooling to publish Rust releases.
Apache License 2.0
18 stars 13 forks source link

Implement release process for rustup #84

Open jdno opened 5 months ago

jdno commented 5 months ago

New versions of rustup are currently released manually by running the sync-dist.py script in the rust-lang/rustup repository multiple times. This process should be automated so that it reproducible and less error-prone. We also want to add more sanity checks in the future, which are more convenient to implement in Rust rather than in Python.

In https://github.com/rust-lang/rustup/pull/3819, we discussed reimplementing the script as part of promote-release. This pull request makes a first attempt at migrating the existing functionality into this repository.

jdno commented 5 months ago

The following features still need to be implemented:

jdno commented 5 months ago

One approach might be to refactor the interface for this tool and turn it into a CLI with clap. That way, each command can have its own configuration and parameters. We can still get the arguments from the environment, but it would be much clearer what configuration is needed by each command.

Mark-Simulacrum commented 5 months ago

One approach might be to refactor the interface for this tool and turn it into a CLI with clap. That way, each command can have its own configuration and parameters. We can still get the arguments from the environment, but it would be much clearer what configuration is needed by each command.

I'm not sure CLI arguments really make any strong difference there? Whether it's environment variables or flags shouldn't really matter - we can add a common prefix if we want, but the two feel very similar to me. (Modulo --help but that is useful more to humans and it's not intended that humans are running this stuff).

jdno commented 5 months ago

@Mark-Simulacrum @pietroalbini Thanks for the feedback! I've drafted a new release process with the suggested changes in https://github.com/rust-lang/rustup/pull/3844. If that makes sense I'm gonna implement the changes here.

rami3l commented 4 months ago

I've made https://github.com/rust-lang/rustup/issues/3932 so that we can share our notes on how to improve Rustup's release process.

Currently beta and stable releases are available, but I think master builds would be interesting as well for dogfooding and/or quickly verifying recent fixes.