Skip to content

Commit fffe7d1

Browse files
docs(RELEASE): store release instructions
1 parent 005dd97 commit fffe7d1

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

RELEASE.md

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# AngularJS Release instructions
2+
3+
4+
## Compare the list of commits between stable and unstable
5+
6+
There is a script - compare-master-to-stable.js - that helps with this.
7+
We just want to make sure that good commits (low risk fixes + docs fixes) got cherry-picked into stable branch and nothing interesting got merged only into stable branch.
8+
9+
10+
## Pick a release name (for this version)
11+
12+
A super-heroic power (adverb-verb phrase).
13+
14+
15+
## Generate release notes
16+
17+
Example Commit: https://github.com/angular/angular.js/commit/7ab5098c14ee4f195dbfe2681e402fe2dfeacd78
18+
19+
1) Run
20+
21+
```bash
22+
node_modules/.bin/changez -o changes.md -v <new version> <base branch>
23+
```
24+
25+
2) Review the generated file and manually fix typos, group and reorder stuff if needed.
26+
3) Move the content into CHANGELOG.md add release code-names to headers.
27+
4) Push the changes to your private github repo and review.
28+
5) cherry-pick the release notes commit to the appropriate branches.
29+
30+
31+
## Pick a commit to release (for this version)
32+
33+
Usually this will be the commit containing the release notes, but it may also be in the past.
34+
35+
36+
## Run "release" script
37+
38+
```bash
39+
scripts/jenkins/release.sh --git-push-dryrun=false --commit-sha=8822a4f --version-number=1.7.6 --version-name=gravity-manipulation
40+
```
41+
42+
1) The SHA is of the commit to release (could be in the past).
43+
44+
2) The version number and code-name that should be released, not the next version number (e.g. to release 1.2.12 you enter 1.2.12 as release version and the code-name that was picked for 1.2.12, cauliflower-eradication).
45+
46+
3) You will need to have write access to all the AngularJS github dist repositories and publish rights for the AngularJS packages on npm.
47+
48+
49+
## Update GitHub milestones
50+
51+
1) Create the next milestone if it doesn't exist yet-giving ita due date.
52+
2) Move all open issues and PRs for the current milestone to the next milestone<br>
53+
You can do this by filtering the current milestone, selecting via checklist, and moving to the next milestone within the GH issues page.
54+
55+
3) Close the current milestone click the milestones tab and close from there.
56+
4) Create a new holding milestone for the release after next-but don't give it a due date otherwise that will mess up the dashboard.
57+
58+
59+
## Push build artifacts to CDN
60+
61+
Google CDNs are fed with data from google3 every day at 11:15am PT it takes only few minutes for the import to propagate).
62+
If we want to make our files available, we need submit our CLs before this time on the day of the release.
63+
64+
65+
## Don't update the package.json (branchVersion) until the CDN has updated
66+
67+
This is the version used to compute what version to link to in the CDN. If you update this too early then the CDN lookup fails and you end up with 'null, for the version, which breaks the docs.
68+
69+
70+
## Verify angularjs.org download modal has latest version (updates via Travis job)
71+
72+
The versions in the modal are updated (based on the versions available on CDN) as part of the Travis deploy stage: https://github.com/angular/angularjs.org/blob/a4d25c5abcd39e8ce19d31cb1c78073d13c4c974/.travis.yml#L26
73+
(You may need to explicitly trigger the Travis job. e.g. re-running the last job.)
74+
75+
76+
## Announce the release (via official Google accounts)
77+
78+
Double check that angularjs.org is up to date with the new release version before sharing.
79+
80+
1) Collect a list of contributors
81+
82+
use: `git log --format='%aN' v1.2.12..v1.2.13 | sort -u`
83+
84+
2) Write a blog post (for minor releases, not patch releases) and publish it with the "release" tag
85+
3) Post on twitter as yourself (tweet from your heart; there is no template for this), retweet as @AngularJS
86+
87+
88+
## Party!
89+
90+
91+
## Major Release Tasks
92+
93+
1) Update angularjs.org to use the latest branch.
94+
2) Write up a migration document.
95+
3) Create a new git branch for the version that has been released (e.g. 1.8.x).
96+
4) Check that the build and release scripts still work.
97+
5) Update the dist-tag of the old branch, see https://github.com/angular/angular.js/pull/12722.
98+
6) Write a blog post.

0 commit comments

Comments
 (0)