2023-06-26 12:39:08 +02:00
|
|
|
# Release versions
|
2023-04-12 07:50:40 +02:00
|
|
|
|
2023-06-26 12:39:08 +02:00
|
|
|
Versions are marked according to [semantic versioning] (https://semver.org).
|
|
|
|
Each version embeds the following static assets in the binary:
|
|
|
|
* Web frontend with javascript files and all static assets.
|
2023-06-13 15:14:19 +02:00
|
|
|
* Golang template files for server-side rendering.
|
|
|
|
* JSON schema files for validation.
|
2023-06-26 12:39:08 +02:00
|
|
|
* Database migration files.
|
2023-06-13 15:14:19 +02:00
|
|
|
|
|
|
|
The remaining external assets are:
|
2023-06-26 12:39:08 +02:00
|
|
|
* The SQL database used.
|
2023-04-12 07:50:40 +02:00
|
|
|
* The job archive
|
2023-06-26 12:39:08 +02:00
|
|
|
* The configuration files `config.json` and `.env`.
|
2023-04-12 07:50:40 +02:00
|
|
|
|
2023-06-26 12:39:08 +02:00
|
|
|
The external assets are versioned with integer IDs.
|
2023-06-13 15:14:19 +02:00
|
|
|
This means that each release binary is bound to specific versions of the SQL
|
|
|
|
database and the job archive.
|
2023-06-26 12:39:08 +02:00
|
|
|
The configuration file is checked against the current schema at startup.
|
|
|
|
The `-migrate-db` command line switch can be used to upgrade the SQL database
|
2023-06-13 15:14:19 +02:00
|
|
|
to migrate from a previous version to the latest one.
|
|
|
|
We offer a separate tool `archive-migration` to migrate an existing job archive
|
|
|
|
archive from the previous to the latest version.
|
2023-04-12 07:50:40 +02:00
|
|
|
|
|
|
|
# Versioning of APIs
|
2023-06-13 15:14:19 +02:00
|
|
|
|
2023-04-12 07:50:40 +02:00
|
|
|
cc-backend provides two API backends:
|
2023-06-26 12:39:08 +02:00
|
|
|
* A REST API for querying jobs.
|
|
|
|
* A GraphQL API for data exchange between web frontend and cc-backend.
|
2023-04-12 07:50:40 +02:00
|
|
|
|
2023-06-26 12:39:08 +02:00
|
|
|
The REST API will also be versioned. We still have to decide whether we will also
|
|
|
|
support older REST API versions by versioning the endpoint URLs.
|
|
|
|
The GraphQL API is for internal use and will not be versioned.
|
2023-04-12 07:50:40 +02:00
|
|
|
|
2023-06-13 15:14:19 +02:00
|
|
|
# How to build
|
2023-04-12 07:50:40 +02:00
|
|
|
|
2023-06-26 12:39:08 +02:00
|
|
|
In general it is recommended to use the provided release binary.
|
|
|
|
In case you want to build build `cc-backend` please always use the provided makefile. This will ensure
|
|
|
|
that the frontend is also built correctly and that the version in the binary is encoded in the binary.
|