Skip to content
Compare
Choose a tag to compare
@spbnick spbnick released this 25 Nov 14:47
· 70 commits to main since this release

A big release adding a new schema version. Changes include:

  • Add schema v4 with the following changes from v3:
    • Rename revisions to checkouts to better represent what is actually submitted, improve correlation, and prevent data loss. The checkouts are identified purely by origin-generated IDs, similarly to builds and tests. The commit hash only appears in git_commit_hash field now, and the patchset hash gets its own field.

      NOTE: the submitting CI systems that test and send revisions more than once are urged to upgrade to v4 schema to avoid revision ID-inherited checkouts overwriting each other.

    • Add patchset_hash field to checkouts to store the patchset hash, which was previously a part of revision ID.

      NOTE: you need to set patchset_hash to empty string, if you have no patches applied on top of the commit you checked out, otherwise your data might not appear in reports and dashboards.

    • Rename the checkout's patch_mboxes field to patchset_files to better correspond to the new patchset_hash field.

    • Rename all description fields to comment. The description name had the meaning of describing each object overall. However we have other, dedicated fields describing objects in detail, and we'd rather use those to generate our own description, consistently, regardless of the submitter, and use the comment field to augment that description.

    • Add log_url field to tests. It is meant to contain the URL pointing to a plain-text log file with the highest-level overview of the test's execution, similar to the log_url field in builds and checkouts. All the other log and output files should go into output_files.

    • Add log_excerpt field to all objects, meant to contain the part of the object's log (normally referenced by log_url), that was most relevant to its status. E.g. patch errors for a failed checkout, compiler errors for a failed build, error messages for a failed test. It could also be git am output for a successful checkout, the last hundred lines of a successful build, or a test suite summary for a successful test.

    • Remove the publishing_time field from checkouts, as nobody is sending them, it's not really possible to know a commit's publishing time in git, and there are no maillist-posted patches being submitted yet, for which that could be possible.

  • Switch to using JSON schema references to refer to reused sub-schemas (such as file resources), and main object sub-schemas, instead of duplicating and referencing them in Python. This makes all versions of the schema a little shorter and easier to read. Thank you, @mrbazzan!
  • Rename kcidb_io.get_obj_num() to kcidb_io.count() for brevity and consistency. The latter is deprecated now and will be removed in the next release.