paperless-ngx (2.20.15)

Published 2026-06-14 12:39:49 +02:00 by eofredj

Installation

pip install --index-url  paperless-ngx

About this package

A community-supported supercharged document management system: scan, index and archive all your physical documents

Wheeler

A containerized Python wheel builder and publisher for private registries.

Built on Alpine Linux, powered by uv, and tailored for publishing packages to Forgejo PyPI registries.


Overview

Wheeler packages Python applications into distributable wheels inside a reproducible Docker container. It handles dependency resolution, wheel building, and upload to private package registries — all in one image.

Key components:

Component Purpose
uv Fast Python package installer and resolver
uv-migrator Migrate legacy Python projects to uv
buildah / podman OCI-compliant image building and pushing
twine Secure wheel upload to PyPI-compatible registries

Quick Start

Build the image

docker build -t wheeler:latest .

Run the builder

docker run --rm \
  -v $(pwd):/build \
  -e owner=your-org \
  -e username=your-user \
  -e password=your-token \
  wheeler:latest

The builder will:

  1. Export locked dependencies from pyproject.toml / uv.lock
  2. Build wheels for all packages
  3. Upload them to the configured Forgejo PyPI registry

Project Layout

.
├── Dockerfile                    # Multi-stage Alpine-based builder image
├── builder.sh                    # Entrypoint script (export, build, upload)
├── cliff.toml                    # git-cliff changelog configuration
├── pypirc.tmpl                   # twine/auth template with envsubst
├── pyproject.toml                # Primary project dependencies (PowerDNS-Admin)
├── pyproject.toml.paperless      # Alternate project profile (paperless-ngx)
├── .forgejo/workflows/           # CI/CD workflow definitions
│   └── build_image.yml           # Automated image build & registry push
└── .pre-commit-config.yaml       # Conventional commit enforcement

Contributing

This repository follows Conventional Commits for automated changelog generation and versioning.

Commit Message Format

<type>(<scope>): <short summary>

[optional body]

[optional footer(s)]

Common types:

Type Description
feat New feature or significant change
fix Bug fix
docs Documentation-only changes
style Code style changes (formatting, no logic change)
refactor Code restructuring without feature changes
perf Performance improvements
test Adding or correcting tests
chore Maintenance tasks (build, deps, CI)

Scopes used in this project:

  • alpine — Alpine Linux base image version
  • uv — uv tool version or configuration
  • python — Python runtime or package changes
  • docker — Dockerfile or image build changes
  • ci — Forgejo workflow or CI configuration
  • changelog — Changelog or release tooling

Pre-commit Hooks

Install hooks to enforce conventions locally:

pre-commit install
pre-commit install --hook-type commit-msg

Hooks include:

  • commitizen — Validate commit messages
  • conventional-pre-commit — Commit-msg linting
  • gitleaks — Secret scanning
  • yamlfmt — YAML formatting

Changelog

The changelog is generated with git-cliff:

git-cliff --config cliff.toml --output CHANGELOG.md

CI/CD

The .forgejo/workflows/build_image.yml workflow:

  • Builds the Wheeler image on every push to main
  • Tags images with the Alpine version (e.g., 3.24.0, 3.24, 3)
  • Pushes to git.desord.re/desordre/forgejo/wheeler

License

SPDX-License-Identifier: MIT

Requirements

Requires Python: >=3.10
Details
PyPI
2026-06-14 12:39:49 +02:00
0
3.6 KiB
Assets (1)
Versions (2) View all
2.20.15 2026-06-14
2.15.1 2025-04-12