aboutsummaryrefslogtreecommitdiff
blob: eb3a2a3d50aca4ebe581735443aa884e4007e21d (plain)
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
99
100
101
102
|pypi| |test| |coverage| |docs|

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

What does pkgcore require?
==========================

At least python version 2.7, and snakeoil_ — a utility library with misc
optimizations split out of pkgcore for others to use.  For unittests, mock_ is
required if you're using anything less than python 3.3.

Who to contact if I find a bug?
===============================

Please submit an issue via Github_. You can also send an email to the dev list
(pkgcore-dev@googlegroups.com) or stop by `#pkgcore`_ on Freenode.

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.

Documentation
=============

The official documentation can be found on readthedocs_ with alternative
formats also available for download_.

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 py27

Installing
==========

Installing latest pypi release in a virtualenv::

    pip install pkgcore

Installing from git in a virtualenv (note that snakeoil should be used from git)::

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

Installing from a tarball or git repo::

    python setup.py install
    pplugincache


.. _snakeoil: https://github.com/pkgcore/snakeoil
.. _Github: https://github.com/pkgcore/pkgcore/issues
.. _#pkgcore: https://webchat.freenode.net?channels=%23pkgcore&uio=d4
.. _introduction docs: http://pkgcore.readthedocs.org/en/latest/getting-started.html
.. _development docs: http://pkgcore.readthedocs.org/en/latest/dev-notes/developing.html
.. _readthedocs: http://pkgcore.readthedocs.org/
.. _download: https://readthedocs.org/projects/pkgcore/downloads/
.. _mock: https://pypi.python.org/pypi/mock

.. |pypi| image:: https://img.shields.io/pypi/v/pkgcore.svg
    :target: https://pypi.python.org/pypi/pkgcore
.. |test| image:: https://travis-ci.org/pkgcore/pkgcore.svg?branch=master
    :target: https://travis-ci.org/pkgcore/pkgcore
.. |coverage| image:: https://coveralls.io/repos/pkgcore/pkgcore/badge.png?branch=master
    :target: https://coveralls.io/r/pkgcore/pkgcore?branch=master
.. |docs| image:: https://readthedocs.org/projects/pkgcore/badge/?version=latest
    :target: http://pkgcore.readthedocs.org/
    :alt: Documentation Status