← Graph

Commit Transformations

concept 5 connections

Gamsjaeger's team restricts every commit to one of five transformation kinds, each an atomic (cannot-be-made-smaller) update to system artifacts (code, infrastructure, data via code). The kinds, in guideline priority order within a pull request: (1) remove — delete code; (2) fix — correct a suboptimal state or violation of a rule (broader than a bug fix); (3) refactor — restructure without changing semantics, the only 'look-ahead' transformation since its justification lies in enabling later commits; (4) change — alter existing semantics (including synonyms move, rename, upgrade, downgrade which are specialized changes); (5) add — introduce new public API. Commit messages must start with one of these verbs or CI rejects them. The priority is a guideline: tiebreakers exist and functional dependencies between commits may reorder them (e.g. a refactor must precede a remove). The tendency is that removes and fixes are low-risk, get merged fastest, and extracted pull requests of uncontroversial commits shrink reviewer load. Move and rename are extracted as separate improvements from larger refactorings because being in a better location/name is itself an atomic improvement.

category
pattern
about
Commit Transformations concept
Introduces the five commit transformations and their priority.
about
Commit Transformations concept
Question concerns the move and refactor transformations.
about
Commit Transformations concept
Question concerns the five transformations.
concept Commit Transformations
related_to
Atomic Commit concept
Each transformation must be atomic for the priority ordering to be meaningful.
related_to
Commit Transformations concept
The commit transformations are the practical output of the axiom-driven methodology.

Provenance

Read by
6 extractions