User Story #1781
Versioning of configuration
Start date:
06 Feb 2018
Due date:
% Done:
100%
Estimated time:
(Total: 111.00 h)
Spent time:
(Total: 111.00 h)
Resolution:
Description
Intro¶
The 'initial' version of all configurations is hard coded (JSON). This has historic reasons, the initial plan for QCAT was to have many small, modular questionnaires that can be linked. As a configuration now is a very large (> 20k lines) file, this should not be copied and only the changes ('diff') are stored for a new version.
Naming¶
- Years are used to identify a version, e.g. technology 2018. If multiple versions are released per year, the month is appended (2018.6)
Technical details¶
- Before estimate: proof of concept.
- A configuration is a json object, which is loaded into the database.
- A new version of the configuration contains only the 'difference' as code
- Similar to a django migration.
- Rationale: when storing code, help texts and such can easily be added. Also, the indicators for 'this question has changed' can be calculated.
- To be defined: even if the new version is saved as 'diff', when applying it (probably as management command) - is it expanded to the full json in the database?
Subtasks
Updated by Sebastian Manger almost 7 years ago
- Subject changed from New configuration: to New configuration: Add changes
Updated by Lukas Vonlanthen almost 7 years ago
- Subject changed from New configuration: Add changes to Versioning of configuration