When a new version of Ember is released, the learning team has to make sure some parts of our infrastructure are adequately updated to account for it. Please update the following in the listed order:
💁 manual process
🚨 This process is not well defined and needs to be streamlined ASAP 🚨
Check if there are any Tutorial Updates PRs that need to be merged before ember-cli is released. If we have missed our window then the guides/release/tutorial/part-1/orientation.md will show the new ember-cli version and when we snapshot the release folder (i.e. copy it to a folder with the previous release number) then the tutorial will be wrong.
💁 manual process
NOTE ember-source, ember-data, and ember-cli must already be released.
- Generate a new blog post for the release with
ember generate release-blog MAJOR.MINORwhere MAJOR.MINOR is the version number, i.e4.5. There is a--authorsoption available which defaults to the Ember Learning Team. - Open a PR with the template at https://github.com/ember-learn/ember-blog/pulls.
- Tag core teams in
core-metaon discord to fill in details and approve for their respective teams.
💁 manual process
- Clone deprecation-app.
- To see deprecations in
ember-source, you can visit https://deprecations.emberjs.com/v3.x/. - Check if there are deprecations listed under "Upcoming Features" that are a part of the new release (e.g.
v3.25). If there are, proceed with this step, if there are not, you can skip to the Guides step. - Find the relevant Markdown file in
/content/ember/v3folder. - Update the frontmatter
since: "Upcoming Features"tosince: "v3.25". - Repeat steps 2-5 for deprecations in
ember-data. (https://deprecations.emberjs.com/ember-data/v3.x) - Open a pull request.
We have a CLI tool called ember-learn-release-tool that automates many of the below steps and is recommended. Each of those automated steps has a manual fallback process.
git clone https://github.com/ember-learn/guides-source.git- install 1Password and make sure you have access to the
Ember CLIvault - install
1password-cli - sign in to
1password-cli - sign in to 1password
Ember CLIvault
- Guides PR
- merge guides PR
- Guides search
- API documentation
- API docs search
- merge blog PR
- merge deprecations PR
- Release pages
- Upgrade Guide
- Glitch Ember starter
- Ember Wikipedia
- Release bot
🤖 automated process
Run the following command with ember-learn-release-tool
pnpm dlx ember-learn-release-tool guides
Follow the prompts and open a PR for the new version
Fallback 💁 Manual process
Instructions are found in [MAINTAINERS.md](https://github.com/ember-learn/guides-source/blob/master/MAINTAINERS.md#deploying-a-new-version).
Merge the PR that you generated in the Guides step. Ensure that it is successfully deployed and manually spot-check the Guides before proceeding.
🤖 automated process
Run the following command with ember-learn-release-tool
pnpm dlx ember-learn-release-tool guides-search
Follow the prompts and when it looks like it is done deploying you should test the search on https://guides.emberjs.com/
Fallback 💁 manual process
Instructions are found in [MAINTAINERS.md](https://github.com/ember-learn/guides-source/blob/master/MAINTAINERS.md#updating-the-guides-search).
💁 manual process
Instructions are found in the README of ember-jsonapi-docs.
💁 manual process
Instructions are found in the README of algolia-index-update-scripts.
Ensure the Blog post PR is ready to be released (final date checks, check no bug fixes, features or deprecations are missing from each package, double check grammar/spelling, general polish, etc.), and once it is ready merge the PR. Ensure the blog post is deployed.
Ensure the deprecations PR is ready to be merged (ensure no new deprecations have been added that need to be addressed if the PR has been open for some time). Ensure the deprecations PR is deployed.
💁 manual process
- Clone ember-website
- Edit
data/project/ember/release.md- update
lastReleaseto be the first patch version of the newember-sourcerelease - update
dateto be the date of the first patch version of the newember-sourcerelease
- update
- Edit
data/project/emberData/release.md- update
lastReleaseto be the first patch version of the newember-datarelease - update
dateto be the date of the first patch version of the newember-datarelease
- update
- Edit
data/project/ember/beta.md- update
lastReleaseto be the latest beta version ofember-source - update
dateto be the date of the latest beta version ofember-source
- update
- Edit
data/project/emberData/beta.md- update
lastReleaseto be the latest beta version ofember-data - update
dateto be the date of the latest beta version ofember-data
- update
If there is a new LTS release then you should make the following changes too:
- Edit
data/project/ember/lts.md- update
lastReleaseto be the latest patch version of the new LTS release - update
dateto be the date of the latest patch version of the new LTS release
- update
- Edit
app/controllers/releases/lts.js- make sure the entries in the array are correct
- if there is a LTS version that has been removed from support then remove it and add it to the html table on
app/templates/releases/lts.hbs
Pro tip: if you're looking for the exact date that a project has released you can run npm info ember-source time and see the list of releases and dates.
Note: https://libraries.io/npm/ may not contain all the versions so it may be best to check tags (not releases) in the GitHub project for dates.
💁 manual process
- Clone upgrade-guide and run
npm install. (You can runember serveand visit http://localhost:4200 to see your changes take effect.) - Run
ember generate upgrade-notes <NEW_VERSION>(e.g.ember g upgrade-notes 3.25) to create 3 Markdown files. - Edit the files by recording features and deprecations. You can find short descriptions for features and deprecations in the release blog post.
- Edit the
app/utils/ember-versions.jsfile. Append the release version to the end of the array. - Run
npm run lintandnpm test. (You will likely need to update 1 test assertion. It checks how many features and deprecations can be seen since Ember 3.15 release.) - Open a pull request, then merge it.
💁 manual process
Note: The Wikipedia page may have already been updated automatically for the version you are releasing. If that is the case, you can skip this step.
- Go to https://en.wikipedia.org/wiki/Ember.js.
- Click on the pencil icon next to the version.
- Add the new version to the bottom of the
software version identifierlist- Make sure to also add the reference, including the title. The title also needs to have a language, you can set this by clicking the keyboard icon that's popping up.
- After you have clicked published you need to update the ranks of the versions. Click the up-arrow above the circle to make it prefered and set the previous version back to normal by clicking on the circle.
💁 manual process
- Go to the core meta channel in Discord.
- Mark current release as done with
/release-done blog. - Schedule next release with the
/release-next <version M.mm> <date MM/DD/YYYY>command. E.g./release-next 3.26 03/22/2021. Note, the date should likely be 6 weeks from the Monday that the current release week started with (regardless of how late we might be). https://wolframalpha.com/ can help with accurately calculating this date.