Release Procedure - graphitemaster/gmqcc GitHub Wiki

What to do for a release.

  1. Clean up code. (See below!)
  2. Make sure GMQCC_VERSION_* macros in gmqcc.h contain the desired release version.
  3. Make sure the documentation (manpages, code comments) are up to date.
  4. Check that the documentation are up to date with ./misc/check_doc.sh
  5. Ensure Xonotic compiles and runs as intended.
  6. Update CHANGES file.
  7. Update the website.
  8. Update versions in the package build files in the distro/ directory.
  9. Undefine GMQCC_VERSION_TYPE_DEVEL in gmqcc.h.
  10. With an amd64 CPU run make all in distro/ directory.
  11. Tag the release and push the tag.
  12. 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!