Beginning with 2017 Week 42, Differential has a new "draft" state for revisions. Currently,At the time, this was only active if prototypes are enabled. this is only active if prototypes are enabledAs of 2020 Week 7, although it will become a defaultit is now the normal behavior in the coming weeks.
When revisions are created, they are initially "Draft" revisions until builds pass. Once builds pass, they are submitted for review. (If you don't use Harbormaster to perform builds, all builds automatically pass immediately, so this state is transient.)
You can share the URI to a draft revision normally, but it won't appear on reviewers' dashboards yet and they won't be notified via email or notifications that it exists. Once builds pass, it will automatically promote to "Needs Review", notify reviewers, and appear on their dashboards. This raises the signal-to-noise ratio for reviewers by keeping revisions with build failures out of their queues, puts more pressure on authors to be responsible about tests, and puts more pressure on everyone to write reliable, fast tests.
You can manually "Request Review" to submit a draft for review before builds complete (or if builds fail).
In the Arcanist `experimental` branch, you can also use `arc diff --draft` to hold revisions as drafts indefinitely. You can use this as a preview if you'd like to look things over before submitting a revision manually.Some `arc diff` flags have also changed:
- See T11911 for related changes o- `arc diff --draft` has been added. This flag keeps a revision in the Arcanist `experimental` branch"Draft" state, even after builds pass.
- `arc diff --preview` has been removed. This was largely redundant with `--draft`.
- `arc diff --plan-changes` has been removed. This was largely redundant with `--draft`.
- `arc diff --no-diff` has been removed. This was a legacy flag.
- `arc diff --cache` has been removed. This was a legacy flag.
See T2543 for additional discussion of the "Draft" state.