fix(update): stop offering a Linux app update that is never built - #2335
Conversation
Nothing produces wso2-integrator_<v>_amd64-update.deb. Windows builds an editor-only installer alongside the full one (INSTALLER_PROFILE=editor-update), and macOS has its Squirrel payload, but Linux only ever gets the full .deb from compile.yml. The v5.0.0 assets show it: wso2-integrator_5.0.0_amd64.deb, no -update variant. The generator downloads each app installer to hash and mirror it, so with build_linux true — the default everywhere — a publishing release resolved the linux entry to a release asset that does not exist, 404'd, and failed publish-update-source. No release could publish. Dropping the entry is enough: the app loop skips a target with no installer name. linux-x64 stays in targets, so Linux clients keep receiving component updates, whose artifacts do exist; they are simply never offered an app update. Restoring it is a one-line change once an editor-update .deb is built. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe installer manifest removes the ChangesInstaller manifest
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to Linux application update publishing will no longer request an unbuilt installer, while macOS and Windows installer mappings remain unchanged. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description clearly explains the problem, implementation, impact, verification, and restoration condition. However, it does not follow the repository template and omits required sections such as Release note, Documentation, Training, Certification, Marketing, Automation tests, Security checks, Test environment, and Related PRs. Resolution Update the description to use the repository template. Add or explicitly mark as N/A the missing sections, including release note, documentation impact, training, certification, marketing, automation tests, security checks, samples, related PRs, migrations, test environment, and learning.
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Problem
A publishing release cannot complete.
publish-update-sourcefails ingenerate-update-manifest.mjsbefore it writes anything.build_linuxdefaults totrueinbuild.yml,release.ymlanddev-build.yml, and is hardcodedtrueindaily-build.yml, solinux-x64always lands in the published targets. The manifest config then asks for an installer that nothing builds:Windows builds an editor-only installer alongside the full one (
INSTALLER_PROFILE=editor-update→wso2-integrator-<v>-update.msi, build.yml:1306-1310) and macOS has its Squirrel payload, but Linux only ever gets the full.debfromcompile.yml. The assets on v5.0.0 show it —wso2-integrator_5.0.0_amd64.deb, with no-updatevariant.The generator has to download each app installer to compute its
sha256and mirror the bytes, so this isn't a dangling URL in the output — it's a 404 that throws and fails the job.Loud rather than silent, which is the right direction, but it blocks every release that publishes updates. Daily and dev builds are unaffected: they set
build_linux: truebut never publish.Change
Drop the
linux-x64entry fromapp.installers. That's sufficient on its own — the app loop skips a target with no installer name:linux-x64deliberately stays intargetsandplatformTokens.compile.ymlrunsupdate-product.sh, so the Linux.deb/.rpmcarry the update endpoint and pinned key and do poll the server. Their component artifacts — the Ballerina distribution, the JRE, the extension VSIXs — all exist upstream and mirror fine. Only the core-app update is unavailable, so Linux clients keep getting component updates and are simply never offered an app update.Removing
linux-x64fromtargetsinstead would have traded one hard failure for another: the workflow still passes it in--targets, and the generator rejects targets missing fromconfig.targets.Verification
Structure-only run with all four targets requested:
No attempt to resolve a Linux
.deb, all nine components still coverlinux-x64.Restoring it
One line, once an
editor-update.debis built the way Windows builds its MSI.🤖 Generated with Claude Code
Summary by CodeRabbit