Skip to content

Add GitHub release update check to Python GNOME and KDE KCM UIs#160

Open
Copilot wants to merge 3 commits intomainfrom
copilot/add-version-check-on-load
Open

Add GitHub release update check to Python GNOME and KDE KCM UIs#160
Copilot wants to merge 3 commits intomainfrom
copilot/add-version-check-on-load

Conversation

Copy link
Contributor

Copilot AI commented Feb 24, 2026

On load, both the GNOME Python UI and the KDE KCM UI check the breezy-desktop GitHub releases and notify the user if a newer version is available.

Python GNOME UI

  • New updatechecker.py: Fetches https://api.github.com/repos/wheaney/breezy-desktop/releases/latest in a background daemon thread using stdlib urllib (no new dependencies). Compares version tuples, strips v prefix from GitHub tags, and invokes a callback with the latest version string or None.
  • window.ui: New GtkInfoBar (update_available_banner, message-type="info", initially hidden) displaying a plain update message with no button or link.
  • window.py: Accepts version parameter; calls check_for_update() on init; callback uses GLib.idle_add to reveal the banner safely on the main thread.
  • main.py: Passes self.version into BreezydesktopWindow.
  • meson.build: Registers updatechecker.py as an installed source.

KDE KCM

  • breezydesktopeffectkcm.ui: New labelUpdateAvailable QLabel (initially hidden, blue bold) inserted between labelGlobalWarning and the tab widget.
  • breezydesktopeffectkcm.h/.cpp: New checkForUpdates() method using QNetworkAccessManager (async). On reply, parses version tuples with early-out on invalid components, logs network errors via qCDebug, and sets the label to a plain text message if the remote version is newer.
  • CMakeLists.txt: Adds Qt6::Network to both find_package and target_link_libraries.

Both UIs display a plain message — "A newer version (X.Y.Z) is available. Please update using the same method you used to install." — with no link to the releases page, since update methods vary by installation type. Both implementations guard against network failures gracefully — errors are logged at debug level only and the UI remains unaffected.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: wheaney <42350981+wheaney@users.noreply.github.com>
Copilot AI changed the title [WIP] Add version check for breezy-desktop releases on load Add GitHub release update check to Python GNOME and KDE KCM UIs Feb 24, 2026
Copilot AI requested a review from wheaney February 24, 2026 22:02
@wheaney
Copy link
Owner

wheaney commented Feb 24, 2026

@copilot remove the codeql file (don't .gitignore it, just remove it from the commit) and also have the UIs just display a message, without a link to the releases page (since there are various ways to update depending on how they installed, but none of them require going to the releases page).

Co-authored-by: wheaney <42350981+wheaney@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 24, 2026

@copilot remove the codeql file (don't .gitignore it, just remove it from the commit) and also have the UIs just display a message, without a link to the releases page (since there a...

Done in commit 1a729ac. The _codeql_detected_source_root symlink has been removed, and both UIs now show a plain message ("A newer version (X.Y.Z) is available. Please update using the same method you used to install.") with no link to the releases page.

@wheaney wheaney marked this pull request as ready for review February 24, 2026 22:16
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