Skip to main content

Hosker Utils

This repository provides the hosker_utils Python package and command-line helpers for configuring His Majesty's Software Suite (HMSS) and backing up a configured set of Git repositories.

It also serves as a small, working reference for the standards expected in the owner's other repositories: declarative packaging, isolated tests, one-command validation, explicit release versions, and documented system effects. It is a role model, not a template; copy the principles rather than every file.

Requirements

  • Python 3.11 or newer
  • A Debian-based Linux distribution for the HMSS installer

Development

Create a virtual environment, install the package, and run the checks:

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e .
.venv/bin/python -m ruff check .
.venv/bin/python -m pytest
.venv/bin/python validate.py

The installer runs apt through sudo, changes the GNOME wallpaper, and clones the repositories listed in ~/hmss_config.json. Review that generated configuration before running the installer.

Build and validate Python release artifacts with ./update_version.sh. The script creates an ignored .venv-release environment and installs current versions of build and Twine there; it never installs them into the system Python. It writes only PyPI-compatible artifacts to dist/python/, keeping them separate from Debian packages. Before completing a pull request, agree and set the next version in pyproject.toml.

Building and twine check are local operations. Only the separate twine upload release step contacts PyPI; the script prints that command but does not run it automatically.

For a release-affecting change, the final checklist is:

  1. Run python3 validate.py and git diff --check.
  2. Agree and update the version in pyproject.toml.
  3. Build and validate the Python wheel and source distribution.
  4. Build and inspect the Debian package when Debian packaging has changed.
  5. Publish only as a separate, deliberate action.

Install

For an isolated command-line installation on any supported distribution, use pipx:

pipx install .

On Debian-based systems, build and install a native package instead:

python3 tools/build_deb.py
sudo apt install ./dist/hosker-utils_2.7.0_$(dpkg --print-architecture).deb

The Debian builder requires dpkg-deb, stages files in a temporary directory, and does not require root. APT handles the package's Python runtime dependencies. Because Ruff is not available in all APT catalogues, the builder bundles the Ruff executable from the active development environment.

Install HMSS

After installing by either method, run install-hmss.

Release files for hosker-utils 2.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hosker-utils 2.7.0
File Size Uploaded
hosker_utils-2.7.0.tar.gz 9.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for hosker-utils 2.7.0
File Interpreter ABI Platform
hosker_utils-2.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.2 MB

Release files / hosker_utils-2.7.0.tar.gz

Download URL hosker_utils-2.7.0.tar.gz
Size 9.1 MB
Tags Source
SHA-256 checksum
How to use checksums
5a0493766503633812d7c997e35966cc745036e3fe57d76f94c45c8069fa4c07
BLAKE2b-256 checksum
How to use checksums
12d7b96b343bfc6239d99e2b6dbc55bb5283bce08e1615f6efc9787505d2c27c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / hosker_utils-2.7.0-py3-none-any.whl

Download URL hosker_utils-2.7.0-py3-none-any.whl
Size 9.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
719b30b4e19be06df036fcd86a52bd586ea9a1a36846ebdf26987bfd3fe8b636
BLAKE2b-256 checksum
How to use checksums
0eceb4e444052cb6a7a3a4fa0283c727624859f4412e40db088b8f0c6c705c25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

2.7.0 This release

2 release files

2.6.1

2 release files

2.5.5

2 release files

2.5.4

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page