Skip to main content

Developer Guide

Developer Guide

Contributor Reference

Move from a working contributor environment to a tested, documented Custy change.

Commandapp/

Category

Developer Guide

Quick Command

understand -> change -> test -> document -> review

Python 3.14+TyperRichpytest

Overviewโ€‹

Custy is a Python CLI for Git workflow automation, version management, changelog generation, release orchestration, and remote synchronization. This guide is for contributors changing Custy itself. It explains the active source boundaries and the integration work required when a change crosses them.


Choose a Development Path

Contributor Workflows

Prepare the Environment

Create the supported virtual environment, install Custy in editable mode, and verify the CLI in Development Setup.

Test a Change

Select focused CLI, core, integration, and regression checks before running the complete suite in Testing.

Add a CLI Command

Preserve the command, options, model, resolver, registration, and test boundaries in Adding Commands.

Add Pipeline Behavior

Implement, register, order, compose, and test one focused unit of work in Adding Pipeline Steps.

Add Version Generation

Extend the strategy enum and workflow dispatch alongside a tested strategy implementation in Adding Version Strategies.

Extend Configuration

Carry a new setting from the packaged template through resolution, runtime use, tests, and docs in Extending Configuration.

Active Source Boundaries

  • app/cli/ owns Typer commands, user-facing options, argument models, configuration resolution, and command registration.
  • app/core/ owns Git operations, workflows, pipelines, version strategies, changelog processing, backup, cleanup, and initialization behavior.
  • app/config/ owns loading and resolving project configuration.
  • app/templates/ contains packaged resources copied into a user's project by initialization.
  • tests/ mirrors the active layers and adds integration and regression coverage.


Continue