Files
DDNS/CONTRIBUTING.md

1.5 KiB

Contributing to DDNS

Development workflow

  1. Start from a clear issue or change goal.
  2. Read AGENTS.md and the closest directory AGENTS.md.
  3. Update implementation, tests, schemas or metadata, and Chinese/English documentation together when behavior changes.
  4. Run focused checks while iterating and the full affected suite before opening a pull request.
  5. Complete the pull request template with compatibility and validation evidence.

Runtime constraints

  • Code under ddns/, run.py, and tests supports Python 2.7 and current Python 3 versions.
  • Runtime dependencies remain standard-library only.
  • Repository tools under tools/ target Python 3.12+.
  • Preserve existing CLI, configuration, provider, schema, and cache contracts unless a breaking change is explicitly approved.

Common validation

python -m unittest discover tests -v
python -m unittest tests.e2e -v
ruff check .
ruff format --check .
npm --prefix docs ci
npm --prefix docs run build

Run only the checks relevant to your change while iterating, but do not skip an affected compatibility or platform suite.

Pull requests

  • Keep changes focused and reviewable.
  • Use a conventional title such as fix(http): bound retry failures.
  • Do not include credentials, private configuration, customer identifiers, or live provider responses.
  • Do not use real DNS credentials or mutate live DNS for validation.
  • Agent-authored changes follow the same review and quality requirements as human-authored changes.