Releases: kernelci/kcidb-io
v3
A big release adding a new schema version. Changes include:
- Add schema v4 with the following changes from v3:
-
Rename
revisions
tocheckouts
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 ingit_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 topatchset_files
to better correspond to the newpatchset_hash
field. -
Rename all
description
fields tocomment
. Thedescription
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 thecomment
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 thelog_url
field in builds and checkouts. All the other log and output files should go intooutput_files
. -
Add
log_excerpt
field to all objects, meant to contain the part of the object's log (normally referenced bylog_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 begit 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()
tokcidb_io.count()
for brevity and consistency. The latter is deprecated now and will be removed in the next release.
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
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.