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.