Skip to content

EmRowlands/pkgcheck

 
 

Repository files navigation

pypi test coverage

pkgcheck

Dependencies

pkgcheck is developed alongside pkgcore and snakeoil. Running pkgcheck from git will often require both pkgcore and snakeoil from git as well.

For releases, see the required runtime dependencies.

There are also several optional runtime dependencies that add or extend check support in various ways if found on the host system including the following:

  • git: supports historical queries for git-based repos and commit-related checks
  • requests: supports various network-related checks
  • Gentoo-PerlMod-Version: supports Perl package version checks
  • tree-sitter-bash: used in checks that inspect the CST of ebuilds and eclasess. Must be language version >= 13.

Installing

Installing latest pypi release:

pip install pkgcheck

Installing from git:

pip install https://github.com/pkgcore/pkgcheck/archive/master.tar.gz

Installing from a tarball:

python setup.py install

Usage

Most users will use pkgcheck on the command line via pkgcheck scan to target ebuild repos. See the docs or the man page for more information on running pkgcheck.

It's also possible to run pkgcheck natively from python. For example, to output the results for a given ebuild repo:

from pkgcheck import scan

for result in scan(['/path/to/ebuild/repo']):
    print(result)

This allows third party tools written in python to leverage pkgcheck's scanning functionality for purposes such as CI or VCS commit support.

Tests

A standalone test runner is integrated in setup.py; to run, just execute:

python setup.py test

In addition, a tox config is provided so the testsuite can be run in a virtualenv setup against all supported python versions. To run tests for all environments just execute tox in the root directory of a repo or unpacked tarball. Otherwise, for a specific python version execute something similar to the following:

tox -e py39

About

pkgcore-based QA utility for ebuild repos

Resources

License

Stars

Watchers

Forks

Languages

  • C 79.8%
  • Python 19.7%
  • Other 0.5%