Skip to content

Refactor/history cleanup#111

Merged
NullPointerDepressiveDisorder merged 4 commits intomainfrom
refactor/history-cleanup
Feb 16, 2026
Merged

Refactor/history cleanup#111
NullPointerDepressiveDisorder merged 4 commits intomainfrom
refactor/history-cleanup

Conversation

@NullPointerDepressiveDisorder
Copy link
Owner

This pull request updates the release and versioning workflow to create release commits on a dedicated releases branch instead of directly updating main, and adjusts the appcast update process and Sparkle feed URL to use a new appcast branch. These changes help separate stable release artifacts from development, improving release management and update delivery.

Release workflow improvements:

  • The release automation in .github/workflows/_get-version.yml now creates release commits on a releases branch, leaving main untouched, and force-pushes both the branch and version tag to point to the new release commit. This also includes an inline version bump and validation step, replacing the previous script-based approach.

Appcast and update feed changes:

  • The Sparkle update feed URL in MiddleDrag/Info.plist is updated to point to the appcast branch instead of main, ensuring that update metadata is served from a stable, release-only branch.
  • The update-appcast.yml workflow now checks out the appcast branch when updating the appcast file, aligning with the new feed URL and branch strategy.

Copilot AI review requested due to automatic review settings February 16, 2026 03:19
@sentry
Copy link
Contributor

sentry bot commented Feb 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the project’s release/update infrastructure to keep main free of release-automation commits by generating version-bump “release commits” on a dedicated releases branch, and to serve Sparkle update metadata from a dedicated appcast branch.

Changes:

  • Update the reusable version workflow to create a detached release commit, force-move the releases branch to it, and force-update the version tag to the same commit.
  • Point Sparkle’s SUFeedURL at raw.githubusercontent.com/.../appcast/appcast.xml (new appcast branch).
  • Update the appcast updater workflow to check out the appcast branch before modifying appcast.xml.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
appcast.xml Removes appcast from the default branch to support serving update metadata from appcast.
MiddleDrag/Info.plist Updates Sparkle feed URL to the new appcast branch path.
.github/workflows/update-appcast.yml Checks out appcast branch so appcast updates land on that branch.
.github/workflows/_get-version.yml Generates version-bump release commits on releases and force-updates version tags.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 87 to 91
# Save the main branch commit SHA as the base
BASE_SHA=$(git rev-parse HEAD)

git fetch origin "$BRANCH_NAME"
git checkout -b "version-bump-$VERSION"
# Create a detached release commit based on current main content
git checkout --detach HEAD
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

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

BASE_SHA is assigned but never used, and the accompanying comments suggest this is based on main even though the workflow is operating on the currently checked-out ref. Either remove BASE_SHA/update the comments, or explicitly check out/fetch main if that’s the intended base for the release commit.

Copilot uses AI. Check for mistakes.
Comment on lines +108 to +112
# Point the releases branch at this commit
git branch -f releases HEAD
git push origin releases --force

git push origin "$BRANCH_NAME" --force-with-lease
# Re-create the tag to point to the release commit
Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

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

This workflow force-pushes the releases branch (and later the version tag) without any concurrency guard. If two release runs overlap, they can race and move releases/vX.Y.Z unexpectedly. Consider adding a concurrency group to the release workflow and/or using --force-with-lease to reduce the chance of clobbering another run’s updates.

Copilot uses AI. Check for mistakes.
Comment on lines 28 to 33
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
ref: appcast

Copy link

Copilot AI Feb 16, 2026

Choose a reason for hiding this comment

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

Checking out ref: appcast will fail if the appcast branch doesn’t already exist, and after this PR the app’s SUFeedURL depends on that branch hosting appcast.xml. To make the workflow/self-update path robust, consider creating the branch automatically when missing (e.g., create an orphan branch and initial appcast.xml), or document/enforce the branch prerequisite as part of the release process.

Copilot uses AI. Check for mistakes.
@NullPointerDepressiveDisorder NullPointerDepressiveDisorder merged commit 79ce83c into main Feb 16, 2026
6 checks passed
@NullPointerDepressiveDisorder NullPointerDepressiveDisorder deleted the refactor/history-cleanup branch February 16, 2026 05:26
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.

1 participant

Comments