Skip to content

ci: only latest and test pre-releases; docs: mapping.txt (#194, #193) - #195

Merged
compot-dev merged 2 commits into
v2from
ci/releases-latest-194
Oct 15, 2026
Merged

compot-dev merged 2 commits into
v2from
ci/releases-latest-194

Conversation

@compot-dev

Copy link
Copy Markdown
Collaborator

Fixes #194, fixes #193.

CI (#194)

Docs

  • docs/testing.md:
    • Versions and releases: no per-version releases; test pre-releases and how to make one; the change history is the merged PRs and the commits of v2.
    • Stack traces and mapping.txt (docs: explain what mapping.txt is and how to retrace a release crash #193): what R8 does to a crash, what is in the file (a real excerpt from 2.10), which mapping fits which build (latest, or the run artifact of the commit, kept 90 days), and how to retrace.
  • README EN/RU/ZH: the two sentences about per-version releases now point to latest, Telegram and the merged PRs and commits.

No app change, no version bump.

… docs: what mapping.txt is and how to retrace a crash (#193)
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Publish builds to latest and document build-specific R8 mappings

⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Remove per-version release creation while retaining latest, Telegram delivery, and per-run
 mapping artifacts.
• Document manual test pre-releases and how to retrieve the correct mapping for crash retracing.
• Update English, Russian, and Chinese READMEs to point to current builds and commit history.
Diagram

graph TD
  B["Signed build"] --> G["Branch routing"] -->|release branches| L[("Latest release")]
  G -->|release branches| T["Telegram channel"]
  G -->|working branches| A[("Branch APK artifact")] -->|manual publication| P[("Test pre-release")]
  B --> M[("Run mapping artifact")]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Retain immutable per-version releases
  • ➕ Keeps older APKs and matching mappings available beyond workflow-artifact retention.
  • ➖ Preserves release automation and a version-by-version publishing model the PR intends to retire.

Recommendation: Use the PR's simpler continuous-publication model if Telegram is the intended archive for older APKs. Reviewers should accept the trade-off that run mappings expire after 90 days, limiting retracing for older builds.

Files changed (5) +59 / -83

Documentation (4) +57 / -15
README.mdAlign English download and history guidance +2/-2

Align English download and history guidance

• Replaces per-version release guidance with 'latest' and Telegram build availability. Points readers to merged pull requests and v2 commits for change history.

README.md

README.ru.mdAlign Russian download and history guidance +2/-2

Align Russian download and history guidance

• Explains that new builds replace those in 'latest' and are posted to Telegram. Replaces release-note history links with merged pull requests and v2 commits.

README.ru.md

README.zh-CN.mdAlign Chinese download and history guidance +2/-2

Align Chinese download and history guidance

• Explains continuous publication through 'latest' and Telegram instead of per-version releases. Directs readers to merged pull requests and v2 commits for change history.

README.zh-CN.md

testing.mdDocument test releases and build-specific crash retracing +51/-9

Document test releases and build-specific crash retracing

• Replaces versioned-release instructions with the current publication model and a manual test pre-release example. Explains R8 mappings, their 90-day run-artifact retention, how to match one to a build, and how to use 'retrace'.

docs/testing.md

Other (1) +2 / -68
build.ymlRemove automated per-version releases +2/-68

Remove automated per-version releases

• Deletes the v2 step that created or repaired version tags, releases, APKs, mappings, and generated notes. Existing 'latest', Telegram, and per-run mapping uploads remain in place.

.github/workflows/build.yml

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Test builds cannot be published ✓ Resolved
Description
The test pre-release recipe passes decoder---test1.apk to gh release create without first
downloading the branch CI artifact or using its branch-based filename. Following the documented
command leaves no matching local file: the workflow provides decoder-.apk as a downloadable
artifact, so release creation fails.
Code

docs/testing.md[R55-57]

+  ```sh
+  gh release create <name>-<issue>-test1 decoder-<name>-test1.apk --prerelease \
+    --target <commit> --title "… test build 1 (#<issue>)" --notes "…"
Evidence
The added release command names an APK with an issue and test suffix but includes no step to obtain
it. The workflow derives the APK artifact name from github.ref_name, and the existing
branch-download example uses that branch-based name without a -test1 suffix; together, these show
why the release command cannot find the file it names.

Document release and test-build availability
docs/testing.md[52-58]
.github/workflows/build.yml[75-86]
.github/workflows/build.yml[73-84]
.github/workflows/build.yml[113-122]
docs/testing.md[53-57]
docs/testing.md[65-70]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The test pre-release instructions reference an APK filename the branch workflow does not produce and omit the step that downloads the branch CI artifact.
## Fix Focus Areas
- docs/testing.md[52-58]
- docs/testing.md[65-70]
- .github/workflows/build.yml[75-86]
## Recommended Fix
Show how to find the branch's CI run and download its artifact before creating the release. Pass the actual downloaded `decoder-<branch-slug>.apk` filename to `gh release create`, keep the issue and test suffix in the release tag, and clarify that the release name is independent of the artifact filename.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Lab users cannot download old releases ✓ Resolved
Description
Removing the Versioned release step leaves no workflow that creates the version tags and APK
filenames required by the laboratory build instructions. Once the planned v2.01–v2.10 releases
are deleted, the documented gh release download v2.01 command has no release to download.
Code

.github/workflows/build.yml[L146-147]

-      - name: Versioned release
-        if: github.ref_name == 'v2'
Evidence
The remaining release upload targets only latest, while the laboratory instructions still require
a per-version release and filename; the PR also states that the existing versioned releases will be
deleted.

.github/workflows/build.yml[130-140]
LABORATORY.md[250-253]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The laboratory instructions still require per-version releases that this change removes.
## Fix Focus Areas
- LABORATORY.md[250-253]
- .github/workflows/build.yml[130-140]
## Recommended Fix
Replace the per-version release download command and its release-creation claim with instructions for obtaining the current build from `latest` and older builds from Telegram.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Manual-build mappings evade commit search ✓ Resolved
Description
The mapping instructions use gh run list -c  to locate a run, but a manual build's commit_hash
input changes only the checked-out worktree, not the commit associated with the workflow run. When
someone manually builds an older commit from a branch, the documented lookup does not find that run
or its mapping artifact.
Code

docs/testing.md[R111-112]

+RUN=$(gh run list -R OpenIPC/decoder -c <commit> -w Build -L 1 --json databaseId -q '.[0].databaseId')
+gh run download "$RUN" -R OpenIPC/decoder -n decoder-v2-mapping
Evidence
The workflow accepts commit_hash and checks it out inside the job, while the new instructions
assume the run itself can be found by filtering on that commit.

.github/workflows/build.yml[5-10]
.github/workflows/build.yml[64-70]
docs/testing.md[102-112]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Filtering runs by commit misses manual builds that checked out a different commit using `commit_hash`.
## Fix Focus Areas
- docs/testing.md[102-113]
- .github/workflows/build.yml[5-10]
- .github/workflows/build.yml[64-70]
## Recommended Fix
Limit the commit-filter command to push runs and add instructions for finding a manually dispatched run by its branch or run ID before downloading its mapping artifact.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View review recommended (1)
4. Branch testers are sent to Telegram ✓ Resolved
Description
The new release-history text says every build is posted to Telegram, although the Telegram step
runs only for basic and v2. Someone looking for an older working-branch build there will not
find it; those builds are published as workflow artifacts instead.
Code

docs/testing.md[52]

+- Development is continuous, so there is **no release per version** (#194). The [`latest`](https://github.com/OpenIPC/decoder/releases/tag/latest) release always holds the newest `v2` and `basic` builds. Every build is also posted to the OpenIPC Telegram channel with its version and commit, and that is where older builds can be found.
Evidence
The workflow routes non-release branches to artifact upload and gates Telegram on the two release
branches, contrary to the new unqualified claim.

.github/workflows/build.yml[113-122]
.github/workflows/build.yml[142-144]
docs/testing.md[32-38]
docs/testing.md[52-52]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new documentation directs readers to Telegram for every build, but working-branch builds are not posted there.
## Fix Focus Areas
- docs/testing.md[52-53]
- README.md[48-48]
- README.ru.md[48-48]
- README.zh-CN.md[48-48]
## Recommended Fix
Specify that Telegram retains `v2` and `basic` builds. Direct readers seeking working-branch builds to their workflow artifacts, and apply the same distinction in the translated READMEs.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can hide the parts of a finding you never read, like the evidence or the agent prompt

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread docs/testing.md Outdated
Comment thread docs/testing.md Outdated
Comment thread docs/testing.md Outdated
Comment thread .github/workflows/build.yml
…or mappings, Telegram only for v2/basic, LABORATORY without per-version releases (Qodo on #195)
@compot-dev

Copy link
Copy Markdown
Collaborator Author

Qodo's 4 findings are fixed in ad7e10e:

  1. Test pre-release recipe: it now finds the branch's push run, downloads decoder-<branch>, copies it to the asset name and creates the pre-release at the run's commit. It also says the tag and asset names are free to choose.
  2. LABORATORY.md: the gh release download v2.01 line now says older v2/basic builds are in Telegram and there are no per-version releases.
  3. Manual runs: the commit filter is now limited to push runs (-e push), and manual runs are found by branch (-e workflow_dispatch -b <branch>) and then by time or ID.
  4. Telegram: everywhere (testing.md and the three READMEs) it now says only v2 and basic builds go there, and other branches are workflow artifacts (90 days).

@compot-dev
compot-dev merged commit 60005d0 into v2 Oct 15, 2026
4 checks passed
@compot-dev
compot-dev deleted the ci/releases-latest-194 branch October 15, 2026 18:07
compot-dev pushed a commit that referenced this pull request Oct 15, 2026
…or mappings, Telegram only for v2/basic, LABORATORY without per-version releases (Qodo on #195)
compot-dev added a commit that referenced this pull request Oct 15, 2026
ci: only latest and test pre-releases; docs: mapping.txt (#194, #193)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Releases: keep only latest and test pre-releases, no per-version releases docs: explain what mapping.txt is and how to retrace a release crash

2 participants