Open-source software for Joomla, Gitea, and web platforms. Home of MokoSuite, MokoGitea, and MokoCLI.
Tennessee
contributing/commit-conventions.-
Commit Conventions
Commit message format for all MokoConsulting repositories.
Format
type: short description
Optional longer body explaining WHY, not what.
Reference issues with #123.
Types
| Type | Purpose | Example |
|---|---|---|
feat |
New feature | feat: add S3 remote storage support |
fix |
Bug fix | fix: prevent duplicate backup records on timeout |
docs |
Documentation only | docs: update REST API examples in wiki |
refactor |
Code change that doesn't fix a bug or add a feature | refactor: extract archive creation into separate class |
test |
Adding or updating tests | test: add integration tests for profile import |
chore |
Maintenance, dependencies, tooling | chore: update composer dependencies |
ci |
CI/CD changes | ci: add phpstan to validation workflow |
style |
Code style (formatting, missing semicolons, etc.) | style: fix phpcs whitespace violations |
perf |
Performance improvement | perf: batch database inserts for large backups |
security |
Security fix | security: sanitize file path input in restore endpoint |
Rules
- Lowercase after the type prefix:
feat: add widgetnotfeat: Add Widget - Imperative mood: "add feature" not "added feature" or "adds feature"
- No period at the end of the subject line
- 50 characters soft limit for subject line, 72 hard limit
- Blank line between subject and body
- Body explains WHY — the diff shows what changed; the message explains the reason
Referencing Issues
Link to Gitea issues in the commit body:
fix: handle empty config gracefully on first install
The installer was crashing when no default profile existed because
the config JSON was null instead of an empty object.
Fixes #42
Attribution
- No
Co-Authored-Bytrailers — all work is the committer's - No AI attribution in commits or source files
CHANGELOG.md
Update CHANGELOG.md as work progresses — don't batch changelog updates at release time:
## [Unreleased]
### Added
- S3 remote storage support for backup profiles
### Fixed
- Duplicate backup records created on request timeout (#42)
Multi-line Commits
When committing from the command line, use a heredoc for proper formatting:
git commit -m "$(cat <<'EOF'
feat: add differential backup support
Compares file checksums against the most recent full backup manifest
to create incremental archives containing only changed files.
Closes #55
EOF
)"
Pages