Skip to content

chore: replace desktop publishing with changelog releases - #609

Merged
lodystage[bot] merged 2 commits into
mainfrom
chore/tag-changelog-release
Sep 11, 2026
Merged

lodystage[bot] merged 2 commits into
mainfrom
chore/tag-changelog-release

Conversation

@lodystage

@lodystage lodystage Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Problem / pressure

Tag pushes currently build and publish desktop installers and updater feeds. Source releases should instead synchronize app versions and publish a generated changelog without binary assets.

Summary

Replace the Electron packaging workflow with a stable-tag workflow that opens a draft PR updating every apps/*/package.json version on the default branch, then creates a GitHub Release with generated notes and no uploaded assets. Existing releases are preserved on reruns. Update the release documentation, draft Spec, and owning Agent Note.

Visual explanation

flowchart LR
  A[Push vX.Y.Z] --> B[Validate stable version]
  B --> C[Sync apps on default branch]
  C --> D[Create draft version PR if changed]
  D --> E[Create changelog-only Release]
Loading

Before / after

Before After
Three-platform packaging and signing No packaging or signing
Installers and auto-update assets uploaded Generated release notes only
Packaged version injected from tag App manifest synchronization proposed in a draft PR

The tag stays on its original commit; merging the version PR updates the default branch, not the tagged snapshot. Actions must be allowed to create PRs, bot PRs may need maintainer action to start CI, and superseded version PRs should be closed before merging older versions.

Test plan

  • Passed YAML parsing and execution of workflow validation/synchronization steps against temporary synthetic apps: accepted/rejected tags, all app versions, preserved dependencies, repeated execution.
  • Passed targeted Prettier formatting and git diff --check.
  • Attempted pnpm check and pnpm format; blocked by absent workspace dependencies (tsgo / prettier) and uninitialized submodules in this nested checkout.
  • pnpm run docs check reports pre-existing links into missing submodules; no new documentation errors.
  • Live tag publication was not exercised.

Context handoff

Review the separation between immutable tags and default-branch version PRs, permissions needed for bot-created PRs, and preservation of existing releases on reruns. This change intentionally stops publishing new installer/update assets and does not delete historical releases.

@lodystage
lodystage Bot marked this pull request as ready for review September 11, 2026 09:40
@lodystage
lodystage Bot merged commit 9fb2a68 into main Sep 11, 2026
6 of 7 checks passed
@lodystage
lodystage Bot deleted the chore/tag-changelog-release branch September 11, 2026 09:40

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6e9edfcc0f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +77 to +78
gh release create "$RELEASE_TAG" --verify-tag \
--title "Lody OSS $RELEASE_VERSION" --generate-notes

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep changelog releases out of the Latest slot

When a newer stable tag is published after an installer-bearing release, this command creates a normal release that GitHub can automatically mark as Latest; the gh release create --help entry for --latest documents the default as "automatic based on date and version." The packaged macOS client hard-codes /releases/latest/download/appcast.xml in apps/electron/src/main/services/app-updater-sparkle-policy.ts:3-4, but this release uploads no appcast, so installed Macs receive a 404 and can no longer reach even the last preserved binary update. Publish changelog-only releases with --latest=false, or move the updater feed before creating them.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant