Skip to content

Conversation

@mattgodbolt
Copy link
Owner

Summary

Implements release-please for lightweight, automated release management of Electron desktop builds. Web deployments continue unchanged.

How It Works

  1. Make commits as normal - optionally use conventional commit messages (feat:, fix:, etc.)
  2. release-please bot watches main - automatically creates/updates a "Release PR"
  3. Review the Release PR - shows version bump, changelog, and what's included
  4. Merge when ready - bot creates a GitHub release with version tag
  5. CI builds and uploads - .deb, .rpm, .snap packages attached to the release

What This Adds

Automated Release Management

  • Release PRs: Bot creates/updates PR with version bump and changelog
  • CHANGELOG.md: Automatically maintained from commit history
  • Version bumping: Follows semver based on commit types
  • GitHub releases: Created automatically when release PR is merged
  • Electron artifacts: Built and uploaded to each GitHub release

Version Display

  • Shows current version in the About dialog footer
  • Reads from package.json automatically
  • Updates with each release

No Impact on Existing Workflows

  • ✅ Web deployments to S3 continue on every main commit
  • ✅ Existing CI continues to verify Electron builds work
  • ✅ Tests run as before
  • ✅ You control when releases happen (by merging the release PR)

Files Changed

  • .github/workflows/release-please.yml - Release automation workflow
  • .release-please-manifest.json - Current version tracking
  • release-please-config.json - Release-please configuration
  • index.html - Added version display element in About modal
  • src/main.js - Import and display version from package.json
  • src/app/electron.js - Updated comment to describe IPC functionality

Example Workflow

# 1. Make commits (optionally use conventional commits)
git commit -m "feat: add new disc format support"
git commit -m "fix: resolve loading issue with ZIP files"

# 2. Push to main - release-please bot creates/updates a release PR

# 3. When ready, merge the release PR
#    - Bot creates GitHub release with new version tag
#    - CI builds Electron packages
#    - Packages uploaded to the release
#    - Web deployment happens as normal

Testing

  • ✅ Version displays correctly in About dialog
  • ✅ Release-please workflow is valid
  • ✅ Upload workflow will run on release creation
  • ✅ No changes to existing test/build/deploy workflows

🤖 Generated with Claude Code

mattgodbolt and others added 2 commits November 20, 2025 12:49
Implements release-please for lightweight, automated release management:
- Bot creates/updates release PRs based on conventional commits
- Maintains CHANGELOG.md automatically
- Bumps version in package.json on merge
- Uploads Electron packages (.deb, .rpm, .snap) to GitHub releases
- Existing CI continues to verify electron builds work
- Web deployments to S3 continue unchanged

Display version in About dialog:
- Import version from package.json
- Show in About modal footer

Update electron.js comment to better describe IPC functionality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updates from Electron 33.0.0 (EOL) to 39.0.0 (current stable).

This should resolve the 503 errors when downloading electron-builder
binaries. The old version (33.x) was requesting outdated binary versions
(appimage-12.0.1, fpm-1.9.3) that are no longer reliably available.
Electron 39 should use newer binary versions that are available.

Electron 33.x and 35.x are both end-of-life. Only 37.x, 38.x, and 39.x
are currently supported.

Local testing confirms:
- Electron 39.2.3 builds successfully without 503 errors
- Electron app launches and runs correctly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@mattgodbolt mattgodbolt merged commit 920acb1 into main Nov 20, 2025
4 checks passed
@mattgodbolt mattgodbolt deleted the claude/release-please branch November 20, 2025 20:17
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