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
- subclass
ExperimentInserterand overwrite the abstract methods - add duplicates via
addDuplicate - we also provide a
CSVInserterwhich can be subclassed for csv experiment formats - give the format a unique name and register it with the server by adding it to this map.
- add the format to the api specification (under docs)
- regenerate the types and generated api specification
Updating the database schema
- change the schema under
api/database/schemasas required - create a migration script in
api/database/schemas/migrationswhich does not reference the schema (as it might change in the future) - that means the changes should be "duplicated" here. See
api/database/schemas/v3.tsas an example. - You can overwrite
performResetAsMigrationif a migration is not possible and the database must be recreated. - update
api/database/schemas/migrations/index.tsand export the new version aslatest
Creating a release
- update version numbers in
./package.json,./app/package.jsonand./wrapper/package.jsonto the new target version. - merge all changes in to the
mainbranch with a PR "Release vX.x.x". - tag the latest commit on
mainin git withvX.x.xaccording to the version number. - wait for the CI to finish releasing the tag.
- edit the release draft (Github Release): add a changelog and change the artifact names accordingly.