ember-cli follows the same channel based release process that Ember does:
release
- This branch represents thelatest
dist-tag on NPMbeta
- This branch represents thebeta
dist-tag on NPMmaster
- The branch is not released to the NPM registry, but (generally speaking) can be used directly
- Update blueprint dependencies to latest
node ./dev/update-blueprint-dependencies.js --ember-source=latest --ember-data=latest
-
Commit
-
Send pull request to
beta
branch -
Wait for PR (for updating blueprint dependencies) to be merged
-
Checkout the
release
branch
git fetch origin
git checkout -B release --track origin/release
- Merge
beta
branch intorelease
git fetch origin
git merge origin/beta
git push origin release
- Ensure you have the correct dependencies
git clean -fdx
yarn
- Update the CHANGELOG.md
- Run
node ./dev/changelog
- Copy output into
CHANGELOG.md
- Edit to make clearer for consumers (remove non-consumer facing entries, etc)
- Ensure blueprint change diff URLs are correct
- Merge any prior beta entries together
- Update changelog header for current release
- Commit
- Run
- Release:
npx release-it
- Update GitHub Release with changelog contents
- Merge
release
intobeta
branch
git checkout -B beta --track origin/beta
git merge origin/release
git push origin beta
- Checkout the
release
branch
git fetch origin
git checkout -B release --track origin/release
- Ensure you have the correct dependencies
git clean -fdx
yarn
- Update the CHANGELOG.md
- Run
node ./dev/changelog
- Copy output into
CHANGELOG.md
- Edit to make clearer for consumers (remove non-consumer facing entries, etc)
- Ensure blueprint change diff URLs are correct
- Update changelog header for current release
- Commit
- Run
- Release:
npx release-it
- Update GitHub Release with changelog contents
- Merge
release
intobeta
branch
git checkout -B beta --track origin/beta
git merge origin/release
git push origin beta
- Update
ember-source
andember-data
to latest beta
node ./dev/update-blueprint-dependencies.js --ember-source=beta --ember-data=beta
- Commit
- Send pull request to
master
branch - Wait for PR (for updating blueprint dependencies) to be merged
- Checkout the
beta
branch
git fetch origin
git checkout -B beta --track origin/beta
- Merge
master
branch intobeta
git fetch origin
git merge origin/master
git push origin beta
- Ensure you have the correct dependencies
git clean -fdx
yarn
- Update the CHANGELOG.md
- Run
node ./dev/changelog
- Copy output into
CHANGELOG.md
- Edit to make clearer for consumers (remove non-consumer facing entries, etc)
- Ensure blueprint change diff URLs are correct
- Update changelog header for current release
- Commit
- Run
- Release:
npx release-it
- Update GitHub Release with changelog contents
- Merge
beta
intomaster
branch
git checkout master
git merge origin/beta
git push origin master
- Checkout the
beta
branch
git fetch origin
git checkout -B beta --track origin/beta
- Ensure you have the correct dependencies
git clean -fdx
yarn
- Update the CHANGELOG.md
- Run
node ./dev/changelog
- Copy output into
CHANGELOG.md
- Edit to make clearer for consumers (remove non-consumer facing entries, etc)
- Ensure blueprint change diff URLs are correct
- Update changelog header for current release
- Commit
- Run
- Release:
npx release-it
- Update GitHub Release with changelog contents
- Merge
beta
intomaster
branch
git checkout master
git merge origin/beta
git push origin master
There is a GitHub Actions workflow, https://github.com/ember-cli/ember-cli/actions/workflows/sync-output-repos.yml that pushes various invocations of the blueprint generator to "output repos". After release, make sure that all the jobs are "green" / succeeded.
What to check afterwards
- Apps: https://github.com/ember-cli/ember-app-output
- Addons: https://github.com/ember-cli/ember-addon-output
Both of these have a git-tag per release version
Multiple editors could be supported, but right now, we only "customize" for stackblitz.
https://github.com/ember-cli/editor-output/
- a branch for each scenario + release version
${editorName}-{addon,app}-output{-'typescript'?}{-version}
- and the "latest release" (non beta) will not have a version at the end
- This includes [app, addon] X [javascript, typescript]
To make sure StackBlitz runs in their supported browsers (Chrome and FireFox, as of 2023-08-15)
- App + JS: https://stackblitz.com/github/ember-cli/editor-output/tree/stackblitz-app-output
- App + TS: https://stackblitz.com/github/ember-cli/editor-output/tree/stackblitz-app-output-typescript
- Addon + JS: https://stackblitz.com/github/ember-cli/editor-output/tree/stackblitz-addon-output
- Addon + TS: https://stackblitz.com/github/ember-cli/editor-output/tree/stackblitz-addon-output-typescript
The App + JS, and App + TS are linked from Stackblitz's frontend templates UI: https://stackblitz.com/?starters=frontend
if problems arise
Script for updating addon/app repos: https://github.com/ember-cli/ember-cli/blob/master/dev/update-output-repos.js Script for updating editors: https://github.com/ember-cli/ember-cli/blob/master/dev/update-editor-output-repos.js
Customizations on top of the default blueprint(s) are found here: https://github.com/ember-cli/ember-cli/tree/master/dev/online-editors/stackblitz The intent for these customizations is to either be very light, or not needed at all. If an online editor breaks with our default blueprint, then it's most likely that we have a bug (or something very goofy).