MSzturc / ThinkpadAssistant

An Assistant Application that allows you to use all your Function Keys on a T-Series Thinkpad Laptop
122 stars 13 forks source link

[Feature request] Automatic updates #26

Closed igorkulman closed 4 years ago

igorkulman commented 4 years ago

It would be great to have some kind of automatic updates for the app.

The easiest way would to to add the app to brew cask, for the people (like me) that preffer installing everything from brew and then just updating the brew cask definition with every release. It is quite a simple process, running 1 script and entering the new version number, can be done by anyone not only you.

The harder way would be adding Sparkle.

tylernguyen commented 4 years ago

@igorkulman This would be great. However, I think the brew cask would be rejected under the clause that the app is too obscure:

The Cask is for an app that is too obscure. Examples:

    A self-submitted app from a GitHub repository that is not notable enough (under 30 forks, 30 watchers, and 75 stars).

See https://github.com/Homebrew/homebrew-cask/blob/master/doc/faq/rejected_casks.md

igorkulman commented 4 years ago

Maybe a custom tap? https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap

tylernguyen commented 4 years ago

@igorkulman That seems like it would take the same amount of effort as Sparkle and isn't really user friendly to everyone.

I'm working on adding Sparkle support to ThinkpadAssistant since I think it's just a cleaner option overall. I will create a pull request when it's ready and tested.

tylernguyen commented 4 years ago

@MSzturc I am trying to implement Sparkle auto-updater and I need your help. Per support doc, we need to create an appcast.xml to keep track of release for Sparkle to check against. Now, I do not have permission to the repo so I cannot do this myself, but there are two options for you to choose from:

  1. We can host appcast.xml using GitHub Pages per this implementation: https://gist.github.com/huangyq23/668e6d6fcccf714e802a

So each time there's a new update, you would run the included bash scripts to bump the version and generate a new appcast.xml which can then be pushed to the GitHub Pages branch of the project.

  1. This is the easier option if it works, there's a repo App called Sparkhub Appcast which automatically generates and update appcast.xml for you.

Whichever you choose, could you please setup an appcast.xml file for which I can test the auto-updater against?

EDIT: I just forked the project and tested Sparklehub and it seems to working well. Pull request coming soon!

MSzturc commented 4 years ago

@tylernguyen Great to hear. Do I still need to provide an appcast.xml?

tylernguyen commented 4 years ago

@MSzturc Yes. Use the SparkHub Appcast app from GitHub Marketplace. It's very easy.

MSzturc commented 4 years ago

@tylernguyen

AppCast.xml https://updates.sparklehub.io/v1/sparkle/appcasts/f2e83cc9-d9c1-451e-b1a3-5b551e225184/macos.xml

I've tested the build workflow and it seams to work :-)

EETagent commented 4 years ago

From Sparkle documentation:

No sandboxing. Sparkle 1.x can't update sandboxed apps. However, Sparkle 2.x can.

Sparkle 1 doesn't support sandboxed apps. Sparkle 2 is not documented, is currently only beta, and it's implementation would not be worth the effort in my opinion. ThinkpadAssistant gets updated rarely and most updates so far required ACPI changes. Those other updates did not bring critical functionality so I don't see reason to automatize them. Simple alert with link to latest GitHub release would be enough.