Task #1782
User Story #1781: Versioning of configuration
Proof of concept: new configuration as code
Resolution:
Description
Notes¶
- Similar to a django migration
- Specify diff only, as code
- Change fields
- Add fields
- Delete fields
- Change field order
- Change section of question
- Set documentation/"What's new" in diff
- Make 'context aware' change hints for questions possible
- Use new table (or existing configuration table) to store the documentation/"What's new" and changed fields
Estimate breakdown¶
- Extend/create table for documentation/"what's new": 2h
- New command to load data from diff (base class)
- Validate ' version history' (depends_on): 4h
- Set structure for command content: changes, documentation, help text: 2h
- Add new field: (8h)
- Change order: question, questiongroup, section: (8h)
- Change structure (move question between sections): (8h)
- Change field type: (8h)
- Delete field: (8h)
- Merge data with previous version and get json: 8h
- Validate structure: 2h
- Save to db: 2h
- Internal review (ongoing): 8h
- Tests: 12h
Updated by Lukas Vonlanthen almost 7 years ago
- translation missing: en.field_tag_list set to Required
- Description updated (diff)
- Estimated time set to 80.00 h
Updated by Sebastian Manger over 6 years ago
Next steps (blocker, pair programming recommended)
- decisions: naming
- migrate configuration (and questionnaire) model
- data migration for existing configuration / questionnaires --> this will break things!
- (abstract) base class for new releases
- basic code cleanup: split 'name' of configuration and 'version' ('technologies' -> 'technologies_2016')