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)
| 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.