Skip to content

v5

Compare
Choose a tag to compare
@spbnick spbnick released this 14 Apr 15:47

Another major release of kcidb includes:

  • Switch to report submission via Google Cloud Pub/Sub message queue. This speeds up submission considerably and allows implementing report notifications.

    However, this also changes the parameters required for submission: instead of BigQuery dataset name (e.g. kernelci03), these now should be the Google Cloud project ID (kernelci) and the Pub/Sub topic name (kernelci_new). OTOH, these parameters won't need to be updated whenever we switch to a new dataset.

    The required query parameters stay the same.

    The Client interface in the library changes accordingly.

    See kcidb-submit --help and kcidb-query --help output for details, as well as the code documentation for kcidb.Client class.

  • Implement preliminary report notification system, with two dummy subscriptions and e-mails sent to [email protected]. Spool the generated notifications in Google Cloud Firestore database, to avoid sending the same notification twice. Implement subscriptions as Python modules matching the report objects (revisions/builds/tests) of interest and generating notifications.

  • Add kcidb-spool-wipe tool for removing (old) notifications from the notification spool.

  • Add two tools for producing a summary and a description of a report object: kcidb-summarize and kcidb-describe respectively. These take report data on the standard input, and the name of the object list, plus optional IDs of objects to process on the command line. They output a text summary or a text description of the object(s), the same way as they would appear in a notification e-mail. These could be used for testing both the data you submit and the report generation.

  • Add support for querying particular objects from the database, using SQL LIKE patterns for IDs. Also allow querying the matching objects' parents and/or children. See kcidb-query --help output for details.

  • Add kcidb-db-dump tool for dumping the whole database unconditionally, doing the previous job of kcidb-db-query, which acquires the same object selection parameters as kcidb-query does.

  • Fix kcidb-db-complement tool and kcidb.db.Client.complement() function to not produce a combinatorial explosion when fetching multiple copies of the same object from the database.