rust-lang / rust-lang/docs.rs

Crate owner based build backoff

Open
#1,532 7 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-admin A-builds
Dominant language
Rust
Stars
1.2k
Forks
233
Avg merge
11h 35m
Merged PRs (30d)
60

Description

Really big releases can swamp the build queue and make normal people wait hours for their crate to get built and manual de-prioritization requires human intervention, so some sort of owner-based backoff would be a good automatic solution.
The basic idea is that if over n crates with the same owner are present within the build queue at the same time, x0 of their crates get the -1 priority level, x1 crates get the -2 priority level, ad nausea.
Basically, it gradually pushes back more and more crates based on how many an owner is currently building so that it's fair to everyone, the owner still gets some of their crates built within a timely manner and all of the normal people get pushed to the front of the line.
It also prevents the (terrifying) scenario where two or more biggies are published at the same time, so instead of the first to publish getting all of their crates built and the latter ones waiting hours for any of their crates to build, they both actually get some crates built within a reasonable time span.
Additionally, it also doesn't punish big publishers who just want to make a patch release of some sort, if people-who-publish-50-crates-at-a-time want to do a one-off random release for a patch or something they aren't permanently in a de-prioritized state even though they've only released one single crate (opposed to the manual de-prioritization where they are unconditionally pushed back in the queue)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the build queue and the existing manual de-prioritization behavior, then trace how queued crates receive priority levels. Define how owner-based counts, thresholds, and priority reductions should work, including simultaneous large releases; done means the policy is implemented and its fairness and one-off release behavior are verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.