Contributing
Contributing to Reflow
Ubah satu release-workflow problem yang sudah dipahami menjadi focused change dengan safety evidence yang dapat diverifikasi.
make checkCategory
Quick Command
scope -> implement -> validate -> document -> hand offOverviewโ
Contribution untuk Reflow harus mempertahankan repository identity, explicit mutation scope, dry-run behavior, confirmation, dan actionable failure reporting. Jangan gabungkan unrelated cleanup, release metadata, version changes, atau publication dengan focused source change.
Contribution Workflow
Workflow Timeline
Branch and Scope Conventions
Suggested Branch Types
Feature
Bug Fix
Release
Primary Development
Jangan commit, tag, push, rewrite history, publish packages atau images, replay tags, maupun mengubah release metadata hanya karena source validation berhasil.
Implementation Standards
Before You Begin
- Pertahankan focused layersRequired
CLI interaction tetap berada di app/cli; reusable behavior berada di app/core atau service yang sesuai.
- Pertahankan repository identityRequired
Jangan mengganti selected target repository dengan Reflow source checkout atau registry image.
- Lindungi dry-runRequired
Setiap mutating path memerlukan bukti bahwa dry-run tidak menghasilkan persistent local atau external change.
- Tangani errors satu kaliRequired
Tampilkan remediation ringkas pada CLI boundary dan sembunyikan sensitive atau deep diagnostics dari normal output.
- Dokumentasikan public contractsRequired
Sinkronkan command, option, configuration, safety, migration, dan architecture guidance.
Quality Gates
# Focused example
python -m pytest tests/cli/test_repository_targeting.py
# Complete tests and quality checks
python -m pytest
make check
# Hook configuration and tracked-file checks
make pre-commit-validate
make pre-commit-run-staged
make pre-commit-runFinal Review Checklist
Before You Begin
- Scope tetap coherentRequired
Setiap changed file mendukung behavior, tests, atau documentation yang dinyatakan.
- Target dan effects bersifat explicitRequired
Local paths, remote URLs, registries, confirmation, dan dry-run behavior tetap predictable.
- Tests tetap isolatedRequired
Tests menggunakan temporary repositories, mocks, dan deterministic configuration, bukan personal state atau credentials.
- Quality checks dilaporkanRequired
Formatting, lint, tests, dan relevant builds memiliki explicit outcomes.
- Tidak ada unapproved release actionRequired
Versions, changelogs, tags, pushes, releases, dan publication tidak berubah kecuali sudah disetujui dalam scope.