diff --git a/doc/howto/QUICKSTART.md b/doc/howto/QUICKSTART.md index da49f4896..ec644bdd3 100644 --- a/doc/howto/QUICKSTART.md +++ b/doc/howto/QUICKSTART.md @@ -74,11 +74,17 @@ Every change writes all of its files into one folder under `demo/`, and `FOLDERS Set it deliberately when you want a run to show one thing. `FOLDERS=1` puts every change in the same place, so the queue serializes the lot and each change speculates on the one before it. A number well above `COUNT` keeps them all apart, so they go out together. -How much speculation that turns into is capped by the queue's **build budget** — how many builds it may have occupying CI at once, counted across every in-flight batch rather than per batch. It defaults to 4 and is set per queue in the provider's `profiles.yaml`: +How much speculation that turns into is capped by the queue's **build budget** — how many builds it may have occupying CI at once, counted across every in-flight batch rather than per batch. It defaults to 4 and is set per queue in the provider's `profiles.yaml`. The demo also sets **predictor factors** there so speculation ranking revises the scorer's price when a path passes or fails or a batch is merging or cancelling; omitting that block leaves every factor at `1`, which is a no-op and ranks on the scorer alone. ```yaml defaults: speculator: {buildBudget: 4} + predictor: + factors: + pathPassed: 10 + pathFailed: 0.3 + merging: 12 + cancelling: 0.1 queues: - name: demo-queue diff --git a/service/submitqueue/demo/provider/fake/profiles.yaml b/service/submitqueue/demo/provider/fake/profiles.yaml index 5b1fb27b2..b0a620118 100644 --- a/service/submitqueue/demo/provider/fake/profiles.yaml +++ b/service/submitqueue/demo/provider/fake/profiles.yaml @@ -22,6 +22,15 @@ defaults: # 1 the queue explores one path at a time, and raising it lets it hedge more # of the outcomes it is waiting on. Four is the built-in default. speculator: {buildBudget: 4} + # Example evidence factors from the outcome-predictor RFC. Omitted keys would + # stay at 1 and ranking would stay on the scorer alone; writing them out makes + # the demo show how path results and batch state revise that price. + predictor: + factors: + pathPassed: 10 + pathFailed: 0.3 + merging: 12 + cancelling: 0.1 queues: # The queue `make demo-requests` and `make land` use by default. diff --git a/service/submitqueue/demo/provider/git/profiles.yaml b/service/submitqueue/demo/provider/git/profiles.yaml index e47054cc8..8ba87959a 100644 --- a/service/submitqueue/demo/provider/git/profiles.yaml +++ b/service/submitqueue/demo/provider/git/profiles.yaml @@ -12,6 +12,14 @@ defaults: buildRunner: {type: fake} # Serialize conservatively unless a queue says otherwise. analyzer: {type: all} + # Same example factors as ../fake/profiles.yaml — see that file for why they + # are written out rather than left at the neutral default of 1. + predictor: + factors: + pathPassed: 10 + pathFailed: 0.3 + merging: 12 + cancelling: 0.1 queues: # The queue `make demo-requests` and `make land` use by default. Serializes diff --git a/service/submitqueue/demo/provider/github/profiles.yaml b/service/submitqueue/demo/provider/github/profiles.yaml index 5ef8c34cd..234a15849 100644 --- a/service/submitqueue/demo/provider/github/profiles.yaml +++ b/service/submitqueue/demo/provider/github/profiles.yaml @@ -10,6 +10,14 @@ defaults: changeProvider: {type: fake} buildRunner: {type: fake} analyzer: {type: all} + # Same example factors as ../fake/profiles.yaml — see that file for why they + # are written out rather than left at the neutral default of 1. + predictor: + factors: + pathPassed: 10 + pathFailed: 0.3 + merging: 12 + cancelling: 0.1 queues: - name: demo-queue