Skip to content

Update manifests.txt from the release process#89

Merged
emilyalbini merged 2 commits intomasterfrom
pa-manifests-txt
Jul 1, 2025
Merged

Update manifests.txt from the release process#89
emilyalbini merged 2 commits intomasterfrom
pa-manifests-txt

Conversation

@emilyalbini
Copy link
Copy Markdown
Member

Right now https://static.rust-lang.org/manifests.txt is uploaded by generate-manifest-list, in a cron running every week. This is an extra bit of infrastructure to maintain and means the list is often out of date.

This PR moves updating manifests.txt to the release process. Once it's merged we can retire the old tool.

Since multiple release processes can run at the same time, there is a chance they'd try to update manifests.txt at the same time, potentially overriding each other's work. To avoid that I use conditional writes in a retry loop.

Copy link
Copy Markdown
Member

@Mark-Simulacrum Mark-Simulacrum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems okay. I'm a little unhappy that it moves the generation from being idempotent to stateful, but that seems overall OK for the purposes of this file... and if we ever run into issues it can be manually edited or re-generated, too.

@emilyalbini emilyalbini enabled auto-merge July 1, 2025 08:38
@emilyalbini emilyalbini merged commit 11c5b32 into master Jul 1, 2025
6 checks passed
@emilyalbini emilyalbini deleted the pa-manifests-txt branch July 1, 2025 09:06
.args(["--key", "manifests.txt"])
// Fail the request if the manifest was already modified by something else (for
// example, another release running in parallel).
.args(["--if-none-match", &if_none_match]))?;
Copy link
Copy Markdown
Member

@Mark-Simulacrum Mark-Simulacrum Jul 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at this again, shouldn't this be if-match with the etag value? I'm not sure that if-none-match $etag actually works...

cc https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-writes.html#conditional-error-response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants