freebsd-skq/contrib/bc/RELEASE.md

55 lines
1.6 KiB
Markdown
Raw Normal View History

Import new 2-clause BSD licenced implementation of the bc and dc commands These implementations of the bc and dc programs offer a number of advantages compared to the current implementations in the FreeBSD base system: - They do not depend on external large number functions (i.e. no dependency on OpenSSL or any other large number library) - They implements all features found in GNU bc/dc (with the exception of the forking of sub-processes, which the author of this version considers as a security issue). - They are significantly faster than the current code in base (more than 2 orders of magnitude in some of my tests, e.g. for 12345^100000). - They should be fully compatible with all features and the behavior of the current implementations in FreeBSD (not formally verified). - They support POSIX message catalogs and come with localized messages in Chinese, Dutch, English, French, German, Japanese, Polish, Portugueze, and Russian. - They offer very detailed man-pages that provide far more information than the current ones. The upstream sources contain a large number of tests, which are not imported with this commit. They could be integrated into our test framework at a latter time. Installation of this version is controlled by the option "MK_GH_BC=yes". This option will be set to yes by default in 13-CURRENT, but will be off by default in 12-STABLE. Approved by: imp Obtained from: https://git.yzena.com/gavin/bc MFC after: 4 weeks Relnotes: yes Differential Revision: https://reviews.freebsd.org/D19982
2020-06-27 12:02:01 +00:00
# Release Checklist
This is the checklist for cutting a release.
1. Update the README.
2. Update the manuals.
3. Test history manually.
4. Test with POSIX test suite.
5. Run the randmath.py script an excessive amount and add failing tests to
test suite.
* debug
* release
* minrelease
6. Fuzz with AFL.
* reldebug
7. Fix AFL crashes.
8. Find ASan crashes on AFL test cases.
9. Fix ASan crashes.
10. Build with xstatic.
11. Run and pass the `release.sh` script on my own machine.
12. Run and pass the `release.sh` script, without generated tests and
sanitizers, on FreeBSD.
13. Run and pass the `release.sh` script, without generated tests, sanitizers,
and 64-bit, on Thalheim's ARM server.
14. Run and pass the release script, with no generated tests, no clang, no
sanitizers, and no valgrind, on NetBSD.
15. Run and pass the release script, with no generated tests, no clang, no
sanitizers, and no valgrind, on OpenBSD.
16. Run Coverity Scan and eliminate warnings, if possible (both only).
* debug
17. Run `scan-build make`.
18. Repeat steps 3-14 again and repeat until nothing is found.
19. Update the benchmarks.
20. Change the version (remove "-dev") and commit.
21. Run `make clean_tests`.
22. Run the release script.
23. Upload the custom tarball to GitHub.
24. Add sha's to release notes.
25. Edit release notes for the changelog.
26. Increment to the next version (with "-dev").
27. Notify the following:
* FreeBSD
* Adelie Linux
* Ataraxia Linux
* Sabotage
* xstatic
* OpenBSD
* NetBSD
28. Submit new packages for the following:
* Alpine Linux
* Void Linux
* Gentoo Linux
* Linux from Scratch
* Arch Linux