dist-git-manager Documentation

dist-git-manager is a unified tool for automated dist-git repository maintenance with hierarchical branch management. It supports 8 version sources (Anitya, crates.io, PyPI, CRAN, MetaCPAN, RubyGems, Go Proxy, Octave Forge) and 8 spec update strategies (Packit, rust2rpm, pyp2spec, r2spec, cpanspec, gem2rpm, go2rpm, oct2spec).

Features

  • 8 Version Sources: Anitya, crates.io, PyPI, CRAN, MetaCPAN, RubyGems.org, Go Proxy, Octave Forge

  • 8 Spec Managers: Packit, rust2rpm, pyp2spec, r2spec, cpanspec, gem2rpm, go2rpm, oct2spec

  • Multi-Language Support: Rust, Python, R, Perl, Ruby, Go, Octave, and traditional Fedora packages

  • Hierarchical Branch Management: Automatic release-X and release-X.Y branch creation for SemVer

  • Rolling Release Support: Single branch updates for non-SemVer projects

  • Flexible Configuration: YAML config-driven for multiple projects OR CLI-only for single repo

  • Plugin Architecture: Easy to extend with new version sources and spec managers

  • Dry-Run Mode: Preview changes before applying

  • Comprehensive Testing: 90%+ coverage with offline testing

Quick Start

Install dist-git-manager:

pip install dist-git-manager

Config-driven mode (monitor multiple projects):

dist-git-manager -c config.yaml

CLI-only mode (update single repository):

dist-git-manager --repo-url https://src.fedoraproject.org/rpms/htop.git \
    --package-name htop \
    --version-source anitya --anitya-id 1234 \
    --spec-manager packit \
    --release-type semver --default-branch main \
    --upstream-url https://github.com/htop-dev/htop \
    --upstream-tag-template "v{version}"

Contents

Additional Information

Indices and tables