xref: /aosp_15_r20/external/bc/manuals/release.md (revision 5a6e848804d15c18a0125914844ee4eb0bda4fcf)
1# Release Checklist
2
3This is the checklist for cutting a release.
4
5For a lot of these steps, they are only needed if the code that would be
6affected was changed. For example, I don't need to run the `scripts/randmath.py`
7test if I did not change any of the math code.
8
91.	Run `./scripts/format.sh`.
102.	Update the README.
113.	Update the manuals.
124.	Test with POSIX test suite.
135.	Run the `scripts/randmath.py` script an excessive amount and add failing
14	tests to test suite.
15	* debug
16	* release
17	* minrelease
186.	Fuzz with AFL.
19	* reldebug
207.	Fix AFL crashes.
218.	Find ASan crashes on AFL test cases.
229.	Fix ASan crashes.
2310.	Build on Windows, no errors or warnings.
24	* Debug/`x64`.
25	* Debug/`x86`.
26	* Release{MD,MT}/`x64`.
27	* Release{MD,MT}/`x86`.
2811.	Run and pass the `scripts/release.sh` script on my own machine.
2912.	Run and pass the `scripts/release.sh` script, without generated tests and
30	sanitizers, on FreeBSD.
3113.	Run and pass the `scripts/release.sh` script, without generated tests,
32	sanitizers, and 64-bit, on an ARM server.
3314.	Run and pass the release script, with no generated tests, no clang, no
34	sanitizers, and no valgrind, on NetBSD.
3515.	Run and pass the release script, with no generated tests, no sanitizers, and
36	no valgrind, on OpenBSD.
3716.	Run `scan-build make`.
3817.	Run `./scripts/lint.sh`.
3918.	Repeat steps 3-16 again and repeat until nothing is found.
4019.	Update the benchmarks.
4120.	Update the version and `NEWS.md` and commit.
4221. Boot into Windows.
4322. Build all release versions of everything.
44	* Release/`x64` for `bc`.
45	* Release/`x64` for `dc`.
46	* Release{MD,MT}/`x64` for `bcl`.
47	* Release/`x86` for `bc`.
48	* Release/`x86` for `dc`.
49	* Release{MD,MT}/`x86` for `bcl`.
5023.	Put the builds where Linux can access them.
5124. Boot back into Linux.
5225.	Run `make clean_tests`.
5326.	Run the `scripts/package.sh` script.
5427.	Upload the custom tarball and Windows builds to the Gavin Howard Gitea.
5528.	Add output from `scripts/package.sh` to Gavin Howard Gitea release notes.
5629.	Edit Gavin Howard Gitea release notes for the changelog.
5730.	Upload the custom tarball to GitHub.
5831.	Add output from `scripts/package.sh` to GitHub release notes.
5932.	Edit GitHub release notes for the changelog.
6033.	Notify the following:
61	* FreeBSD
62	* Adelie Linux
63	* Ataraxia Linux
64	* Sabotage
65	* xstatic
66	* OpenBSD
67	* NetBSD
6834.	Submit new packages for the following:
69	* Gentoo Linux
70	* Termux
71	* Linux from Scratch
72	* Alpine Linux
73	* Void Linux
74	* Arch Linux
75