# This document is a Work in Progress


This document pretends to put everything that is important to check
 before doing a full site release as well as to how to do it,
 to ensure that the site fully works upon the release of a new version.

Depending on the nature of the changes, only some sections
 of this list will be relevant - Feel free to focus only on those
 you deem most important.

If you think we are missing any important point, we greatly appreciate
 suggestions.

## Running the site
First things first, we'll use the beta environment as it lets us run the
 site under additional checks that will automate some of the problem
 detections for us.

To run the new version on the beta environment we'll use the `ce` utility:

Ensure that the beta environment is active by running
 `ce --env beta environment start` - You can skip this step if it's
 already running from a previous run or if you'd rather boot it once
 the current version is marked as active.

Check what `versionId` the desired commit has. This can be checked on the
 Travis CI build logs as its build number for that specific commit, or
 by running `ce --env beta builds list` which shows a list of the
 most recent builds with their corresponding commit hash.

Once you have the desired `versionId`, mark it as the current version to
 be used by running `ce --env beta builds set_current {versionId}`

If needed, you can now restart the currently running instances
 with `ce --env beta instances restart` if needed.

Once this is finished, the `/beta` endpoint should be ready for testing.

- The first issue you might find is that the beta instance does not boot.
 This might be caused by the `--ensureNoIdClash` flag shutting the app down
 if it detects one or more pairs of compilers sharing the same id
 even if they belong to different languages. An error should be logged
 with the culprits for easy debugging.


## Basic general site functionality
In-depth documentation follows below, but once the beta site is running,
 some basic checks include:

- 

