|
1 |
| -# Semantic Release Setup |
| 1 | +# Release-Please Setup |
2 | 2 |
|
3 |
| -This project uses [semantic-release](https://semantic-release.gitbook.io/) to automate version management and package publishing. |
| 3 | +This project uses [release-please](https://github.com/googleapis/release-please) to automate version management and package publishing. |
4 | 4 |
|
5 | 5 | ## How it works
|
6 | 6 |
|
7 | 7 | 1. **Commit messages** follow the [Conventional Commits](https://www.conventionalcommits.org/) specification
|
8 |
| -2. **Semantic-release** analyzes commits and determines the next version number |
9 |
| -3. **GitHub Actions** automatically creates releases when changes are pushed to `main` |
| 8 | +2. **Release-please** analyzes commits and determines the next version number |
| 9 | +3. **GitHub Actions** automatically creates release PRs and publishes releases |
10 | 10 |
|
11 | 11 | ## Commit Message Format
|
12 | 12 |
|
@@ -47,38 +47,30 @@ BREAKING CHANGE: This removes the old API
|
47 | 47 |
|
48 | 48 | ## Release Process
|
49 | 49 |
|
50 |
| -### Regular Releases (main branch) |
| 50 | +### Automated Release Flow |
51 | 51 |
|
52 |
| -1. Push commits to `main` branch |
53 |
| -2. GitHub Actions runs semantic-release |
54 |
| -3. If there are releasable changes: |
| 52 | +1. **Push commits** to `main` branch with conventional commit messages |
| 53 | +2. **Release-please** analyzes commits and creates a release PR when needed |
| 54 | +3. **Review and merge** the release PR to trigger the actual release: |
55 | 55 | - Version is updated in `Sources/Helpers/Version.swift`
|
56 | 56 | - `CHANGELOG.md` is updated
|
57 |
| - - Git tag is created |
| 57 | + - Git tag is created (e.g., `v2.33.0`) |
58 | 58 | - GitHub release is published
|
59 | 59 |
|
60 |
| -### Release Candidates (rc branch) |
| 60 | +### Release Branches |
61 | 61 |
|
62 |
| -1. Push commits to `rc` branch |
63 |
| -2. GitHub Actions runs semantic-release |
64 |
| -3. If there are releasable changes: |
65 |
| - - Prerelease version is created (e.g., `2.31.0-rc.1`) |
66 |
| - - Version is updated in `Sources/Helpers/Version.swift` |
67 |
| - - `CHANGELOG.md` is updated |
68 |
| - - Git tag is created |
69 |
| - - GitHub prerelease is published |
| 62 | +Release-please also supports `release/*` branches for managing releases from feature branches if needed. |
70 | 63 |
|
71 | 64 | ## Manual Release
|
72 | 65 |
|
73 |
| -To manually trigger a release: |
| 66 | +To manually trigger the release-please workflow: |
74 | 67 |
|
75 | 68 | 1. Go to Actions tab in GitHub
|
76 |
| -2. Select "Semantic Release" workflow |
| 69 | +2. Select "Release" workflow |
77 | 70 | 3. Click "Run workflow"
|
78 | 71 |
|
79 | 72 | ## Configuration Files
|
80 | 73 |
|
81 |
| -- `.releaserc.json`: Semantic-release configuration |
82 |
| -- `package.json`: Node.js dependencies |
| 74 | +- `release-please-config.json`: Release-please configuration |
| 75 | +- `.release-please-manifest.json`: Current version tracking |
83 | 76 | - `.github/workflows/release.yml`: GitHub Actions workflow
|
84 |
| -- `scripts/update-version.sh`: Version update script |
0 commit comments