Repository navigation
ci: versions are MAJOR.MINOR.PATCH, a new one with every app change (#230) - #232
Conversation
…230) .github/check-version.sh, run by a new pull-request job: if android/ (except the unit tests in android/app/src/test) changed against the base branch, versionName must change too. A new version must be MAJOR.MINOR.PATCH without leading zeros, greater than the base one (sort -V), with a CHANGELOG.md section "## <version> — YYYY-MM-DD" that the base branch does not have. The format is checked only when the version changes, so the current 2.17 stays valid until the next app change takes 2.17.1 or 2.18.0. The base branch reaches the script through the environment. docs/testing.md: the MAJOR.MINOR.PATCH rule replaces "2.xx, +0.01"; numbers are no longer reserved for open pull requests; basic 1.07.1 is 1.7.1. CHANGELOG.md: the header says where the scheme changes. Tested in compot/cross on a scratch clone (11 cases): no change, docs only and unit tests only pass; app code or gradle.properties without a bump fail; 2.18 (old style), a missing section, 2.16.9 and 2.017.0 fail; 2.17.1 and 2.18.0 with a section pass. shellcheck v0.10.0 clean. Refs #230
PR Summary by QodoEnforce version bumps and changelog entries for Android PRs
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
1. Historical release notes rename 1.07.1
|
…2.17, base from the merge commit Qodo on #232: - only an actual versionName assignment counts, and there must be one: a comment with a version before it or a second assignment fail; - a 2.xx version from before MAJOR.MINOR.PATCH compares as X.Y.0, so 2.17.0 is the same version as 2.17 and fails; - CI passes HEAD^1, the base side of the pull request's merge commit, so the old version and the changed files come from the same base even if v2 moves meanwhile; - the job runs for pull requests to v2 only (basic has its own workflow and app/build.gradle). CHANGELOG.md: the basic heading is 1.7.1 (released as 1.07.1). Tested: the 11 earlier cases, plus 2.17.0, a version-like comment, two assignments (all fail) and a merge commit checked with HEAD^1 (pass). shellcheck clean. Refs #230
|
Qodo findings, all four addressed in b26d7bf:
Tested in |
|
/review |
Thanks for the detailed resolution. Based on the supplied changes, commit
The reported 15/15 validation results and clean ShellCheck run provide good coverage. I can’t independently verify the commit or close findings from this acknowledgement alone. |
| ### 1.7.1 — 2026-10-12 | ||
|
|
||
| - Robust RTSP handshake, end-of-stream handling, thread lifecycle and SDP parsing (PR #41, | ||
| #36–#40). | ||
| - Released as 1.07.1 (written 1.7.1 since #230). Robust RTSP handshake, end-of-stream | ||
| handling, thread lifecycle and SDP parsing (PR #41, #36–#40). |
There was a problem hiding this comment.
1. Historical release notes rename 1.07.1 📎 Requirement gap ⚙ Maintainability
CHANGELOG.md replaces the historical 1.07.1 heading with 1.7.1 while rewriting its entry text. Readers scanning headings see a number other than the published version, even though the introduction says headings retain released numbers and the entry text identifies the release as 1.07.1.
Agent Prompt
## Issue description
The historical `1.07.1` changelog heading was changed to its canonical `1.7.1` spelling, contradicting the introduction's statement that headings retain released numbers.
## Fix Focus Areas
- CHANGELOG.md[10-12]
- CHANGELOG.md[115-118]
## Recommended Fix
Restore the heading to `### 1.07.1 — 2026-10-12`. Keep the explanation of the canonical `1.7.1` spelling in the entry text or changelog introduction without renaming the released heading.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| # (MAJOR.MINOR.PATCH) and its CHANGELOG.md section (.github/check-version.sh, #230) | ||
| version: | ||
| # basic keeps its own workflow and version file (app/build.gradle) | ||
| if: github.event_name == 'pull_request' && github.base_ref == 'v2' |
There was a problem hiding this comment.
2. Retargeted pull requests skip version checks 🐞 Bug ≡ Correctness
The new version job is conditional on github.base_ref == 'v2', but the workflow uses the default pull-request activity types, which do not include edited. If an existing pull request is retargeted from another branch to v2, the base-branch edit does not run the job, so its current app changes remain unchecked until another qualifying event occurs.
Agent Prompt
## Issue description
Retargeting a pull request to v2 does not trigger the version check because the workflow does not subscribe to pull-request edits.
## Fix Focus Areas
- .github/workflows/build.yml[1-5]
- .github/workflows/build.yml[23-36]
## Recommended Fix
Specify pull_request activity types that include edited alongside opened, synchronize, and reopened, so retargeting reruns the base-dependent version job.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
|
Code review by qodo was updated up to the latest commit b26d7bf |
Part of #230 (the
v2side;basic1.07.1 → 1.7.1 comes in a PR tobasic).What changes
.github/check-version.sh, run by a newversionjob on pull requests (checkout withfetch-depth: 0, base throughenv):android/changed (except the unit tests inandroid/app/src/test),versionNamemust change too;MAJOR.MINOR.PATCHwithout leading zeros, greater than the base one (sort -V), and have a## <version> — YYYY-MM-DDsection inCHANGELOG.mdthat the base branch does not have yet;2.17stays valid until the next app change, which takes 2.17.1 (fix) or 2.18.0 (feature).docs/testing.md, "Versions and releases": theMAJOR.MINOR.PATCHrule (PATCH, MINOR; MAJOR only when the maintainer decides) replaces "2.xx, +0.01"; numbers are no longer reserved for open pull requests, each takes the next one when it is merged;basic1.07.1 is 1.7.1.CHANGELOG.md: the header says where the scheme changes; old headings stay as released.Note for #220: it was to take 2.18; with this rule it takes the next number when it is merged (a fix → 2.17.1, or the next free one), with its
CHANGELOG.mdsection.Tests
compot/crosson a scratch clone, 11 cases:gradle.propertieschanged, no bumpshellcheckv0.10.0-S style: clean. This PR changes only.github/, docs andCHANGELOG.md, so its ownversionjob passes without a bump.