Skip to content

Releases: kernelci/kcidb-io

v3

25 Nov 14:47
Compare
Choose a tag to compare

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.

v2

13 Oct 09:36
Compare
Choose a tag to compare
v2

A performance-improvement release. Changes include:

  • Use version numbers from the data to find the exact schema version for validating or upgrading, instead of simply validating with each version in turn. This speeds up validation of older-version data, as well as upgrading.
  • Do not validate data for verifying internal consistency, by default. Only validate data when accepting it from the outside. This speeds up data processing in general. To re-enable internal data validation set environment variable KCIDB_IO_HEAVY_ASSERTS to a non-empty string.

v1

01 Oct 12:40
Compare
Choose a tag to compare
v1

First release incorporating the kcidb.io package extracted from kcidb v7, with the following additions:

  • Add/fix data examples and clarify schema documentation.
  • Enable "format checkers" when validating. This enforces validating timestamps, URIs, and email addresses, which was lacking previously.
  • Do not create an object list in merge() target, if it wasn't present in any of the sources.