feat(snap): Snap Store packaging - #586
Open
Nozzit wants to merge 1 commit into
Open
Conversation
Repackages the released Linux AppImage (--appimage-extract) instead of rebuilding from source, triggered on completion of the "Release" workflow. Publishing to the Snap Store only happens once SNAPCRAFT_STORE_CREDENTIALS is set as a repo secret. Different from the other OpenAEC snaps in one important way: OCS uses winit + wgpu (Vulkan/GL), not GTK/WebKit, so this uses explicit opengl/wayland/x11 plugs and staged Mesa/X11/Wayland runtime libraries instead of the `gnome` extension. Higher confidence in the packaging mechanics (build succeeds, produces a valid .snap) than in the actual runtime GPU/windowing behavior under strict confinement, which needs real hands-on testing on a Linux desktop before publishing to stable -- see the PR description. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
|
Hi @Nozzit,
|
Author
|
I am going on vacation tomorrow, I'll do it later so don't worry when it takes a while |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Adds
snap/snapcraft.yaml+.github/workflows/snap.ymlto bring Open CAD Studio onto the Snap Store, following the same repackage-the-release-artifact pattern already shipped for the other OpenAEC Foundation apps (open-planner-studio, open-calc-studio, open-geotechniek-studio, openaec-installer) — except this repackages the released AppImage (--appimage-extract) instead of a.deb, since that's what this project'sReleaseworkflow produces for Linux.open-cad-studio.workflow_run) — matches itsrelease: published+workflow_dispatchtriggers, so there's no risk of firing on routine pushes.SNAPCRAFT_STORE_CREDENTIALSis set as a repo secret — until then the publish step is skipped, not failed.OCS uses winit + wgpu (Vulkan with a GL fallback) for its window/rendering, not GTK/WebKit. That means:
extensions: [gnome](that's specific to the WebView-based Tauri apps). Instead this declares explicitopengl,wayland,x11,desktop,desktop-legacyplugs and stages the Mesa/X11/Wayland runtime libraries the binary needs (lddon the released binary shows almost no linked libs beyond libc, which strongly suggests wgpu/winit load Vulkan/GL/X11/Wayland dynamically at runtime rather than at link time — the staged packages should cover that, but this is inferred, not confirmed against a real GPU).snapcraft.yamlvalidates). I have much lower confidence in the actual GPU/windowing behavior understrictconfinement — that can only really be verified by installing the built snap on a real Linux desktop with a GPU and confirming the app actually renders and opens/saves DWG/DXF files, not just thatsnapcraft packsucceeds in CI.Prerequisites before this can publish anything
open-cad-studioisn't registered on snapcraft.io yet.SNAPCRAFT_STORE_CREDENTIALSneeds to be added as a repo secret (snapcraft export-login --snaps=open-cad-studio --channels=stable).Test plan
workflow_dispatchtest build against an existing tag (e.g.v0.9.0) — build/artifact only, no publish.confinement: classic, which requires manual Snap Store review on every release).Releasepublish it.🤖 Generated with Claude Code