Skip to main content

WaiverDB

logo of WaiverDB

What is WaiverDB

WaiverDB is a companion service to ResultsDB, for recording waivers against test results.

Quick development setup

The fastest way to setting up development environment is to install docker-compose or podman-compose and use make up to provision required containers and use make test to run tests or make coverage to generate and open coverage report.

As alternative to using containers, below are steps to set up development environment on local machine.

Install dependencies:

$ sudo dnf builddep waiverdb.spec

Configure Postgres on the local machine, with a waiverdb database:

$ sudo dnf install postgresql-server
$ sudo postgresql-setup --initdb
$ sudo systemctl enable --now postgresql
$ sudo -u postgres createuser --superuser $USER
$ createdb waiverdb

Create a local configuration file:

$ cp conf/settings.py.example conf/settings.py

Populate the database:

$ PYTHONPATH=. DEV=true python3 waiverdb/manage.py db upgrade

Run the server:

$ PYTHONPATH=. DEV=true python3 waiverdb/manage.py run -h localhost -p 5004 --debugger

The server is now running at http://localhost:5004 and API calls can be sent to http://localhost:5004/api/v1.0. All data is stored in the waiverdb Postgres database on the local machine. You can verify the server is running correctly by visiting http://localhost:5004/api/v1.0/about.

Adjusting configuration

You can configure this app by copying conf/settings.py.example into conf/settings.py and adjusting values as you see fit. It overrides default values in waiverdb/config.py.

Running test suite

You can run this test suite with the following command::

$ py.test-3 tests/

The test suite will drop and re-create a Postgres database named waiverdb_test. By default, it expects to have superuser access to Postgres on the local machine.

To test against all supported versions of Python, you can use tox::

$ sudo dnf install python3-tox
$ tox

Building the docs

You can view the docs locally with::

$ cd docs
$ make html
$ firefox _build/html/index.html

Viewing published fedmsgs

You can view fedmsgs published when new waivers get created by doing::

$ fedmsg-relay --config-filename fedmsg.d/config.py &
$ fedmsg-tail --config fedmsg.d/config.py --no-validate --really-pretty

WaiverDB CLI

WaiverDB has a command-line client interface for creating new waivers against test results. A sample configuration is installed as /usr/share/doc/waiverdb/client.conf.example. Copy it to /etc/waiverdb/client.conf and edit it there. Or you can use --config-file to specify one.

Usage: waiverdb-cli [OPTIONS]

  Creates new waivers against test results.

  Examples:

      waiverdb-cli -r 47 -r 48 -p "fedora-28" -c "This is fine"
or

      waiverdb-cli -t dist.rpmdeplint -s '{"item": "qclib-1.3.1-3.fc28", "type": "koji_build"}' -p "fedora-28" -c "This is expected for non-x86 packages"


Options:
  -C, --config-file PATH           Specify a config file to use.
  -r, --result-id INTEGER          Specify one or more results to be waived.
  -s, --subject TEXT               Deprecated. Use --subject-identifier and
                                   --subject-type instead. Subject for a result to waive.
  -i, --subject-identifier TEXT    Subject identifier for a result to waive.
  -T, --subject-type TEXT          Subject type for a result to waive.
  -t, --testcase TEXT              Specify a testcase for the subject.
  -p, --product-version TEXT       Specify one of PDC's product version
                                   identifiers.
  --waived / --no-waived           Whether or not the result is waived.
  -c, --comment TEXT               A comment explaining why the result is waived.
  -h, --help                       Show this message and exit.

Metadata

Release files for waiverdb 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for waiverdb 1.4.0
File Size Uploaded Provenance Actions
waiverdb-1.4.0.tar.gz 143.9 kB Without provenance Details for waiverdb-1.4.0.tar.gz

Release files / waiverdb-1.4.0.tar.gz

Download URL waiverdb-1.4.0.tar.gz
Size 143.9 kB
Tags Source
SHA-256 checksum
How to use checksums
15eab2f1a17775c23adaaa67e9a026d0e2eda417addba47b3020815a5657576e
BLAKE2b-256 checksum
How to use checksums
5aa548a67a8e970060debc338e5cc7e9533726b027574563c37b0330f19c204a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.10.0

Security for waiverdb 1.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page