Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion doc/howto/QUICKSTART.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions service/submitqueue/demo/provider/fake/profiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
8 changes: 8 additions & 0 deletions service/submitqueue/demo/provider/git/profiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions service/submitqueue/demo/provider/github/profiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading