-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for channels #1879
Add support for channels #1879
Conversation
This allows developers to post updates to specific channels like for beta updates. Updaters only get notifications from channels they're allowed to be on.
There may not be any applicable items due to sparkle:channels now.
I'm wondering if there's any way to only show beta release notes to those using my beta channel (I'm using external release notes)? If not, I wonder if it would make sense in the appcast to have a separate |
Since the appcast item will be only be available to those who subscribe to the beta channel can’t you just use a different beta release notes file for them? People on the default channel shouldn’t see them. |
Sorry, I was tricked by the fact my generated appcast.xml only had one |
Add support for channels, mainly intended for supporting beta or nightly updates in the same appcast feed.
You specify a channel on an appcast item, and the updater will only look for updates on that channel if the delegate says it's allowed to. No specified channel means the appcast item is on the default channel, which updaters always have access to.
This is only intended to support versions that branch off to different channels and that eventually converge back to the default channel. It's not for maintaining completely parallel trains; separate appcast feeds still fit that use case (or the use case of migrating to newer appcast features, like this one).
This implementation is simple and almost identical to the patch proposed in #51 for Transmission back in the day.
I needed to also fix the logic that assumed no updates in an appcast meant there was something wrong with the feed. This may happen for various reasons, but in this case we must assume the user is just up to date.
Probably my last enhancement / missing gap to 2.x, then I intend to look into tooling (sparkle-cli, generate_appcast) and docs..
Fixes #51
Checklist:
Type of change
Testing
I tested and verified my change by using one or multiple of these methods:
Tested adding beta channel to test app and made sure updates were picked (or not picked) appropriately based on the implemented delegate method.
Added unit tests.
Tested sparkle-cli support for channels on running test app.
macOS version tested: 11.5 Beta (20G5042c)