Skip to content

Add manual update check using GitHub Releases #51

Description

@DeanJ87

Summary

Add a manual update check against GitHub Releases.

The app should be able to tell the user whether a newer version is available without implementing automatic download or installation.

Requirements

  • Add a manual update check, not a background auto-updater.
  • Query the public GitHub Releases API for this repository.
  • Compare the current app version with the latest available release.
  • Support stable and beta channels:
    • stable ignores GitHub prereleases.
    • beta includes GitHub prereleases.
  • Default channel should be stable.
  • Expose update status through the web UI and/or a small API endpoint.
  • Optionally expose a CLI command such as --check-update.
  • Do not download or install updates.
  • Do not send SQMeter readings, config values, generated UUIDs, analytics, or usage data.
  • Privacy docs must explain that update checks contact GitHub and may expose normal request metadata to GitHub.

Suggested behaviour

For stable channel:

  • Use the latest non-prerelease GitHub release.
  • Ignore draft releases.
  • Ignore prereleases.

For beta channel:

  • Include prereleases.
  • Ignore draft releases.
  • Pick the newest valid semantic version.

Example JSON response:

{
  "current_version": "v0.2.0",
  "latest_version": "v0.2.1",
  "channel": "stable",
  "update_available": true,
  "release_url": "https://github.com/DeanJ87/SQMeter-ASCOM-Alpaca/releases/tag/v0.2.1"
}

Privacy/documentation

Update PRIVACY.md and docs to explain:

  • update checks contact GitHub Releases.
  • no telemetry is sent.
  • no SQMeter readings are sent.
  • no config values are sent.
  • no device UUID is sent.
  • GitHub may receive normal request metadata such as IP address and user agent.

Non-goals

  • Do not implement automatic update installation.
  • Do not download release assets.
  • Do not add background scheduled update checks.
  • Do not require a GitHub token.
  • Do not fail app startup if GitHub is unavailable.

Validation

  • go test ./...
  • Unit tests for version comparison:
    • stable newer than current.
    • current equal latest.
    • prerelease ignored on stable.
    • prerelease included on beta.
    • invalid tags ignored.
  • Unit tests for GitHub API parsing using mocked HTTP responses.
  • Manual dashboard/CLI check if implemented.

Suggested branch

feat/manual-update-check

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestupdatesUpdate checking and release workflow

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions