1.3 KiB
How to make a release?
-
Check that all test pass on all primary systems. Run 'make check' on all primary systems. No error shall be reported.
-
Check that no memory leak is reported by valgrind: Run 'make valgrind' in tests folder on a system. NOTE: valgrind seems completly lost in all the tests which spawn a lot of threads.
-
Check that no undefined behavior, nor data race, ... is reported by sanitizer: Run 'make sanitize' in tests folder on a system. This needs at least GCC 7
-
Check that no new warning is reported by static analyser: Run 'make scan-build' in tests folder on a system. This needs at least clang 4. Currently there is a false positive detected in m-shared: "Argument to free() is offset by 8 bytes from the start of memory allocated by malloc()" scan-build is not able to properly track that this case cannot happen.
-
Check that coverage is reasonnable. Run 'make coverage' and analyze result.
-
Publish the release
In case of problem, open a problem report.
List of tested systems
- gcc 4.9, 7 & 8 on linux/x86-64
- clang 3.5, 4 & 6 on linux/x86-64
- g++ 7 & 8 on linux/x86-64
- tcc on linux/x86-64
- gcc 7 on windows/x86-64
- gcc 4.9 on linux/powerpc
- gcc 6 on linux/armv7l
- clang 3.8 on linux/armv7l