Skip to main content

A tool for managing APT packages

Project description

Debutizer

Debutizer is a tool for managing APT packages, targeted at users who need to manage a suite of potentially interdependent packages and want to do so with minimal boilerplate and modern continuous integration tooling.


Lint Status Test Status Docs Status Code style: black Imports: isort


Installation

APT Repository (Recommended)

Naturally, Debutizer is available for installation as an APT repository, through a PPA. If you're running on a Debian-based distribution, Debutizer can be installed with the following commands:

sudo add-apt-repository ppa:velovix/debutizer
sudo apt update
sudo apt install debutizer

PyPI

Debutizer is also available on PyPI and can be installed like any other Python package. This is a good option for non-Debian Linux environments, but you will need to install Debutizer's system dependencies yourself.

Pipx is the recommended way to install through PyPI, as it gives Debutizer its own virtual environment to run in.

pipx install debutizer

You can check if Debutizer's system dependencies are available by running debutizer check.

From Source

Start by cloning the repository:

git clone https://github.com/velovix/debutizer

Then, assuming you have Python 3.6+ and Pip installed, run the following command in the directory you cloned into:

pip3 install --constraint constraints.txt .

This will take care of installing Python dependencies through Pip, but system dependencies will have to be installed manually. Use debutizer check to see which, if any, system dependencies are missing.

Development

If you find a bug or need a new feature from Debutizer, please feel free to create an issue! If you're feeling especially generous and would like to send a pull request, take a look at this section for how to get started.

Dev Dependencies

Development dependencies can be installed using Pip with the dev extra included. This should be done in a virtualenv.

pip3 install --constraint constraints.txt ".[dev]"

This project uses a constraints.txt file to pin dependencies. Since Debutizer is often run as an APT package that uses distribution-supplied versions of our Python dependencies, this pinning is mostly done for the benefit of keeping development environments consistent.

If you need to update the pinned version for a given dependency, you can run the following commands within your virtualenv.

pip3 update <dependency>
pip3 freeze --exclude debutizer --exclude python-debian > constraints.txt

Linting

Debutizer makes use of a few linting tools to keep code style consistent and to reduce bugs. The CI will run these for you and fail if there are issues, but you may find it convenient to set up the pre-commit hooks as well.

pre-commit install

Testing

Debutizer uses PyTest for automated testing. Unit tests can be run with the following command:

pytest tests/unit

Unfortunately, because integration tests build packages with pbuilder, running integration tests requires sudo. Using sudo with a virtualenv is a bit tricky, but this unintuitive command will do it:

sudo $(which python) -m pytest tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

debutizer-0.13.0.tar.gz (77.4 kB view details)

Uploaded Source

Built Distribution

debutizer-0.13.0-py3-none-any.whl (93.0 kB view details)

Uploaded Python 3

File details

Details for the file debutizer-0.13.0.tar.gz.

File metadata

  • Download URL: debutizer-0.13.0.tar.gz
  • Upload date:
  • Size: 77.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for debutizer-0.13.0.tar.gz
Algorithm Hash digest
SHA256 a168dce7e8d7e2e203b5f2b270262dccdcdc8bd6e4f265e5c4ef6b33b44f960a
MD5 4a5fd43e502446b5f87b3440e836e6c1
BLAKE2b-256 b207e11fe077e73026432ccd2e3f873528947a1ddb58f99a7fe1710ad45b6bd3

See more details on using hashes here.

File details

Details for the file debutizer-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: debutizer-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 93.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for debutizer-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e879df2c53baed5d93d3a138bf8adebd40154daaf3b8f84d352be2994ef27147
MD5 e240ed7ce47beb92ac02f42d6c645a4a
BLAKE2b-256 e0dab3947eaff18a262da9e04108990739ec53f4d66e7a93821ab816cccafee1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page