-
Notifications
You must be signed in to change notification settings - Fork 270
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
Make updatechecker plugin for MacOS #1314
Comments
The update checker for Linux works incorrectly, it checks the Geany repository for a new version, not the repositories for the current distro. Most distros don't update versions of software like Geany on LTS versions for example. So it just feeds frustration for users of such systems as they see Geany has released a new version but its not in their repository. Its really only useful for Windows, but maybe it could be made useful for Macos if it looked at the right repository because it can get new bugfix releases separate from Geany. |
I'd say it depends on the user. There is maybe a minority of users who compile Geany themselves from release tarballs and for those the plugin might be useful.
Isn't the plugin for Macos in the same way useful as for Windows as it checks geany.org for the latest version and this is where the Macos version is distributed. |
I thought I had seen @techee make bugfix builds on the geany-osx repository, I guess if they get uploaded to the Geany website that would be ok, but then whats their version, if its the same then the update checker won't notice? |
Just to note what the expectation of many users may be, both Chrome browser and Vscode IDE update checkers indicate a new version in app, and when triggered to update can indicate if its available by an "alternate channel" which means the distro normal update mechanism rather than direct from Google/MS source repo. Don't know how they do that, but maybe its in the open source parts of those apps? Edit: both apps have added an additional package repository to |
I managed to get the update checker plugin running (didn't really do anything, it started working with the latest library versions from gtk-osx). So I might add it to the next macOS release.
The URL https://geany.org/service/version/ which the plugin uses only returns the latest Geany release version and not the actual build. I was forced to make a new macOS release when e.g. a new macOS release broke something in GTK and I needed to re-package the release with the latest GTK libraries containing the fix. Geany itself was the same though so the update checker wouldn't see such a change. What I could imagine we could do is to send the current version and the build date to the server (which can be seen on the About page of Geany, such as |
Yeah, then it can reply:
so then Mac and Windows fixes can be uploaded separately. (the first is latest release tagged in Git/tarballed, it can't be "Linux" because we don't supply that download) And as shown Mac/Win can be behind, so its not necessary to get everybody and their pet dog available at the same time for a release. |
I was actually thinking the plugin would send e.g.
and the server would only reply |
I was avoiding having any smarts in the server, just have it return a file, which could even be served from github. If we don't want a new release to be used we just don't put the number in the file. And that way you can modify the Mac version without any server support by PRing the file. But I guess it depends on the infrastructure manager as to what smarts can be in the server and what they see as the best way for ongoing support. |
My thinking is that if we make a bug in the plugin's update logic, we'll have to make a new release to fix it while we can update the server's code any time without any release and it also offers more flexibility in case we need to change something in the future. |
Well since the plugin is really only any use for Mac and Windows since we don't make any *x releases I guess its between you and @eht16 who conveniently is the infrastructure manager too :-) |
Maybe make it a TOML file (see geany/geany#1268) 😈 |
This is a good point. Still, I think it would be best to let the plugin decide whether to update or not. Having the logic in the plugin would not require to send any information to the server and so be more privacy friendly. |
@eht16 OK (especially if you plan to have the Geany web site static). For macOS and Windows we'd have to decide how to detect the updated installer - let's say I make a new macOS release now with updated GTK fixing some bug - the version will still be 2.0 and the only other thing I see we could use for update detection is the build date and compare it with the date from https://download.geany.org which the server could send. But it seems a little fragile and we'd have to make sure we set the installer date to the same date as the build date of Geany inside the installer. |
@techee if you release a bugfix maybe you need to version it 2.0-1 like Ubuntu does with its packages. Not sure it the plugin needs updating to handle that. |
Yes, but how to get this version "inside" the package so the updatechecker plugin knows it's 2.0-1 and can compare it with what the server returns as the latest version? From the code point of view the Geany version will still be 2.0. |
@eht16 OK (especially if you plan to have the Geany web site static).
I guess we will keep a small Django site anyway for the Pastebin service and even if not this won't be the problem.
@techee if you release a bugfix maybe you need to version it 2.0-1 like Ubuntu does with its packages. Not sure it the plugin needs updating to handle that.
Uhh, don't tell this the Debian/Ubuntu guys :). They use the -1 suffix for package versions of the same upstream version.
Yes, but how to get this version "inside" the package so the updatechecker plugin knows it's 2.0-1 and can compare it with what the server returns as the latest version? From the code point of view the Geany version will still be 2.0.
We could bake something like a "build number" or so into Geany which starts with 1 for every version and for rebuilds (like in your example) could then have the build number increased. The plugin will check the version number and the build number together.
The server sends then the version and the build number to the plugin. We don't need to extract those information from the installer file, it could be managed seperately with a simple web interface on the server or just a file. Less convenient but also less fragile :D.
Thinking this further, for such cases when we update the installer for an existing version, we probably should also make this clear to the user, e.g. also show the build number in the plugin notification dialog.
|
Sadly, Geany has no builtin way to check for updates. It would be great to have an updatechecker plugin for MacOS, similar to the one for Linux and Windows.
The text was updated successfully, but these errors were encountered: