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
+41-71Lines changed: 41 additions & 71 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,125 +15,97 @@ QUnit aims for its releases to be reproducible. Recent releases are automaticall
15
15
>
16
16
> System prerequisites:
17
17
>
18
-
> * Node.js 12, or later.
18
+
> * Node.js 14, or later.
19
19
> * Git 2.11, or later.
20
20
21
-
1.Ensure that all changes for this release have been merged into the main branch. For patch releases, try landing any other bug fixes; for minor releases, ensure new features have been documented and tested. Major releases likely have their own checklist.
21
+
Ensure that all changes for this release have been merged into the main branch. For patch releases, try landing any other bug fixes; for minor releases, ensure new features have been documented and tested. Major releases likely have their own checklist.
22
22
23
-
2. Create a local `release` branch, and ensure it is up-to-date:
24
-
*Verify that the canonical repository is cloned (not a fork):
23
+
1. Create a local `release` branch, and ensure it is up-to-date:
24
+
Verify that the canonical repository is cloned (not a fork):
Run the tests in various real browsers, either locally or via [BrowserStack](https://www.browserstack.com/):
40
-
```
41
-
python3 -m http.server 4000
42
-
# or:
43
-
# php -S localhost:4000
44
39
45
-
open http://localhost:4000/test/
40
+
3. Create the release preparation commit:
41
+
```
42
+
node build/prep-release.js @VERSION
46
43
```
47
44
48
-
4. Create and push the release preparation commit:
45
+
* Use `git add -p` to review the changes.
46
+
* In `AUTHORS.txt`, if you see duplicate entries, then use the `.mailmap` file to normalize them to a canonical name and e-mail address, and then re-run the above command.
47
+
* Edit `History.md` to remove changes not relevant to end-users (e.g. changes relating to tests, build, internal refactoring, doc fixes, etc.).
48
+
49
+
Commit your changes with the following message (replace `@VERSION` with the release version):
50
+
```
51
+
Build: Prepare @VERSION release
52
+
```
49
53
50
-
1. Update the package.json and AUTHORS.txt files, by running the below command (replace `@VERSION` with the release version):
51
-
```
52
-
node build/prep-release.js @VERSION
53
-
```
54
-
* Use `git add -p` to review the changes.
55
-
* In `AUTHORS.txt`, if you see duplicate entries, then use the `.mailmap` file to normalize them to a canonical name and e-mail address, and then re-run the above command.
56
-
* Edit `History.md` to remove change not relevant to end-users (e.g. changes relating to tests, build, internal refactoring, doc fixes, etc.).
57
-
2. Commit the above changes with the following message (replace `@VERSION` with the release version):
58
-
```
59
-
Build: Prepare @VERSION release
60
-
```
61
-
3. Push the `release` branch to GitHub.
62
-
4. Create a pull request, and merge it once CI is passing.
54
+
Push the `release` branch to GitHub.
55
+
Once CI is passing, push again, this time to the (protected) `main` branch.
63
56
64
57
## Performing the release
65
58
66
-
5. Create a local `release` branch, and ensure it is up-to-date:
* Verify that the latest commit is your release preparation commit:
76
-
```
77
-
git show
78
-
# Build: Prepare x.y.z release
79
-
# …
80
-
```
59
+
Verify that your local repo is at the release preparation commit:
81
60
82
-
6. Make changes for the release commit:
83
-
* Set the release version for npm and Bower metadata (replace `@VERSION` with the release version):
84
-
```
85
-
node build/set-release.js @VERSION
86
-
```
87
-
This script will edit `package.json` and `bower.json`. It does not need any credentials or permissions, apart from read-write in the project directory.
61
+
```
62
+
git show
63
+
# Build: Prepare x.y.z release
64
+
# …
65
+
```
88
66
89
-
* Generate the release artifacts:
67
+
4. Build the release:
90
68
```
91
-
npm run build
69
+
node build/build-release.js @VERSION
92
70
```
71
+
This script does not need any credentials or permissions, and may be run in a container that can only read-write the current directory. This will edit `package.json` and `bower.json`, then execute `npm run build` to generate the release artifacts, then create a local clone of [jquery/codeorigin.jquery.com](https://github.com/jquery/codeorigin.jquery.com), and prepare a local commit for you to later push.
93
72
94
-
* Review the changes to the package and library files, compared to the previous release.
73
+
Review the release artifacts, compared to the previous release.
95
74
```
96
75
node build/review-package.js @LAST_VERSION
97
76
98
77
# … reviews package.json, qunit.js, and qunit.css
99
78
```
100
79
101
-
7. Commit and publish the release to GitHub.<br>⚠️ Do not push to the main branch!
80
+
5. Publish to GitHub.<br>⚠️ Do not push to the main branch!
102
81
```
103
82
git add -f package.json bower.json qunit/
104
83
git commit -m "Release @VERSION"
105
84
git tag -s "@VERSION" -m "Release @VERSION"
106
85
git push --tags
107
86
```
108
87
109
-
8. Verify that Bower sees the release, by running `npx bower info qunit` and checking that the latest
110
-
version is indeed the version we just published.
111
-
112
-
9. Publish the release to npm:
113
-
* Use `git status` to confirm once more that you have a clean working copy, apart from release artifacts in `qunit/`.
114
-
* Run `npm publish`, this will bundle the current directory and publish it to npm with the name and version specified in `package.json`.
115
-
* Verify that the release is displayed at <https://www.npmjs.com/package/qunit>.
116
-
117
-
10. Publish the release to the jQuery CDN:
118
-
* Prepare the commit locally:
119
-
```
120
-
node build/auth-cdn-commit.js real @VERSION
88
+
6. Publish to npm:
121
89
```
122
-
This will clone [jquery/codeorigin.jquery.com](https://github.com/jquery/codeorigin.jquery.com), copy the `qunit/` release artifacts and rename them to `qunit-@VERSION`, and create a local commit.
123
-
* Review the commit and push it:
90
+
npm publish
91
+
````
92
+
This will bundle the current directory and publish it to npm with the name and version specified in `package.json`.
93
+
Verify that the release is displayed at <https://www.npmjs.com/package/qunit>.
94
+
95
+
7. Publish to the jQuery CDN:
96
+
Review the commit and push it:
124
97
```
125
98
cd __codeorigin
126
99
git show
127
-
# …
128
100
git push
129
101
```
130
-
* Verify that the release is listed at <https://code.jquery.com/qunit/> and accessible via <https://code.jquery.com/qunit/qunit-x.y.z.js>
102
+
Verify that the release is listed at <https://code.jquery.com/qunit/> and that you can open the JS/CSS files.
131
103
132
104
## Updating the website
133
105
134
106
After the release is published, we need to update the website.
135
107
136
-
Check out the main branch of the [qunitjs/qunitjs.com](https://github.com/qunitjs/qunitjs.com) repository, and ensure it is clean and up-to-date. Update release links and demos to use the version we just released, using this script:
108
+
Check out the main branch of the [qunitjs/qunitjs.com](https://github.com/qunitjs/qunitjs.com) repository, and ensure it is clean and up-to-date. Run the following script, which will update release links and demos to use the new version:
137
109
138
110
```
139
111
qunitjs.com$ node build/set-version.js <version>
@@ -151,8 +123,6 @@ Push the commit, and check the website in a few minutes to verify the change ([d
151
123
152
124
You're almost there! Make sure you update [GitHub releases](https://github.com/qunitjs/qunit/releases) using the changelog from `History.md`.
153
125
154
-
Finally, make an announcement on the [@qunitjs](https://twitter.com/qunitjs) Twitter account. Mention highlights of the release if possible, andinclude a link to the release page.
155
-
156
126
That's it! If you made it this far, congratulations you have successfully released a version of QUnit!
157
127
158
128
_If anything in the above was inaccurate or unclear, improve it to mmake future releases easier!_
0 commit comments