| Branch | Purpose |
|---|---|
master |
Stable, released code. Every commit here is either a release or a release-ready state. |
develop |
Active development. All feature branches merge here first. |
- Never push directly to
master. All changes go throughdevelopfirst. develop→mastermerge happens only when preparing a release.- Feature branches are created from
developand merged back intodevelopvia PR. - Hotfix branches are created from
master, merged into bothmasteranddevelop.
| Type | Pattern | Example |
|---|---|---|
| Feature | feature/<short-name> |
feature/dialog-fragment-support |
| Bug fix | fix/<short-name> |
fix/lifecycle-leak |
| Hotfix (from master) | hotfix/<short-name> |
hotfix/crash-on-api-21 |
| Chore / CI | chore/<short-name> |
chore/update-dependencies |
| Docs | docs/<short-name> |
docs/migration-guide |
feature/xyz ──PR──► develop ──release──► master ──tag──► v2.0.5
│
GitHub Actions
publishes to
Maven Central
- Ensure
developis stable and all tests pass - Merge
developintomaster - Update version in
gradle/libs.versions.toml(vbpd = "X.Y.Z") - Commit, tag, and push:
git tag vX.Y.Z git push origin master --tags
- CI automatically: validates version → runs checks → publishes to Maven Central → creates GitHub Release
- Clone the repository
- Open in Android Studio
- For local publishing, create
local.propertieswith signing and Maven Central credentials
The project uses:
- Detekt — Kotlin static analysis
- ktlint — Kotlin code formatting
- Kover — code coverage
Run all checks: ./gradlew check