Skip to content

fix: keep snap.yaml store-schema clean and release v0.4.1 - #55

Merged
leonid-shevtsov merged 1 commit into
mainfrom
fix/snap-store-icon-schema
Sep 7, 2026
Merged

leonid-shevtsov merged 1 commit into
mainfrom
fix/snap-store-icon-schema

Conversation

@leonid-shevtsov

@leonid-shevtsov leonid-shevtsov commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

What & why

The v0.4.0 release job failed on the Snap Store upload: the store's snap.json schema rejects an icon: key in snap.yaml (Additional properties are not allowed ('icon' was unexpected)). Everything else in that release published — GitHub Release, Docker Hub/GHCR, Homebrew and NUR PRs — so this cuts v0.4.1 to land the snap.

  • Drop snapcrafts[].icon; goreleaser writes it straight into snap.yaml. The icon still reaches the store via meta/gui/icon.png, which extra_files already stages.
  • release.extra_files attaches dist/*.snap to the GitHub release. Snap artifacts are store-publishable, not release-uploadable, so goreleaser skipped them and the release job's .snap asset check would have failed even after the schema fix.
  • CI snap job runs review-tools over both packed snaps. snap install --dangerous accepts metadata the store refuses, which is why this only showed up on a tag; snap-review is what the store runs on upload, so the whole schema is covered rather than the one key we tripped over.

How to test

  • After merge and the v0.4.1 tag, the release run finishes green, including the Snap Store upload and the .snap asset check
  • sudo snap install mailtrap-local on Ubuntu once Canonical review clears; UI at http://127.0.0.1:3550, SMTP at 127.0.0.1:3535
  • GitHub release v0.4.1 carries mailtrap-local_0.4.1_linux_amd64.snap and _arm64.snap alongside the tarballs

Summary by CodeRabbit

  • Bug Fixes
    • Fixed Snap Store validation issues by packaging the application icon in the expected location.
    • Tagged releases now include Linux Snap packages as downloadable release assets.
  • Documentation
    • Added changelog details for the Snap packaging and release improvements in version 0.4.1.

@coderabbitai

coderabbitai Bot commented Sep 7, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 25 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 9625476e-bb0e-49e8-a613-373007b6c46a

📥 Commits

Reviewing files that changed from the base of the PR and between 31ce6f1 and 61d2583.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 1940ca11-f323-42d5-b0e7-fe4ead0ae2a4

📥 Commits

Reviewing files that changed from the base of the PR and between 9fd6b71 and 31ce6f1.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • .goreleaser.yaml
  • CHANGELOG.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The changes validate Snap Store metadata, stage the icon at meta/gui/icon.png, attach .snap artifacts to GitHub releases, and document these fixes in the 0.4.1 changelog.

Changes

Snap release packaging

Layer / File(s) Summary
Store-safe snap metadata
.github/workflows/ci.yml, .goreleaser.yaml
CI rejects icon: in snap.yaml and verifies meta/gui/icon.png. GoReleaser removes the snapcraft icon key.
Release artifacts and changelog
.goreleaser.yaml, CHANGELOG.md
GoReleaser attaches .snap files to GitHub releases. The changelog records the 0.4.1 fixes and release link.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 31ce6

The release packaging now omits the unsupported Snap icon field, retains the packaged icon, and attaches Snap artifacts to tagged releases. No current merge-blocking risk is identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the Snap Store schema fix and the v0.4.1 release. It is concise and related to the main changes.
Description check ✅ Passed The description explains the motivation, lists the changes, and provides release validation steps. It uses "What & why" instead of the template headings and omits the Images and GIFs section, but the …

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Co-authored-by: Cursor <cursoragent@cursor.com>
@leonid-shevtsov
leonid-shevtsov force-pushed the fix/snap-store-icon-schema branch 2 times, most recently from 05b1d74 to 61d2583 Compare September 7, 2026 12:53
@leonid-shevtsov
leonid-shevtsov merged commit 92798cb into main Sep 7, 2026
11 checks passed
@leonid-shevtsov
leonid-shevtsov deleted the fix/snap-store-icon-schema branch September 7, 2026 12:59
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.

3 participants