Release Procedure - graphitemaster/gmqcc GitHub Wiki
What to do for a release.
Clean up code. (See below!)
Make sure GMQCC_VERSION_* macros in gmqcc.h contain the desired release version.
Make sure the documentation (manpages, code comments) are up to date.
Check that the documentation are up to date with ./misc/check_doc.sh
Ensure Xonotic compiles and runs as intended.
Update CHANGES file.
Update the website.
Update versions in the package build files in the distro/ directory.
Undefine GMQCC_VERSION_TYPE_DEVEL in gmqcc.h.
With an amd64 CPU run make all in distro/ directory.
Tag the release and push the tag.
In a single NEW commit, bump GMQCC_VERSION_* macros and define GMQCC_VERSION_TYPE_DEVEL in gmqcc.h.
Cleaning up code
Remove all trailing whitespace, this can be done with make whitespace
Ensure all files have the correct permissions
Ensure all files have a empty newline at EOF, this can be done with make newline
Compile the code on all available systems
Compile the code for all available architectures (x86, amd64, arm)
Compile the code on all available compilers (gcc, tcc, clang, pathscale, msvc, and
g++ to ensure the code compiles as C++ code as well.)
Compile with make splint to ensure there are no trivial code errors.
Compile with make coverity and upload to http://scan.coverity to ensure there are no deeply
manifested code errors.
Run the testsuite for all combinations of compilers, architectures and systems.
Wait for travis-ci to return a successful result on all builds.
Afterwards
Notify build script maintainers (if any) - ie. touch the -git PKGBUILDs on AUR, upload new version if the old one's orphaned or mark as outdated otherwise.
Mention the new release to Xonotic developers
Wait a couple days to see if Xonotic developers find any breakage, if there isn't any, release!