Chakra Version Tracker

Chakra Version Tracker is a project that provides a command-line tool to query Chakra packages in rolling repositories that are out of date.

Requirements

Installation

Installing with pip:

pip install chakraversiontracker

Installing from sources:

python setup.py install

Installing from sources for development (if you plan to extend tracked packages):

python setup.py develop

Basic Usage

The chakraversiontracker command-line tool does not require any parameters:

$ chakraversiontracker
desktop:
    gsoap 2.8.33 → 2.8.34
    libguess 1.1 → 1.2

It lists outdated packages in rolling repositories, showing for each package which version is currently in the repositories and which one is the latest stable version.

If you with to get the name of the repository containing each package as well, use -t repositories.cli:

$ chakraversiontracker -t packages.cli
gsoap 2.8.33 → 2.8.34
libguess 1.1 → 1.2

Excluding Packages

You can use the -e option to exclude a package from the results:

$ chakraversiontracker -e gsoap
desktop:
    libguess 1.1 → 1.2

You can also use -e with a package tag to exclude all packages that have that tag. Tags are similar to Chakra package groups, only that they are specific to Chakra Version Tracker. Use –list-tags to get a list of available tags:

$ chakraversiontracker --list-tags
haskell
kde-applications
…

Selecting Repositories

By default, Chakra Version Tracker checks package versions in the rolling repositores: testing, desktop, gtk, lib32, ccr.

You may manually specify one or more target repositories with -r. For example, to check package versions only in the testing and desktop repositories:

chakraversiontracker -r testing -r desktop

If you prefer, you may indicate repositories to exclude from the defalut list using –exclude-repository. For example, to check package versions in all rolling repositories but the ccr:

chakraversiontracker --exclude-repository ccr

Configuring the Output

The output of the chakraversiontracker command can be completely customized with a template. Use the –list-templates option to get a list of available built-in templates that you can pass to the -t option.

Built-in templates may have either a .txt file extension or a .cli file extension. If you want to redirect the output of the command to a file, use the -o option and one of the .txt templates. .cli templates include data for terminal coloring that does not look well in plain text files.

By default, a line in printed on the standard output with the progress of the query for the latest stable versions of tracked packages found in the specified repositories. If you are using a pipe to redirect the output to a file instead of using the -o option, you may want to use the –no-progress option to prevent the progress lines from being printed.

You can write a custom template and pass its path to the command using the -t option to format the output data however you like. Your template must be a Jinja2 template that can use the following variables:

  • packages is a list of dictionaries represeting outdated packages. They are sorted alphabetically, and each dictionary contains the name of the package (name), the name of the repository that contains the package (repository), the version of the package found in the repositories (repository_version) and the latest stable version of the package (upstream_version).
  • repositories is an ordered dictionary (in the order in which the user specified the repositories) where keys are repository names and values are dictionaries with the same keys as the items in the packages list, with the exception of the repository key.
  • date is a dictionary with two keys: local and utc. They are datetime objects containing the local time and the UTC time, respectively.

Command Line Help

Reports outdated Chakra packages from its rolling repositories.

usage: chakraversiontracker [-h] [-e KEYWORD] [--list-tags] [-r REPOSITORY]
                            [--exclude-repository REPOSITORY] [--no-progress]
                            [-o OUTPUT] [-t TEMPLATE] [--list-templates] [-v]
Options:
-e, --exclude Ignore packages that are named KEYWORD or have the KEYWORD tag. It may be used multiple times. Use –list-tags to get a list of available tags.
--list-tags List available package tags that you can pass to -e.
-r, --repository
 Only check package versions in this repository. Can be used multiple times. If no repository is specified, package versions in rolling repositories (testing, desktop, gtk, lib32, ccr) are checked.
--exclude-repository
 Do not check package versions in this repository. Can be used multiple times.
--no-progress Do not show the progress of the command while performing long operations.
-o, --output Output file. The standard output is used if no output file is specified.
-t, --template Jinja2 template to generate the output. It can be either the name of one of the built-in templates (see –list-templates) or a path to a custom template.
--list-templates
 List available built-in templates.
-v, --version show program’s version number and exit

Credits and License

Chakra Version Tracker may be used under the terms of the GNU Affero General Public License version 3 or later (AGPLv3+).

For a list of authors who should be credited, see Authors.