Releases
A release is one version of your JavaScript bundle plus metadata, published to one deployment. The server labels releases v1, v2, v3 and so on, per deployment, in the order they arrive.
What a release carries
Section titled “What a release carries”The package itself is immutable: its contents, packageHash (a SHA-256 of the contents), and size never change. Around it lives metadata:
appVersion: the semver version or range of app binaries this release targets, for example1.2.0or>=1.2.0 <2.0.0.isMandatory: the SDK installs mandatory updates with a more aggressive default install mode.isDisabled: a disabled release is not served to any device. Uploading a release with--disabledfor QA still creates that release in history. When the upload targets one concrete binary, fresh installs of that binary do not fall back to an older covering range until you enable the release or upload a newer covering one. The same serving rule applies when an exact-binary release is disabled by halt or patch; see Automatic halt.rollout: the percentage of devices eligible for the release. See Staged rollout.description: free text shown in history and available to the SDK’s update dialog.releaseMethod: how the release came to be.Uploadfor a direct release,PromoteorRollbackfor releases created by those operations, which also record the original label they came from.
Changing metadata after the fact
Section titled “Changing metadata after the fact”aether patch edits the mutable fields of an existing release without shipping new code:
aether patch MyApp Staging -l v3 --description "Fixes the crash on login" -m trueWithout -l it targets the latest release. You can change the description, the mandatory and disabled flags, the target binary version, and raise the rollout percentage.
Rules the server enforces
Section titled “Rules the server enforces”- Releasing the exact same bundle twice into the same deployment fails with a duplicate error. Pass
--noDuplicateReleaseErrorto turn that into a warning. - While the latest release has an unfinished rollout, you cannot release a new package. Finish it first:
aether patch MyApp Staging -r 100. - Release history is retained per your plan (14, 90, or 365 days). See Plans, quotas, and MAD.