Staged rollout
A staged rollout limits a release to a percentage of devices:
aether release-react MyApp ios -r 25The rollout value is an integer from 1 to 100. Later, widen it with:
aether patch MyApp Staging -r 50aether patch MyApp Staging -r 100At 100 the rollout is complete and the release behaves like a full release.
How devices are chosen
Section titled “How devices are chosen”Selection is deterministic. The server hashes the device’s client id together with the release tag and checks the result against the percentage. The same device stays in or out of a given rollout across checks, so a user does not flap between versions, and each release draws a fresh sample.
- The percentage can only go up. The server rejects a patch that lowers it.
- A completed rollout cannot be reopened: once a release reaches 100, its rollout can no longer be patched.
- While the latest release has an unfinished rollout, new releases to that deployment are blocked. The server answers:
Please update the previous release to 100% rollout before releasing a new package.Finish the rollout, or roll back if the release went badly. - Promotion can start its own staged rollout in the destination with
-r.
Devices outside the rollout keep running the previous release and keep checking in; they join as you raise the percentage.