Release guide

This is a guide for maintainers of this repository on how to release a new version of the Contest API and related specifications.

  1. Create a new branch named <yyyy>-<mm>, using the (approximate) current year and month to version this release.
  2. On this branch, replace the version draft by <yyyy>-<mm> in all relevant places. This includes at least:
  3. The default in the API information object and the example.
  4. The API_VERSION variable in the check_api.sh script.
  5. The constant in json-schema/api_information.json.
  6. The version mentioned in README.md. See for example this commit.
  7. Push this branch with these changes. To do so, either temporarily disable branch protection or create a PR targeting this new branch <yyyy>-<mm>.
  8. On the master branch, empty the “Changes compared to” section in README.md and update the version to <yyyy>-<mm>. See for example this commit.
  9. Switch to the gh-pages branch and update README.md and versions.json. See for example this commit.
  10. publish the changes to https://ccs-specs.icpc.io/ by running bash export JEKYLL_GITHUB_TOKEN=github_pat_<long_private_token_string...> ./update-docs.sh and then verify and push the commit the script made. See also dev-notes.md in this branch for a few more details.

This currently takes a few hours, since the script pauses 30 minutes in between each version to not hit Github API rate limits.

TODO

  • Replace the obsolete Jekyll setup with something more modern and easier to use.