libalpm bindings for Python 3
Project description
pyalpm - python bindings for the libalpm library
pyalpm is a C extension for Python 3 that give access to the libalpm API for package management, which is used, for example in the Arch Linux distribution.
Requirements
-
Python 3 or later
-
libalpm 13
-
python-setuptools
-
python-pkgconfig
-
python-sphinx (optional, to build the docs)
Building
Building is as easy as running make
make
Building the docs:
make -C doc html
Testing
Required test dependency:
- python-pytest
- gcovr (optional, generating C coverage)
Unit tests can be run with:
make test
Coverage for Python code can be generated as following:
make open-coverage
Coverage for the CPython code can be generated as following:
make open-ext-coverage
Releasing
- Bump version in setup.py
- commit
- git tag
Uploading to PyPI
- python3 setup.py sdist
- twine upload -s dist/* --verbose
Pacman development compatibility
The master branch tracks the most recent pacman release and thus libalpm release, the next branch follows pacman's master branch.
Building against pacman-git is as simple as:
git clone https://git.archlinux.org/pacman.git
mkdir build
cd build && meson .. && ninja
PKG_CONFIG_PATH=/path/to/pacman/build/meson-uninstalled make build
Running tests against pacman-git:
LD_LIBRARY_PATH=/path/to/pacman/build/ make test