about summary refs log tree commit diff
path: root/compiler/rustc_errors/src/snippet.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-10-28 14:52:20 +0000
committerbors <bors@rust-lang.org>2020-10-28 14:52:20 +0000
commit717eb6ccea0f9e0079eab82c047bbc1ebde725c2 (patch)
tree2d8519cfa14bffce13c5d7dc95c81b0486862083 /compiler/rustc_errors/src/snippet.rs
parent2eb4fc800aaf5006f89af3af591e2aa34f469d81 (diff)
parentc2f4bbd17614bf54353ccd913463744d6f7c9242 (diff)
downloadrust-717eb6ccea0f9e0079eab82c047bbc1ebde725c2.tar.gz
rust-717eb6ccea0f9e0079eab82c047bbc1ebde725c2.zip
Auto merge of #78409 - pietroalbini:build-manifest-checksum-cache, r=Mark-Simulacrum
Add checksums cache to build-manifest

During the release process we're currently calculating the SHA256 of each file three times:

1. In `build-manifest`, to fill the `hash = "f00"` keys of the manifests.
2. In `promote-release`, to generate the `.sha256` files.
3. In `promote-release`, to generate the `.asc` GPG signatures.

Calculations 1. and 2. could be merged into a single one if there was a way for `build-manifest` to pass the checksums it generated over to `promote-release`. Unfortunately calculation 3. can't be merged as GPG requires extra metadata to be hashed.

This PR adds support for merging 1. and 2. by creating the `BUILD_MANIFEST_CHECKSUM_CACHE` environment variable, which points to a JSON file storing a cache of all the calculated checksums. `build-manifest` will load it at startup and avoid generating existing checksums, and it will dump its internal checksums cache into it when it exits successfully.

This PR also allows to run `build-manifest` multiple times without the need to wait for checksums to be calculated in the following invocations. The speedup will allow to work torwards a fix for https://github.com/rust-lang/promote-release/issues/15 without impacting the release process duration nor our storage costs.

This PR can be reviewed commit-by-commit.
r? `@Mark-Simulacrum`
Diffstat (limited to 'compiler/rustc_errors/src/snippet.rs')
0 files changed, 0 insertions, 0 deletions