Skip to content

Latest commit

 

History

History
221 lines (165 loc) · 5.95 KB

RELEASE.md

File metadata and controls

221 lines (165 loc) · 5.95 KB

Release Process

ember-cli follows the same channel based release process that Ember does:

  • release - This branch represents the latest dist-tag on NPM
  • beta - This branch represents the beta dist-tag on NPM
  • master - The branch is not released to the NPM registry, but (generally speaking) can be used directly

Initial Stable Release

  • 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 into release
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
  • Release: npx release-it
  • Update GitHub Release with changelog contents
  • Merge release into beta branch
git checkout -B beta --track origin/beta
git merge origin/release
git push origin beta

Stable Patch Release

  • 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
  • Release: npx release-it
  • Update GitHub Release with changelog contents
  • Merge release into beta branch
git checkout -B beta --track origin/beta
git merge origin/release
git push origin beta

Initial Beta Release

  • Update ember-source and ember-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 into beta
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
  • Release: npx release-it
  • Update GitHub Release with changelog contents
  • Merge beta into master branch
git checkout master
git merge origin/beta
git push origin master

Subsequent Beta Release

  • 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
  • Release: npx release-it
  • Update GitHub Release with changelog contents
  • Merge beta into master branch
git checkout master
git merge origin/beta
git push origin master

Post-release Automation

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

Both of these have a git-tag per release version

Online Editors

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]

StackBlitz

To make sure StackBlitz runs in their supported browsers (Chrome and FireFox, as of 2023-08-15)

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).