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
ExperimentInserter
and overwrite the abstract methods - add duplicates via
addDuplicate
- we also provide a
CSVInserter
which 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/schemas
as required - create a migration script in
api/database/schemas/migrations
which 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.ts
as an example. - You can overwrite
performResetAsMigration
if a migration is not possible and the database must be recreated. - update
api/database/schemas/migrations/index.ts
and export the new version aslatest
Creating a release
- update version numbers in
./package.json
,./app/package.json
and./wrapper/package.json
to the new target version. - merge all changes in to the
main
branch with a PR "Release vX.x.x". - tag the latest commit on
main
in git withvX.x.x
according 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.