Skip to content

DB backend rewrite, part 1

Nikolai Kondrashov requested to merge db_rewrite1 into master

This starts the rewrite of the database code to transition to lightweight object-oriented model with centralized schema validation. There are plenty of things that can be done with it, and the main being clearer, more maintainable code. Other things include:

  • convert database to YAML (code is ready now!);
  • refactor the database structure to have data objects reflect the reality better (tree/suite/testcase/patterns/etc. objects);
  • store trees in the YAML files explicitly, allowing to list them directly (instead of listing templates) and attach properties to them;
  • expose database objects to Jinja templates directly (I assume that's possible), so that the templates could iterate over them and access their properties, instead of mushing the data together into just a few variables, and so we don't have to create functions for every possible data item we might need (e.g. waived state or maintainer addresses);
  • actually support schema versioning and conversion, so that we could upgrade it smoothly without losing compatibility
  • support database merging, so we could have two databases: public with the majority of tests, and private with those we cannot or are yet to publish

Merge request reports