rust/src/tools/build-manifest
Alex Crichton c049cc17f3 Remove the wasm32-wasi target from rustc
This commit is the final step in the journey of renaming the historical
`wasm32-wasi` target in the Rust compiler to `wasm32-wasip1`. Various
steps in this journey so far have been:

* 2023-04-03: rust-lang/compiler-team#607 - initial proposal for this rename
* 2024-11-27: rust-lang/compiler-team#695 - amended schedule/procedure for rename
* 2024-01-29: rust-lang/rust#120468 - initial introduction of `wasm32-wasip1`
* 2024-06-18: rust-lang/rust#126662 - warn on usage of `wasm32-wasi`
* 2024-11-08: this PR - remove the `wasm32-wasi` target

The full transition schedule is in [this comment][comment] and is
summarized with:

* 2024-05-02: Rust 1.78 released with `wasm32-wasip1` target
* 2024-09-05: Rust 1.81 released warning on usage of `wasm32-wasi`
* 2025-01-09: Rust 1.84 to be released without the `wasm32-wasi` target

This means that support on stable for the replacement target of
`wasm32-wasip1` has currently been available for 6 months. Users have
already seen warnings on stable for 2 months about usage of
`wasm32-wasi` and stable users have another 2 months of warnings before
the target is removed from stable.

This commit is intended to be the final step in this transition so the
source tree should no longer mention `wasm32-wasi` except in historical
reference to the older name of the `wasm32-wasip1` target.

[comment]: https://github.com/rust-lang/rust/pull/120468#issuecomment-1977878747
2024-11-03 07:09:34 -08:00
..
src Remove the wasm32-wasi target from rustc 2024-11-03 07:09:34 -08:00
Cargo.toml print omitted frames count for short backtrace mode 2023-07-29 20:36:05 +08:00
README.md Update outdated README in build-manifest. 2024-06-17 14:41:05 -07:00

build-manifest

This tool generates the manifests uploaded to static.rust-lang.org and used by rustup. You can see a full list of all manifests at https://static.rust-lang.org/manifests.txt. This listing is updated by https://github.com/rust-lang/generate-manifest-list every 7 days.

This gets called by promote-release https://github.com/rust-lang/promote-release. promote-release downloads a pre-built binary of build-manifest which is generated in the dist-x86_64-linux builder and uploaded to s3.

Adding a new component

  1. Add a new Step to dist.rs. This should usually be named after the filename of the uploaded tarball. See https://github.com/rust-lang/rust/pull/101799/files#diff-2c56335faa24486df09ba392d8900c57e2fac4633e1f7038469bcf9ed3feb871 for an example. a. If appropriate, call tarball.is_preview(true) for the component.
  2. Add a new PkgType to build-manifest. Fix all the compile errors as appropriate.

Testing changes locally

In order to test the changes locally you need to have a valid dist directory available locally. If you don't want to build all the compiler, you can easily create one from the nightly artifacts with:

for component in rust rustc rust-std rust-docs cargo; do
    wget -P build/dist https://static.rust-lang.org/dist/${component}-nightly-x86_64-unknown-linux-gnu.tar.gz
done

Then, you can generate the manifest and all the packages from build/dist to build/manifest with:

mkdir -p build/manifest
cargo +nightly run --release -p build-manifest build/dist build/manifest 1970-01-01 http://example.com nightly