The EmberData release process is mostly automated but requires manually configuring and triggering the appropriate workflow.
There are four standard and two non-standard release channels
- standard releases:
lts
,release
,beta
,canary
. - non-standard releases:
lts-prev
release-prev
Before we begin the release train, make sure that the roadmap is properly
updated on main
and beta
so that it will be accurate when the new release branch is
created. To do this you likely need to reach out to EmberData core team members to ensure
all recent planning discussions and work is properly accounted for.
In order to release EmberData you must have commit rights to ember-data
on GITHUB.
Everything else is handled by automation.
In the event you do need to perform a manuall release, you must also have permission
to push to protected branches, and access tokens for npm and github with permissions
to the related package scopes. For more information about manual releases run
bun release about
in the repository.
For manually releases you will need to ensure at least the following:
- You have
commit
rights toember-data
on GitHub - You have an account on
npm
and belongs to theember-data
andwarp-drive
organizations on NPM - You have
publish
rights within theember-data
andwarp-drive
organizations on NPM - You have configured your NPM account to use
2fa
(two factor authentication) - You have logged into your NPM account on your machine (typically sessions preserve nearly forever once you have)
- You have configured
GITHUB_AUTH
token forlerna-changelog
to be able to gather info for the release notes. - You have installed
bun
,pnpm
andnode
globally (or better, viavolta
) - the remote
origin
isgit@github.com:emberjs/data.git
, -origin/main
origin/beta
origin/release
etc. need to be the upstreams of the localmain
beta
release
branches etc.
When releasing more than one channel, we release from "most stable" to "least stable". This is what allows changes to flow down from canary to lts versioned seamlessly.
lts
(Most Stable)release
beta
canary
(Least Stable)
Since non-standard releases are always bespoke, they do not participate in the above flow.
You will find the automated workflows to perform these releases under the actions tab on github.
First, update the Release Notes on Github
- Visit Ember Data Releases
- Click on the "more recent tags"
- Click on the tag just published
- Edit the tag, adding a meaningful title and attaching the changelog (see other releases for examples)
- Publish the release!
- Only set the release as latest if it should be the
latest
tag on npm as well (e.g. therelease
channel). LTS/Beta/Canary/LTS-prev/Release-prev should never be marked aslatest
.
Once you have finished this release process, we recommend posting an announcement to your Threads/Mastadon/Twitter accounts and the crosslinking the announcement to the following Discord channels.