You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: RELEASE.md
+21-82
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,8 @@ release.
8
8
There are four release channels, `lts`, `release`, `beta` and `canary`.
9
9
Each has it's own section below.
10
10
11
-
In this guide, we are assuming that the remote `origin` is `[email protected]:emberjs/data.git`
11
+
In this guide, we are assuming that the remote `origin` is `[email protected]:emberjs/data.git`,
12
+
this remote needs to exist and `origin/master``origin/beta``origin/release` etc. need to be the upstreams of the local `master``beta``release` branches etc.
12
13
13
14
## Getting Setup To Do A Release
14
15
@@ -18,7 +19,9 @@ In order to release `ember-data` you must first ensure the following things:
18
19
- You have an account on `npm` and belongs to the `ember-data` organization on NPM
19
20
- You have `publish` rights within the `ember-data` organization on NPM
20
21
- You have configured your NPM account to use `2fa` (two factor authentication)
21
-
- You have installed `pnpm` and `node` globally
22
+
- You have logged into your NPM account on your machine (typically sessions preserve nearly forever once you have)
23
+
- You have configured `GITHUB_AUTH` token for `lerna-changelog` to be able to gather info for the release notes.
24
+
- You have installed `pnpm` and `node` globally (or better, via `volta`)
22
25
23
26
## Release Order
24
27
@@ -38,7 +41,7 @@ Twitter the Crosslinking the announcement to the following Discord channels.
@@ -61,14 +64,13 @@ Twitter the Crosslinking the announcement to the following Discord channels.
61
64
62
65
2. Generate the Changelog
63
66
67
+
> Note: If this is the first release of the LTS and there are no changes, just add an entry for the next patch version stating we are promoting the release to LTS.
68
+
64
69
The Changelog is generated with [lerna-changelog](https://github.com/lerna/lerna-changelog).
65
70
66
-
The primary task prior to generating the changelog is confirming that all pull requests that have been merged since the
67
-
last release have been labeled with the appropriate lerna-changelog labels and the titles have been updated to ensure
68
-
they represent something that would make sense to our users. Some great information on why this is important can be
69
-
found at keepachangelog.com, but the overall guiding principle here is that changelogs are for humans, not machines.
71
+
The changelog is generated based on labels applied to PRs since the last release. These labels are configured in the root `package.json`. Before merging PRs reviewers should always ensure a meaningful title for the changelog exists.
70
72
71
-
For the first release of an LTS, `previous-version` will be the last released version of the `release` channel.
73
+
For the first release of an LTS, `previous-version` will be the last released version of the `release` channel: e.g. `v4.8.1`
72
74
73
75
For subsequent versions it will be whatever version number we previously published for this LTS.
74
76
@@ -106,7 +108,7 @@ git push origin lts-<majorVersion>-<minorVersion> // Note: alternatively, you ca
106
108
- Edit the tag, adding a meaningful title and attaching the changelog (see other releases for examples)
107
109
- Publish the release!
108
110
109
-
### Release
111
+
### Latest / Stable Release
110
112
111
113
1. Checkout the `release` branch and ensure it is in-sync with `origin/release`.
112
114
@@ -131,33 +133,11 @@ git push origin lts-<majorVersion>-<minorVersion> // Note: alternatively, you ca
131
133
git reset --hard origin/release;
132
134
```
133
135
134
-
2. Update associated lockstep dependencies
135
-
136
-
**For our first release of the cycle only, we must also update our test harness:**
137
-
138
-
a. ensure that the `ember-source` version in `package.json` and relevant `packages/` matches only the minor range for the `ember-data` version we are releasing
139
-
140
-
E.G. `"ember-data": "3.4.1"` should have `"ember-source": "~3.4.0"`. For betas/canary, pointing at the last minor release is OK.
141
-
142
-
See https://github.com/emberjs/data/issues/5607 for the importance of this step.
143
-
144
-
b. ensure that the last two LTS releases of Ember (and only the last two) are included in `ember-try.js`.
145
-
146
-
See https://github.com/emberjs/data/issues/5607 for the importance of this step.
147
-
148
-
c. ensure the same for `azure-pipelines.yml`
149
-
d. ensure the same for `.github/workflows/main.yml`
150
-
151
-
3. Delete the Beta Changelog
152
-
153
-
If this is the first stable release for this major/minor, in `CHANGELOG.md` delete
154
-
the `beta` version entries associated with this release.
155
-
156
-
4. Generate the Changelog
136
+
2. Generate the Changelog
157
137
158
138
IT IS IMPORTANT THAT ALL CHANGES ARE ON THE REMOTE BRANCH SPECIFIED BY HEAD
159
139
160
-
`previous-version` will be whatever version we previously published as a `release`
140
+
`previous-version` will be whatever version we previously published as a `release`. E.g. if our last release was `4.8.4` and now we are publishing `4.9.0` then we would use `--from=v4.8.4`
- prepend a new section title for this version with Today's date to `CHANGELOG.md`
232
-
- insert changelog script output to `CHANGELOG.md` underneath this new section title
233
-
- edit changelog output to be as user-friendly as possible (drop [INTERNAL] changes, non-code changes, etc.)
234
-
- commit the changelog and push the change upstream
235
-
236
-
```
237
-
git add CHANGELOG.md;
238
-
git commit -m "Update Changelog for v<new-beta-version>";
239
-
git push origin beta;
240
-
```
241
-
242
-
Note it is prudent to make a PR to beta to make sure there are no errors.
243
-
244
-
```
245
-
git add CHANGELOG.md;
246
-
git commit -m "Update Changelog for v<new-beta-version>";
247
-
git push origin name/beta-new-beta-version;
248
-
249
-
3. Publish the weekly beta
198
+
2. Publish the weekly beta
250
199
251
200
```
252
201
node ./scripts/publish.js beta
253
202
```
254
-
255
-
4. Update the Release Notes on Github
256
-
257
-
- Visit [Ember Data Releases](https://github.com/emberjs/data/releases)
258
-
- Click on the "more recent tags"
259
-
- Click on the tag just published
260
-
- Edit the tag, adding a meaningful title and attaching the changelog (see other releases for examples)
261
-
- Click pre-release for beta releases
262
-
- Publish the release!
263
-
264
-
### Canary
203
+
### Canary Releases
265
204
266
205
1. Checkout the `#master` branch and ensure it is in-sync with `origin/master`.
267
206
@@ -297,9 +236,9 @@ Congrats, you are finished!
297
236
298
237
#### Canary Auto Publish
299
238
300
-
New canary versions are published to npm every Wednesday at 12pm PST by the `Alpha Release` GitHub action.
301
-
It will always increment the pre-release version of what's currently in the root `package.json`. For example from `3.25.0-alpha.1`
302
-
to `3.25.0-alpha.2`. **It requires a human to manually bump minor and major versions and publish**.
239
+
New canary versions are published to npm every Tuesday and Friday at 12pm PST by the `Alpha Release` GitHub action. They can also be published using the workflow trigger.
240
+
241
+
It will always increment the pre-release version of what's currently in the root `package.json`. For example from `3.25.0-alpha.1`to `3.25.0-alpha.2`. **It requires a human to manually bump minor and major versions and publish**.
303
242
304
243
To try out the script that will be executed in the GitHub action, use:
305
244
`node scripts/publish.js canary --dryRun --force --skipSmokeTest`. The `--dryRun` param will skip auto committing the
0 commit comments