Setting up Distro Tracker¶
Requirements¶
Distro Tracker currently depends on the following Debian packages:
python3-django (>= 3.2)
python3-requests
python3-django-jsonfield (>= 1.0.0)
python3-django-debug-toolbar (in development mode only)
python3-django-captcha (optional)
python3-debian
python3-debianbts (>= 2.10)
python3-apt
python3-gpg
python3-yaml
python3-bs4
python3-responses
python3-pyinotify
python3-tox (for development only)
python3-selenium (for development only)
chromium-driver (for development only)
python3-sphinx (for development only, to build documentation)
python3-sphinx-rtd-theme (for development only, to build documentation)
Here is the list of required packages for development on Debian Bookworm:
$ sudo apt install python3-django python3-requests python3-django-jsonfield python3-django-debug-toolbar python3-debian python3-debianbts python3-apt python3-gpg python3-yaml python3-bs4 python3-responses python3-pyinotify python3-selenium chromium-driver
If you are using Debian Bullseye, you will need to enable bullseye-backports and install Django from there before attempting to do local development of Distro Tracker.
Database¶
Distro Tracker does not rely on any database specific features and as such should be able to run on top of any database server. The only possible known issue is when using sqlite3 which has a limit on the number of query parameters of 999 on some systems.
When you choose your database flavor, you must also install the Python bindings, i.e. psycopg2 for PostgreSQL (python3-psycopg2) and mysqlclient for MySQL (python3-mysqldb), etc.
To create the database you must run the following commands:
$ ./manage.py migrate
See also the Debian package’s README.Debian for some details about the setup.
Local Settings¶
While Distro Tracker tries to guess as much as needed, you generally will
want to customize some of its parameters. You can do so by copying
distro_tracker/project/settings/local.py.sample
to
distro_tracker/project/settings/local.py
and then editing the latter
file. Have a look at distro_tracker.project.settings.defaults
to learn about all the variables that you can override and extend.
To make things easier, Distro Tracker provides default configuration suitable
for production use (installed from the Debian package) or for development
use (running out of a git checkout). Depending on the case, the
selected.py
symlink points either to production.py
or to
development.py
.
Keyrings¶
The DISTRO_TRACKER_KEYRING_DIRECTORY
lets you define a
path to a directory containing known public PGP keys. These keys are used when
verifying various signed content, such as news.
You may add a gpg.conf
file in this directory with additional keyring
directives if you want to include more keys than the ones found in
pubring.gpg
file.
Tests¶
Once everything is set up, be sure to run the test suite to make sure everything is actually working as expected. You can do this by issuing the following command from the Distro Tracker root directory:
$ ./manage.py test
Cron tasks¶
The data used by distro-tracker needs to be regularly updated/refreshed. For this you must put “./manage.py tracker_run_all_tasks” in cron.
Documentation¶
This project uses Sphinx for documentation. If you want to improve the documentation or build the documentation locally, first be sure to have the packages python3-sphinx and python3-sphinx-rtd-theme installed. Then go to the docs subdirectory cd docs
and run make html
to build the documentation.
The output will be located in _build/html
and you can preview the documentation in a web browser firefox _build/html/index.html
.