Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/commit-template
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# <type>[optional scope]: <description> --------|

# <optional body> ----------------------------------------------------|

# See also: [Conventional Commits](https://www.conventionalcommits.org/)

# Type | Use for | Version bump?
# ------------ | ---------------------------------------- | -------------
# feat | New feature | Yes — minor
# fix | Bug fix | Yes — patch
# feat! / fix! | Breaking change | Yes — major
# docs | README or documentation changes | No
# ci | CI configuration and scripts | No
# chore | Maintenance, dependency updates | No
# test | Adding or fixing tests only | No
# build | Build system or tooling changes | No
# refactor | Code change with no behaviour change | No
# style | Formatting, whitespace — no logic change | No
# perf | Performance improvement | No

# Breaking changes: add "!" after the type, e.g.:
# feat!: drop iOS 16 support
# or include "BREAKING CHANGE:" in the footer.
#
# Examples:
# feat: add retry logic to network requests
# fix(auth): handle expired token gracefully
# docs: update README intro for MVVM developers
# ci: fix release workflow permissions
# chore: bump swift-collections to 1.1.4
26 changes: 26 additions & 0 deletions Documentation/GitWorkflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@ This guide describes the full lifecycle of a feature branch: from creation to a

---

## Commit message convention

This workflow uses [Conventional Commits](https://www.conventionalcommits.org/) for all commit messages on `main`. The format is:

```
<type>[optional scope]: <description>
```

Common types:

| Type | Use for | Version bump? |
|---|---|---|
| `feat` | New feature | Yes — minor |
| `fix` | Bug fix | Yes — patch |
| `feat!` / `fix!` | Breaking change | Yes — major |
| `docs` | README or documentation changes | No |
| `ci` | CI configuration and scripts | No |
| `chore` | Maintenance, dependency updates | No |
| `test` | Adding or fixing tests only | No |
| `build` | Build system or tooling changes | No |
| `refactor` | Code change with no behaviour change | No |

Only `feat`, `fix`, and breaking changes (marked with `!`) require a new version tag. Everything else can be merged without bumping the version.

---

## 1. Start from a clean main

```bash
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,20 @@ return .task { input, env in

---

## Contributing

Contributions are welcome. Please follow the [Git workflow](Documentation/GitWorkflow.md) used in this project.

This project uses [Conventional Commits](https://www.conventionalcommits.org/) for all commit messages. After cloning, run the following once to activate the commit message template:

```bash
git config commit.template .github/commit-template
```

The template is included in the repository at `.github/commit-template`.

---

## License

Apache License, Version 2.0
Loading