Repository navigation
build(linux): add AppImage update information - #311
tonyantony300 merged 8 commits into
Conversation
|
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Change: Feature Merge Risk: ⚪ Minimal · up to The update metadata no longer confines newly built AppImages to their original version’s sidecar. No actionable merge-blocking issue remains after normal release checks. Pre-merge checks |
|
|
Hi @snowyukitty, can you please sign the CLA |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/publish.yml (1)
293-309: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winUse a release-independent zsync filename pattern.
Because the
gh-releases-zsyncfield matches release asset names, the version-specificDashBeam_${VERSION}_${APPIMAGE_RELEASE_ARCH}.AppImage.zsyncvalue can prevent older AppImages from finding the sidecar in a newerlatestrelease. UseDashBeam_*_${APPIMAGE_RELEASE_ARCH}.AppImage.zsync. Update the validation step sobasename "$SIDECAR"uses pattern matching instead of exact equality.Source: MCP tools
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Team
Run ID: 2c7d96ba-b2ac-4989-a832-4f43f6b197b0
📒 Files selected for processing (1)
.github/workflows/publish.yml
Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.
|
CLA signed. I also brought the branch up to current |
The update information named this build's own version, so an installed AppImage would resolve `latest` and then look for its own sidecar in a release that no longer has one: a 0.7.1 build asking for `DashBeam_0.7.1_amd64.AppImage.zsync` finds only `DashBeam_0.7.2_amd64.AppImage.zsync` there. That is the case the field exists for, so updates would never have been found. The filename field takes `*` as a wildcard, so the embedded pattern is now `DashBeam_*_<arch>.AppImage.zsync`. The validation keeps the exact check it had, against a separate `APPIMAGE_EXPECTED_SIDECAR` built from `$VERSION`, so a bundle named for the wrong version is still refused. A second check then asserts the uploaded asset is matched by the pattern the AppImage carries, which is the invariant the first one no longer covers.
|
The CodeRabbit finding on the Why it mattered. The embedded filename is matched against the assets of whichever release is The fix. The filename field takes The validation. I kept the exact check rather than loosening it to the pattern. Verification. What that does not cover: the |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Organization UI
- Review profile: ASSERTIVE
- Plan: Advanced
- Run ID:
112685e9-75f7-4ec5-88d9-bb3ff64618f8
📒 Files selected for processing (1)
.github/workflows/publish.yml
Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 5 remain after this review.
Configure Linux AppImage release jobs to embed release-independent, architecture-specific zsync update information. Verify the single generated sidecar — its exact name for this version, that the pattern the AppImage carries still matches it, and its
.upd_infosection — before uploading it to the current draft release with rerunnable clobber behavior.Tests: this workflow is
on: push: tags: v*.*.*, so it was not executed. The arch-mapping and sidecar filename checks were copied into a local shell script with the GitHub-provided values,$GITHUB_ENVand the bundle directory stubbed, and exercised over eight cases: both arch mappings, a rejected unknown arch, a sidecar named for the version under build passing both checks, a sidecar from a later version still matched by the embedded pattern, a wrong-version bundle still refused by the exact check, the aarch64 pattern refusing an amd64 name, and a foreign filename refused. All eight behave as described, andpublish.ymlstill parses (yaml.safe_load), onpushtagsv*.*.*.Not covered by those checks: the
readelf --string-dump=.upd_inforeadback needs a real AppImage, so only a tagged release exercises it.Disclosure: This contribution was prepared with OpenAI Codex assistance.