Installation ============ Requirements ------------ Core Requirements ~~~~~~~~~~~~~~~~~ - **Python 3.8 or later** - **git** command-line tool - **rpmspec** command (from ``rpm-build`` package) On Fedora/RHEL: .. code-block:: bash sudo dnf install python3 git rpm-build Spec Manager Requirements ~~~~~~~~~~~~~~~~~~~~~~~~~~ Install the spec managers you plan to use: **Packit** (for traditional Fedora packages): .. code-block:: bash pip install packitos Or on Fedora: .. code-block:: bash sudo dnf install packit **rust2rpm** (for Rust crates): .. code-block:: bash sudo dnf install rust2rpm **pyp2spec** (for Python packages): .. code-block:: bash sudo dnf install pyp2spec Optional Requirements ~~~~~~~~~~~~~~~~~~~~~ **DNF Python bindings** (for checking if packages already exist): .. code-block:: bash sudo dnf install python3-dnf .. note:: DNF is optional. If not available, dependency checking will be skipped gracefully. Installing dist-git-manager ---------------------------- From PyPI ~~~~~~~~~ .. code-block:: bash pip install dist-git-manager From Source ~~~~~~~~~~~ .. code-block:: bash git clone https://github.com/gmessmer/dist-git-manager.git cd dist-git-manager pip install . Development Installation ------------------------ For development or contributing: .. code-block:: bash git clone https://github.com/gmessmer/dist-git-manager.git cd dist-git-manager pip install -e .[dev,docs] This installs: - **dev**: pytest, black, ruff, mypy for development - **docs**: Sphinx and dependencies for building documentation Running Tests ~~~~~~~~~~~~~ .. code-block:: bash pytest tests/ Building Documentation ~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash cd docs make html Verification ------------ Verify installation: .. code-block:: bash dist-git-manager --version dist-git-manager --list-plugins This should show: - The installed version number - Available version sources and spec managers Next Steps ---------- - See :doc:`quickstart` for your first dist-git-manager run - See :doc:`configuration` for YAML config file format - See :doc:`cli-mode` for CLI-only mode usage