Skip to content

Contribution Knowledge

This document contains information about how to extend the codebase in specific cases. For general contributing guidelines see here.

Adding new experiment formats

  1. subclass ExperimentInserter and overwrite the abstract methods
  2. add duplicates via addDuplicate
  3. we also provide a CSVInserter which can be subclassed for csv experiment formats
  4. give the format a unique name and register it with the server by adding it to this map.
  5. add the format to the api specification (under docs)
  6. regenerate the types and generated api specification

Updating the database schema

  1. change the schema under api/database/schemas as required
  2. create a migration script in api/database/schemas/migrations which does not reference the schema (as it might change in the future)
  3. that means the changes should be "duplicated" here. See api/database/schemas/v3.ts as an example.
  4. You can overwrite performResetAsMigration if a migration is not possible and the database must be recreated.
  5. update api/database/schemas/migrations/index.ts and export the new version as latest

Creating a release

  1. update version numbers in ./package.json, ./app/package.json and ./wrapper/package.json to the new target version.
  2. merge all changes in to the main branch with a PR "Release vX.x.x".
  3. tag the latest commit on main in git with vX.x.x according to the version number.
  4. wait for the CI to finish releasing the tag.
  5. edit the release draft (Github Release): add a changelog and change the artifact names accordingly.