Skip to content

Conversation

@isasmendiagus
Copy link
Collaborator

@isasmendiagus isasmendiagus commented Nov 5, 2025

See individual commits

Summary by CodeRabbit

  • New Features

    • Added support for WebKit 4.1 (separate binaries for Ubuntu 24.04+/Debian 13+) and CI builds for both WebKit 4.0/4.1; new build target available.
  • Bug Fixes

    • Fixed Linux startup crash by restricting the Edit menu to macOS.
  • Documentation

    • Updated README, INSTALLATION, and CHANGELOG with binary selection, installation steps, and build instructions for differing Linux versions.
  • Chore

    • Release workflow now produces and publishes separate artifacts and checksums for each Linux variant.

EditMenu is a macOS-only feature that enables standard shortcuts (Cmd+C, Cmd+V, Cmd+Z). Appending it on Linux causes the app to crash.
Added platform check to conditionally append EditMenu only on darwin, as recommended in the Wails documentation.

See: https://wails.io/docs/reference/menus/
Added build_webkit41 target to Makefile for Ubuntu 24.04+ and Debian 13+ support, which require the -tags webkit2_41 flag due to webkit2gtk-4.1.

See: https://wails.io/docs/gettingstarted/building
@coderabbitai
Copy link

coderabbitai bot commented Nov 5, 2025

Walkthrough

Adds WebKit 4.1 support and a Linux CI matrix (webkit40/webkit41), updates release artifact naming and packaging for both variants, restricts the Edit menu to macOS, and updates docs/installation instructions to offer OS-version–specific binaries and build targets.

Changes

Cohort / File(s) Change Summary
CI/CD Pipeline
.github/workflows/release.yml
Adds a Linux build matrix (webkit40/webkit41), uses matrix variables for runner, packages, build target, output suffix, artifact names/paths, and aggregates both artifacts into the release (including SHA256SUMS).
Build Configuration
Makefile
Adjusts help regex to accept digits in target names and adds build_webkit41 target to build the WebKit 4.1 variant.
Documentation
CHANGELOG.md, INSTALLATION.md, README.md
Adds [0.9.3] entry; replaces single Linux install flow with binary-version-aware instructions (separate WebKit 4.0 vs 4.1 binaries), updates development prerequisites and build guidance.
Application Code
app.go
Replaces unconditional AppMenu.Append(menu.EditMenu()) with a platform check to append the Edit menu only on Darwin (macOS).

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant Trigger as release.yml
    participant Matrix as linux matrix
    participant Job40 as webkit40 job
    participant Job41 as webkit41 job
    participant Artifacts as artifact store
    participant Release as create_release job

    Trigger->>Matrix: start with variants (webkit40, webkit41)
    par parallel builds
        Matrix->>Job40: run on ubuntu-22.04\nmake build (build_target), output suffix linux-amd64
        Job40->>Job40: install libwebkit2gtk-4.0-dev\nbuild, zip as *-linux-amd64.zip
        Job40->>Artifacts: upload artifact_l_webkit40
    and
        Matrix->>Job41: run on ubuntu-24.04\nmake build_webkit41, output suffix linux-amd64-webkit41
        Job41->>Job41: install libwebkit2gtk-4.1-dev\nbuild, zip as *-linux-amd64-webkit41.zip
        Job41->>Artifacts: upload artifact_l_webkit41
    end
    Release->>Artifacts: download artifact_l_webkit40 and artifact_l_webkit41
    Release->>Release: aggregate zips, generate SHA256SUMS
    Release->>GitHub: create release with all zips + SHA256SUMS
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Review .github/workflows/release.yml for matrix variable consistency, artifact naming/path correctness, and release aggregation steps.
  • Verify Makefile build_webkit41 target and help regex behavior.
  • Confirm app.go platform check is correct and does not alter macOS behavior.
  • Quick pass through README.md, INSTALLATION.md, and CHANGELOG.md to ensure binary names, links, and commands are consistent.

Possibly related PRs

Suggested labels

documentation, enhancement

Poem

🐰 I hopped through CI and found two trails,
One for twenty-two, one for twenty-four sails.
Matrix hums, zips crowd the nest,
Darwin keeps its menu — only the best.
Build hops steady, artifacts blessed.

Pre-merge checks and finishing touches

✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix/sp 3645/install errors on linux' directly addresses the main objective of the PR, which is fixing installation errors on Linux. The changes span multiple files (Makefile, app.go, documentation, and CI workflow) to support WebKit 4.0/4.1 variants on Linux and fix a startup crash.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/SP-3645/install-errors-on-Linux

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.

@github-actions
Copy link

github-actions bot commented Nov 5, 2025

SCANOSS SCAN Completed 🚀

  • Detected components: 3
  • Undeclared components: 0
  • Declared components: 3
  • Detected files: 187
  • Detected files undeclared: 0
  • Detected files declared: 187
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 172136b and e282804.

📒 Files selected for processing (6)
  • .github/workflows/release.yml (4 hunks)
  • CHANGELOG.md (2 hunks)
  • INSTALLATION.md (2 hunks)
  • Makefile (2 hunks)
  • README.md (3 hunks)
  • app.go (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
app.go (1)
frontend/wailsjs/runtime/runtime.js (1)
  • Environment (180-182)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (13)
app.go (1)

169-171: LGTM! Platform-specific menu handling looks correct.

The EditMenu is now correctly restricted to macOS, which should resolve the Linux startup crash mentioned in the PR objectives.

CHANGELOG.md (1)

10-19: LGTM! Changelog entry is well-documented.

The changelog accurately captures the changes in this PR, including the new build target, Linux CI matrix, and the EditMenu fix.

Makefile (2)

21-21: LGTM! Help regex correctly updated to support numeric targets.

The addition of 0-9 to the help pattern ensures the new build_webkit41 target will appear in the help output.


76-78: LGTM! WebKit 4.1 build target implemented correctly.

The new target properly uses the webkit2_41 tags and follows the same clean pattern as the other build targets.

INSTALLATION.md (1)

220-226: LGTM! Binary selection guidance is clear.

The section clearly distinguishes which binary to download based on the Ubuntu/Debian version and WebKit support.

README.md (3)

82-95: LGTM! Linux installation instructions are clear and accurate.

The version-specific binary selection and installation commands correctly guide users to the appropriate WebKit variant for their system.


153-178: LGTM! Development dependencies correctly specify WebKit versions.

The system dependencies section properly distinguishes between WebKit 4.0 (for Ubuntu 22.04 and older) and WebKit 4.1 (for Ubuntu 24.04+/Debian 13+), which aligns with the CI matrix and build targets.


218-223: LGTM! Build instructions for different Linux versions are accurate.

The section correctly maps Ubuntu versions to their respective make targets and WebKit versions.

.github/workflows/release.yml (5)

188-202: LGTM! Linux build matrix is well-structured.

The matrix correctly defines two variants for WebKit 4.0 and 4.1 support with appropriate runner versions, build targets, output suffixes, and webkit packages. This aligns perfectly with the Makefile changes and documentation.


231-231: LGTM! Dependency installation properly uses matrix variable.

Using matrix.webkit_package ensures each build variant installs the correct WebKit library version.


242-243: LGTM! Build step correctly uses matrix variables.

The build command uses matrix.build_target to invoke the appropriate make target, and the binary is correctly renamed with matrix.output_suffix to distinguish the variants.


259-260: LGTM! Artifact handling correctly incorporates matrix variant.

The artifact naming scheme includes matrix.variant and uses matrix.output_suffix in the path, ensuring proper identification of webkit40 vs webkit41 builds.


374-382: LGTM! Release artifact downloads handle both WebKit variants.

The separate download steps for artifact_l_webkit40 and artifact_l_webkit41 ensure both Linux binaries are included in the release.

@github-actions
Copy link

github-actions bot commented Nov 5, 2025

SCANOSS SCAN Completed 🚀

  • Detected components: 3
  • Undeclared components: 0
  • Declared components: 3
  • Detected files: 187
  • Detected files undeclared: 0
  • Detected files declared: 187
  • Licenses detected: 2
  • Licenses detected with copyleft: 1
  • Policies: ✅ 1 pass (1 total)

View more details on SCANOSS Action Summary

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
INSTALLATION.md (1)

377-390: Uninstall section should be version-aware for consistency.

The uninstall commands for Ubuntu/Debian (line 380) only reference libwebkit2gtk-4.0-37, which is incorrect for Ubuntu 24.04+ / Debian 13+ users who would have libwebkit2gtk-4.1-0 installed instead. While the section correctly notes that dependencies may be used by other applications, consistency with the version-specific approach used throughout the installation and troubleshooting sections would improve clarity.

Consider splitting the uninstall command by version to match the pattern used elsewhere in the documentation:

 **Note:** System dependencies (GTK3, WebKit2GTK) are not removed as they may be used by other applications. If you want to remove them:
 ```bash
 # Ubuntu/Debian
-sudo apt-get remove libgtk-3-0 libwebkit2gtk-4.0-37
+# Ubuntu 22.04 and older / Debian 12 and older
+sudo apt-get remove libgtk-3-0 libwebkit2gtk-4.0-37
+
+# Ubuntu 24.04+ / Debian 13+
+sudo apt-get remove libgtk-3-0 libwebkit2gtk-4.1-0
 
 # Fedora/RHEL
 sudo dnf remove gtk3 webkit2gtk4.0
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e282804 and 4b75e97.

📒 Files selected for processing (1)
  • INSTALLATION.md (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build
🔇 Additional comments (4)
INSTALLATION.md (4)

220-226: Binary selection documentation is clear and well-structured.

The new "Choosing the Right Binary" subsection effectively communicates the WebKit version differences and provides an unambiguous decision point for users.


233-243: Installation commands are version-specific and correct.

The split between webkit40 and webkit41 binaries, along with appropriate move commands, aligns with the binary distribution strategy.


247-255: Critical issue resolved: WebKit library versions are now correct.

The previous incorrect specification of libwebkit2gtk-4.1-0 for Ubuntu 22.04 and older has been fixed. The documentation now correctly specifies:

  • Ubuntu 22.04 and older: libwebkit2gtk-4.0-37
  • Ubuntu 24.04+ / Debian 13+: libwebkit2gtk-4.1-0

This aligns with the version-specific binary approach and matches the troubleshooting section.


444-451: Troubleshooting section is version-aware and consistent.

The separation of WebKit dependency installation by OS version in the troubleshooting section mirrors the installation guidance and ensures users find correct information regardless of which section they consult.

Copy link
Collaborator

@matiasdaloia matiasdaloia left a comment

Choose a reason for hiding this comment

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

LGTM

@isasmendiagus isasmendiagus merged commit 36dc5f7 into main Nov 5, 2025
6 checks passed
@isasmendiagus isasmendiagus deleted the fix/SP-3645/install-errors-on-Linux branch November 5, 2025 18:51
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