-
Notifications
You must be signed in to change notification settings - Fork 52
Release process
The majority of our release process is automated by the changesets tool and our changeset-publish.yml GitHub Actions workflow.
A changeset is a small markdown file in the .changeset/ directory that describes the changes in a release. It is used to generate the changelog and the version bump. There is one changeset file for each "set of changes" i.e. a pull request. Every pull request requires a changeset file (enforced by the changeset bot).
If your PR is a consumer-facing change and should be mentioned in the release notes, create a changeset file like this:
pnpm changesetThe changeset cli will prompt you for the type of change (patch/minor/major), the affected packages (@adobe/alloy? @adobe/alloy-core? @adobe/alloy-sandbox-browser?) and a short summary of the changes.
Then commit the changeset file and push it to your branch.
Note
Only changes with a non-empty changeset are published. If a change only has an empty changeset (or no written changeset at all), it will not be published.
Good news! You don't need to do anything. "beta" prerelease mode is the default mode. Beta releases happen with every merge to main. They are published to the beta and next npm tags.
First, you need to set the prerelease mode to stable.
git switch main
git switch --create 2.31.1
pnpm changeset pre exit
git push origin 2.31.1Then create the PR and merge it into main.
This will move the publish process into "stable" mode. The version will be bumped to a number like 2.31.1 and published to the latest npm tag.
After the PR is merged and the version is published, the publish process will automatically move back to prerelease mode using the beta tag, ensuring that we are always releasing new versions.
No problem! Since changeset files are just markdown files, just edit the corresponding file in the .changeset/ directory and commit the changes. If you can't find the corresponding changeset file, i.e. it was from before the previous stable release, just edit the CHANGELOG.md file.
When you merge a PR into main, the changeset-publish.yml GitHub Actions workflow is triggered. Here's what happens:
-
The workflow determines the release mode (prerelease/stable) and the version number.
-
The workflow requests approval to publish the new version.
-
Once approved, the workflow runs
pnpm changeset versionto bump package versions and updateCHANGELOG.mdfiles based on the pending changesets. -
The packages are built and published to npm with the appropriate tags:
- Prerelease →
betaandnexttags - Stable →
latesttag
- Prerelease →
-
Browser-related artifacts are uploaded to the CDN.
-
A GitHub Release is created with the release notes extracted from
CHANGELOG.md. -
For stable releases only, the workflow automatically re-enters
betaprerelease mode so we're ready for the next development cycle.
All of these steps are automated. The only manual step is approving the publish in the GitHub Actions UI.