Skip to content

docs(v3): add missing docs for build tags, GTK4, and icon composer - #5071

Merged
leaanthony merged 7 commits into
v3-alphafrom
docs/v3-alpha-documentation-updates
Apr 15, 2026
Merged

leaanthony merged 7 commits into
v3-alphafrom
docs/v3-alpha-documentation-updates

Conversation

@leaanthony

@leaanthony leaanthony commented Mar 24, 2026 •

Copy link
Copy Markdown
Member

Summary

  • CLI reference: Document the -tags flag on wails3 build and the -iconcomposerinput/-macassetdir flags on wails3 generate icons
  • Building guide: Add "Custom Build Tags" section explaining -tags gtk4, -tags server, and combined tags
  • Linux packaging guide: Add comprehensive "GTK4 Support (Experimental)" section with dependency install commands, build instructions, and known behavioral differences from GTK3
  • Installation guide: Fix Linux WebKitGTK dependency versions (4.0 → 4.1), expand distro coverage, add minimum version note
  • wails3 doctor: Remove WebKitGTK 4.0 fallback entries that would pass the dependency check but still fail at build time

What was wrong with the Linux docs

Wails v3 hardcodes webkit2gtk-4.1 in its CGO pkg-config directives and purego runtime loader. The installation guide was pointing users at 4.0 packages, which:

  • Would fail to compile (pkg-config: webkit2gtk-4.1 not found)
  • On Ubuntu 24.04 LTS, 4.0 dev packages don't exist at all

Additionally, wails3 doctor had 4.0 fallback entries (e.g. webkit2gtk3-devel on Fedora, webkit2gtk3-soup2-devel on openSUSE, unversioned webkit2gtk on Arch) that would mark the dependency as satisfied even though the build would still fail. These have been removed.

Linux dependency changes

Distro Before After
Ubuntu/Debian libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev
Fedora webkit2gtk4.0-devel webkit2gtk4.1-devel
Arch webkit2gtk webkit2gtk-4.1
openSUSE (not documented) webkit2gtk4_1-devel
Gentoo (not documented) net-libs/webkit-gtk:4.1
NixOS (not documented) webkitgtk_4_1

A caution note now explains that Ubuntu 20.04, Debian 11, and RHEL 8/9 only ship WebKitGTK 4.0 and are not supported.

Test plan

  • Verify docs site builds without errors
  • Check internal links resolve correctly (GTK4 section anchors, cross-references to dialogs/window reference)
  • Verify -tags flag examples match actual CLI behavior
  • Verify wails3 doctor no longer suggests 4.0 packages on Fedora, openSUSE, Arch, and NixOS

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Support for custom Go build tags via a new -tags option.
    • Experimental GTK4 support for Linux (WebKitGTK 6.0) and related build guidance.
    • macOS Icon Composer workflow for generating Assets.car and icons.icns.
  • Documentation

    • Linux installation docs updated to WebKitGTK 4.1 with expanded distro notes and troubleshooting.
    • CLI docs updated for build flags and icon-generation options.
  • Bug Fixes

    • Corrected WebKitGTK package diagnostics across several Linux platforms.

…mposer

Document the -tags flag for wails3 build (CLI reference + building guide),
add GTK4 experimental support guide with dependencies and known differences,
and document the -iconcomposerinput/-macassetdir flags for icon generation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 24, 2026 13:17
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying wails with  Cloudflare Pages  Cloudflare Pages

Latest commit: 5f8971e
Status:🚫  Build failed.

View logs

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Missing Changelog Update

Hi @leaanthony, please update v3/UNRELEASED_CHANGELOG.md with a description of your changes.

This helps us keep track of changes for the next release.

@coderabbitai

coderabbitai Bot commented Mar 24, 2026 •

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: fd6874d7-9e49-43e6-8343-6e9313bfc870

📥 Commits

Reviewing files that changed from the base of the PR and between 5d851c3 and cef2b60.

📒 Files selected for processing (1)
  • v3/UNRELEASED_CHANGELOG.md

Walkthrough

Documentation and doctor packagemanager updates adding a -tags CLI flag for passing Go build tags (forwarded as EXTRA_TAGS), experimental GTK4/WebKitGTK 6.0 guidance and WebKitGTK 4.1 package recommendations, macOS Icon Composer flags/docs, and aligned doctor packagemanager mappings and changelog entries.

Changes

Cohort / File(s) Summary
Docs — CLI & build
docs/src/content/docs/guides/cli.mdx, docs/src/content/docs/guides/build/building.mdx
Add -tags flag to wails3 build synopsis and document forwarding of tags via EXTRA_TAGS; add Custom Build Tags examples and note server-mode/multiple tags usage; update icons generation flags and add Icon Composer (macOS) instructions and new flags (-iconcomposerinput, -macassetdir).
Docs — Linux & quick-start
docs/src/content/docs/guides/build/linux.mdx, docs/src/content/docs/quick-start/installation.mdx
Add experimental GTK4 / WebKitGTK 6.0 guidance, GTK4 behavioral notes, and instructions to build with -tags gtk4; raise WebKitGTK requirement to 4.1 and update distro package/install guidance (Ubuntu/Debian/Fedora/Arch/openSUSE/Gentoo/NixOS); add wails3 doctor guidance.
Doctor packagemanager
v3/internal/doctor/packagemanager/dnf.go, v3/internal/doctor/packagemanager/nixpkgs.go, v3/internal/doctor/packagemanager/pacman.go, v3/internal/doctor/packagemanager/zypper.go
Align package mappings to require WebKitGTK 4.1: remove older 4.0 fallbacks and correct package names/keys for various package managers (dnf, pacman, zypper, nixpkgs).
Changelog
v3/UNRELEASED_CHANGELOG.md
Add entries documenting doctor/packagemanager fixes and package-name adjustments for WebKitGTK 4.1 requirement.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

Possibly related PRs

Suggested labels

Documentation, Linux, cli, go, v3-alpha, size:M, lgtm

Poem

🐰 I hopped through docs at break of day,

Tags tucked in pockets, GTK4 at play,
Icons polished with a tiny artful hop,
Doctor maps fixed—no wrong turn on the stop,
I nibble a carrot, and then I bounce away.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the three main documentation additions: build tags, GTK4 support, and icon composer features.
Description check ✅ Passed The PR description provides a comprehensive summary, explains the motivation, links to the underlying issue, and includes a clear test plan, though it does not reference the specific issue number in 'Fixes #' format.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/v3-alpha-documentation-updates

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 and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR closes documentation gaps in the v3 docs around passing custom build tags, enabling experimental Linux GTK4 builds, and generating macOS Icon Composer-based icons, aligning the docs with recent v3-alpha feature work.

Changes:

  • Documented wails3 build -tags usage and how tags flow into Taskfiles.
  • Added “Custom Build Tags” guidance (GTK4/server examples) and a new “GTK4 Support (Experimental)” section in Linux packaging docs.
  • Expanded CLI docs for wails3 generate icons with Icon Composer / macOS asset catalog flags and usage.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
docs/src/content/docs/quick-start/installation.mdx Adds an installation note pointing Linux users to optional GTK4/WebKitGTK 6.0 setup and build tag usage.
docs/src/content/docs/guides/cli.mdx Documents -tags on wails3 build and adds Icon Composer / macOS asset generation flags and guidance for generate icons.
docs/src/content/docs/guides/build/linux.mdx Adds a comprehensive GTK4 (experimental) section: dependencies, build commands, and behavioral differences vs GTK3.
docs/src/content/docs/guides/build/building.mdx Adds a “Custom Build Tags” section with examples and links to related guides.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/src/content/docs/quick-start/installation.mdx
v3 requires webkit2gtk-4.1 (pkg-config name) but the quick-start install
commands and doctor output example still referenced the older 4.0 packages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Missing Changelog Update

Hi @leaanthony, please update v3/UNRELEASED_CHANGELOG.md with a description of your changes.

This helps us keep track of changes for the next release.

…overage

- Fix Arch: webkit2gtk → webkit2gtk-4.1 (correct package for 4.1 API)
- Add openSUSE tab: webkit2gtk4_1-devel
- Add Gentoo tab: net-libs/webkit-gtk:4.1
- Add NixOS tab: pkgs.webkitgtk_4_1
- Add caution note: WebKitGTK 4.1 is required; Ubuntu 20.04, Debian 11,
  and RHEL 8/9 only ship 4.0 and are not supported

Package names sourced from wails3 doctor packagemanager implementations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Missing Changelog Update

Hi @leaanthony, please update v3/UNRELEASED_CHANGELOG.md with a description of your changes.

This helps us keep track of changes for the next release.

…hecks

Wails v3 requires webkit2gtk-4.1 at compile time (CGO pkg-config directive).
The fallback entries would pass doctor's availability check but still fail
at build time, giving users a misleading "all clear".

- dnf: remove webkit2gtk3-devel (4.0 API)
- zypper: remove webkit2gtk3-soup2-devel (libsoup2 = 4.0 API)
- pacman: remove webkit2gtk (unversioned, 4.0 API on modern Arch)
- nixpkgs: webkitgtk → webkitgtk_4_1 (correct package name for 4.1 API)

Also update NixOS entry in installation docs to match.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Missing Changelog Update

Hi @leaanthony, please update v3/UNRELEASED_CHANGELOG.md with a description of your changes.

This helps us keep track of changes for the next release.

Wails Documentation Agent and others added 3 commits April 15, 2026 10:20
…devel

webkit2gtk4_1-devel does not exist on openSUSE. The correct package is
webkit2gtk3-devel, which ships both the 4.0 (soup2) and 4.1 (soup3)
API variants from the same source package.

Also update the openSUSE tab in the installation docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@leaanthony
leaanthony merged commit d887819 into v3-alpha Apr 15, 2026
10 of 13 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Missing Changelog Update

Hi @leaanthony, please update v3/UNRELEASED_CHANGELOG.md with a description of your changes.

This helps us keep track of changes for the next release.

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.

2 participants