xref: /aosp_15_r20/external/bc/manuals/release.md (revision 5a6e848804d15c18a0125914844ee4eb0bda4fcf)
1*5a6e8488SAndroid Build Coastguard Worker# Release Checklist
2*5a6e8488SAndroid Build Coastguard Worker
3*5a6e8488SAndroid Build Coastguard WorkerThis is the checklist for cutting a release.
4*5a6e8488SAndroid Build Coastguard Worker
5*5a6e8488SAndroid Build Coastguard WorkerFor a lot of these steps, they are only needed if the code that would be
6*5a6e8488SAndroid Build Coastguard Workeraffected was changed. For example, I don't need to run the `scripts/randmath.py`
7*5a6e8488SAndroid Build Coastguard Workertest if I did not change any of the math code.
8*5a6e8488SAndroid Build Coastguard Worker
9*5a6e8488SAndroid Build Coastguard Worker1.	Run `./scripts/format.sh`.
10*5a6e8488SAndroid Build Coastguard Worker2.	Update the README.
11*5a6e8488SAndroid Build Coastguard Worker3.	Update the manuals.
12*5a6e8488SAndroid Build Coastguard Worker4.	Test with POSIX test suite.
13*5a6e8488SAndroid Build Coastguard Worker5.	Run the `scripts/randmath.py` script an excessive amount and add failing
14*5a6e8488SAndroid Build Coastguard Worker	tests to test suite.
15*5a6e8488SAndroid Build Coastguard Worker	* debug
16*5a6e8488SAndroid Build Coastguard Worker	* release
17*5a6e8488SAndroid Build Coastguard Worker	* minrelease
18*5a6e8488SAndroid Build Coastguard Worker6.	Fuzz with AFL.
19*5a6e8488SAndroid Build Coastguard Worker	* reldebug
20*5a6e8488SAndroid Build Coastguard Worker7.	Fix AFL crashes.
21*5a6e8488SAndroid Build Coastguard Worker8.	Find ASan crashes on AFL test cases.
22*5a6e8488SAndroid Build Coastguard Worker9.	Fix ASan crashes.
23*5a6e8488SAndroid Build Coastguard Worker10.	Build on Windows, no errors or warnings.
24*5a6e8488SAndroid Build Coastguard Worker	* Debug/`x64`.
25*5a6e8488SAndroid Build Coastguard Worker	* Debug/`x86`.
26*5a6e8488SAndroid Build Coastguard Worker	* Release{MD,MT}/`x64`.
27*5a6e8488SAndroid Build Coastguard Worker	* Release{MD,MT}/`x86`.
28*5a6e8488SAndroid Build Coastguard Worker11.	Run and pass the `scripts/release.sh` script on my own machine.
29*5a6e8488SAndroid Build Coastguard Worker12.	Run and pass the `scripts/release.sh` script, without generated tests and
30*5a6e8488SAndroid Build Coastguard Worker	sanitizers, on FreeBSD.
31*5a6e8488SAndroid Build Coastguard Worker13.	Run and pass the `scripts/release.sh` script, without generated tests,
32*5a6e8488SAndroid Build Coastguard Worker	sanitizers, and 64-bit, on an ARM server.
33*5a6e8488SAndroid Build Coastguard Worker14.	Run and pass the release script, with no generated tests, no clang, no
34*5a6e8488SAndroid Build Coastguard Worker	sanitizers, and no valgrind, on NetBSD.
35*5a6e8488SAndroid Build Coastguard Worker15.	Run and pass the release script, with no generated tests, no sanitizers, and
36*5a6e8488SAndroid Build Coastguard Worker	no valgrind, on OpenBSD.
37*5a6e8488SAndroid Build Coastguard Worker16.	Run `scan-build make`.
38*5a6e8488SAndroid Build Coastguard Worker17.	Run `./scripts/lint.sh`.
39*5a6e8488SAndroid Build Coastguard Worker18.	Repeat steps 3-16 again and repeat until nothing is found.
40*5a6e8488SAndroid Build Coastguard Worker19.	Update the benchmarks.
41*5a6e8488SAndroid Build Coastguard Worker20.	Update the version and `NEWS.md` and commit.
42*5a6e8488SAndroid Build Coastguard Worker21. Boot into Windows.
43*5a6e8488SAndroid Build Coastguard Worker22. Build all release versions of everything.
44*5a6e8488SAndroid Build Coastguard Worker	* Release/`x64` for `bc`.
45*5a6e8488SAndroid Build Coastguard Worker	* Release/`x64` for `dc`.
46*5a6e8488SAndroid Build Coastguard Worker	* Release{MD,MT}/`x64` for `bcl`.
47*5a6e8488SAndroid Build Coastguard Worker	* Release/`x86` for `bc`.
48*5a6e8488SAndroid Build Coastguard Worker	* Release/`x86` for `dc`.
49*5a6e8488SAndroid Build Coastguard Worker	* Release{MD,MT}/`x86` for `bcl`.
50*5a6e8488SAndroid Build Coastguard Worker23.	Put the builds where Linux can access them.
51*5a6e8488SAndroid Build Coastguard Worker24. Boot back into Linux.
52*5a6e8488SAndroid Build Coastguard Worker25.	Run `make clean_tests`.
53*5a6e8488SAndroid Build Coastguard Worker26.	Run the `scripts/package.sh` script.
54*5a6e8488SAndroid Build Coastguard Worker27.	Upload the custom tarball and Windows builds to the Gavin Howard Gitea.
55*5a6e8488SAndroid Build Coastguard Worker28.	Add output from `scripts/package.sh` to Gavin Howard Gitea release notes.
56*5a6e8488SAndroid Build Coastguard Worker29.	Edit Gavin Howard Gitea release notes for the changelog.
57*5a6e8488SAndroid Build Coastguard Worker30.	Upload the custom tarball to GitHub.
58*5a6e8488SAndroid Build Coastguard Worker31.	Add output from `scripts/package.sh` to GitHub release notes.
59*5a6e8488SAndroid Build Coastguard Worker32.	Edit GitHub release notes for the changelog.
60*5a6e8488SAndroid Build Coastguard Worker33.	Notify the following:
61*5a6e8488SAndroid Build Coastguard Worker	* FreeBSD
62*5a6e8488SAndroid Build Coastguard Worker	* Adelie Linux
63*5a6e8488SAndroid Build Coastguard Worker	* Ataraxia Linux
64*5a6e8488SAndroid Build Coastguard Worker	* Sabotage
65*5a6e8488SAndroid Build Coastguard Worker	* xstatic
66*5a6e8488SAndroid Build Coastguard Worker	* OpenBSD
67*5a6e8488SAndroid Build Coastguard Worker	* NetBSD
68*5a6e8488SAndroid Build Coastguard Worker34.	Submit new packages for the following:
69*5a6e8488SAndroid Build Coastguard Worker	* Gentoo Linux
70*5a6e8488SAndroid Build Coastguard Worker	* Termux
71*5a6e8488SAndroid Build Coastguard Worker	* Linux from Scratch
72*5a6e8488SAndroid Build Coastguard Worker	* Alpine Linux
73*5a6e8488SAndroid Build Coastguard Worker	* Void Linux
74*5a6e8488SAndroid Build Coastguard Worker	* Arch Linux
75