1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
|pypi| |test| |coverage|
=======
pkgcore
=======
pkgcore is a framework for package management; via the appropriate class
plugins, the design should allow for any underlying repository/config/format to
be used; slackware's tgzs being exempted due to lack of any real metadata, and
autopackage format being exempted due to the fact they effectively embed the
manager in each package (pkgcore *does* require being able to treat the pkg as
data, instead of autopackage's method of handing resolution/all manager ops off
to the package script).
Tools
=====
**pclean**: clean distfiles, binpkgs, and builds dirs
**pclonecache**: clone a repository cache
**pconfig**: query configuration info
**pebuild**: low-level ebuild operations, go through phases manually
**pinspect**: inspect repository related info
**pmaint**: repository maintenance (syncing, copying...)
**pmerge**: dependency resolution, fetching, (un)merging, etc.
**pquery**: query repository info, revdeps, pkg search, vdb search, etc.
Requirements
============
At least python version 3.10, and snakeoil_ — a utility library split out of
pkgcore for others to use.
Installing
==========
Installing latest pypi release::
pip install pkgcore
Installing from git::
pip install https://github.com/pkgcore/pkgcore/archive/master.tar.gz
Installing from a tarball::
pip install .
Developing
==========
Installing the dependencies for testing, formatting, and documentation building
into an editable environment::
make dev-environment
Tests
=====
Standard python test runners can be used, for example:
pytest -v
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 py311
Docs
====
Documentation is available on Github_.
Contact
=======
For bugs and feature requests please create an issue_.
.. _Github: https://pkgcore.github.io/pkgcore/
.. _snakeoil: https://github.com/pkgcore/snakeoil
.. _issue: https://github.com/pkgcore/pkgcore/issues
.. |pypi| image:: https://img.shields.io/pypi/v/pkgcore.svg
:target: https://pypi.python.org/pypi/pkgcore
.. |test| image:: https://github.com/pkgcore/pkgcore/workflows/test/badge.svg
:target: https://github.com/pkgcore/pkgcore/actions?query=workflow%3A%22test%22
.. |coverage| image:: https://codecov.io/gh/pkgcore/pkgcore/branch/master/graph/badge.svg
:target: https://codecov.io/gh/pkgcore/pkgcore
|