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:

    • The default in the API information object and the example.
    • The API_VERSION variable in the check_api.sh script.
    • The constant in json-schema/api_information.json.
    • The version mentioned in README.md. See for example this commit.
  3. Push this branch with these changes. To do so, either temporarily disable branch protection or create a PR targeting this new branch <yyyy>-<mm>.

  4. 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.

  5. Switch to the gh-pages branch and update README.md and versions.json. See for example this commit.

  6. publish the changes to https://ccs-specs.icpc.io/ by running

    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.