Repository navigation
Document CI and the PR-based release flow; add Dependabot for Actions #69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # Keeps the GitHub Actions used by .github/workflows current. Swift packages are pinned by | ||
| # hand in project.yml on purpose (several of them rewrite their API between releases), so | ||
| # they are deliberately not covered here. | ||
| version: 2 | ||
| updates: | ||
| - package-ecosystem: github-actions | ||
| directory: / | ||
| schedule: | ||
| interval: monthly | ||
| labels: [ci] | ||
| commit-message: | ||
| prefix: "CI" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -267,13 +267,41 @@ Types: | |
| - [ ] Documentation updated if needed | ||
| - [ ] Tests added/updated | ||
| - [ ] No compiler warnings introduced | ||
| - [ ] CI is green | ||
|
|
||
| ### Continuous integration | ||
|
|
||
| Every pull request is compiled by GitHub Actions (`.github/workflows/ci.yml`): the app and its | ||
| test target are built for a generic iOS device with code signing off, on a free macOS runner. | ||
| `main` requires that check to pass before a PR can merge, and that applies to maintainers too. | ||
|
|
||
| The workflow copies `Config.xcconfig.example` and `OpenVision/Config/Config.swift.example` into | ||
| place, so no secrets are needed to compile. If CI fails on your PR, open the job's log; the | ||
| `.xcactivitylog` files are attached as an artifact when the build step fails. | ||
|
|
||
| ## Release Process | ||
|
|
||
| 1. Version follows [Semantic Versioning](https://semver.org/) | ||
| 2. Update `CHANGELOG.md` | ||
| 3. Create release tag | ||
| 4. GitHub Action builds and publishes | ||
| Releases are cut by a maintainer. Version numbers follow [Semantic Versioning](https://semver.org/): | ||
| a new backend or feature bumps the minor version, fixes alone bump the patch version. | ||
|
Comment on lines
+284
to
+285
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Add the major-version rule. These instructions assign new features to minor bumps, but SemVer requires a major bump for incompatible public-API changes. State that minor bumps apply to backward-compatible features and major bumps apply to incompatible changes. (semver.org) 🤖 Prompt for AI Agents |
||
|
|
||
| 1. Open a release branch from `main` (for example `release/2.15.0`). | ||
| 2. Update `CHANGELOG.md`: move everything merged since the last release under a new | ||
| `## [x.y.z] - YYYY-MM-DD` heading, grouped as Added / Changed / Fixed, with the PR number | ||
| on each line. | ||
| 3. Bump `MARKETING_VERSION` and `CURRENT_PROJECT_VERSION` in `project.yml`, run `xcodegen generate`, | ||
| and commit as `Bump version to x.y.z (build N)`. | ||
| 4. Open a pull request. `main` is protected, so the release commits go through CI like any | ||
| other change; direct pushes to `main` are rejected. | ||
| 5. After the merge, tag the merge commit and publish the release with narrative notes and a | ||
| compare link: | ||
|
|
||
| ```bash | ||
| git tag -a vx.y.z -m "OpenVision x.y.z" | ||
| git push origin vx.y.z | ||
| gh release create vx.y.z --title "OpenVision x.y.z" --notes-file notes.md | ||
| ``` | ||
|
|
||
| The app is distributed as source; there is no App Store or TestFlight step in this repository. | ||
|
|
||
| ## Questions? | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🔎 Supported by static analysis
🏁 Script executed:
Repository: rayl15/OpenVision
Length of output: 6509
🤖 get_repo_knowledge executed:
get_repo_knowledge rayl15/OpenVision /tmp/coderabbit-repo-knowledge/rayl15-openvision-116f9120/conventionsLength of output: 1098
🏁 Script executed:
Repository: rayl15/OpenVision
Length of output: 4551
🏁 Script executed:
Repository: rayl15/OpenVision
Length of output: 2240
🏁 Script executed:
Repository: rayl15/OpenVision
Length of output: 1251
🌐 Web query:
GitHub repository rulesets required status checks direct push require pull request before merging rule docs💡 Result:
Do not claim that direct pushes to
mainare rejected.The active
mainruleset requires the CI check, but it does not require changes to go through a pull request. Keep the CI requirement and remove the direct-push guarantee.🐛 Suggested fix
🤖 Prompt for AI Agents