-
Notifications
You must be signed in to change notification settings - Fork 189
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
pull updates from gh #408
base: master
Are you sure you want to change the base?
pull updates from gh #408
Conversation
The workflows thing sounds like a good idea, when I set up that Jenkins free cloud CI wasn't really a thing yet. I was looking into Travis-Windows at some point but it was still very experimental at that point. Pre-releases for everything might be too much, I'd rather provide downloads only for real ones. People who want to try pre-releases are usually able to build themselves as well ;) What I don't like about switching the update check is that
|
pre-releases not for everything, just the ones that are significant enough, so no spam, they don't show up in that api call (but that can be added) and
|
update.url = releaseObject.value(QStringLiteral("html_url")).toString(); | ||
update.text = releaseObject.value(QStringLiteral("body")).toString(); | ||
update.title = releaseObject.value(QStringLiteral("name")).toString(); | ||
update.softwareVersion = QVersionNumber::fromString(releaseObject.value(QStringLiteral("tag_name")).toString()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if this fails, e.g. "FW_version_6+1"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
softwareVersion
will be isNull()
internally and compare()
will treat it as v0
, so no update
If desired one can always retrieve the master build from the CI status. I'd rather release more often than having people run pre-versions a lot. If the rest of the process is even more automated the overhead is lower...
|
Normal people don't know what a CI is, if it's enabled, where to look for it and if there are assets to download, and how to dig through jenkins or whatever (and you don't have a page for mac builds?). GH CI is slightly more practical in that respect, but the build artifacts are not "public", I think you can share direct links, but people can't go to the CI and download on their own, hence the pre-release route.
speaking of AV, VirusTotal has a public API apparently, could be part of CI... |
One thing is that conceptually there shouldn't be two binaries with the same version and different code/behavior in the wild. Ideally the continuously built versions would have different version numbers (but because of the fork we're already using the last version number field, at least on Windows). Back to the API endpoint discussion, there's also a difference in the body texts between GH releases and the updater ones. The updater body will be shown in desktop notifications on clients, those have fewer and shorter lines than GH (e.g. I leave out the issue references and less important changes). Plus the fluff text that's on each release on the download page is not relevant for that notification. Re AV: pushing things to VirusTotal doesn't fix the issue. I've had one version "turn bad" only after a few days (after I put it on the release page, not sure if related). But if you think it would help, feel free to give it a try. |
This switches update check to here directly
convenient api endpoint and builtin
QVersionNumber
simplify the code a bitshould work the same otherwise
On a related note (where this started)...
I wanted to check out gh workflows and long story short, I managed to make one that builds Prismatik for all platforms
and I think it would be nice to have it here:
and it can be applied for the releases, I tested the following:
5.11.2.25
->5.11.2.26-preXXX
(where XXX could be a datetime(YmdHMS) or timestamp..)5.11.2.26
and pushNow, making a pre-release for every merge would be too much, so it'll need some kind of rule, which could be:
hotfix/*
(critical stuff like nogui crash #370, grab: revert -O3 to -O2 #356),feature/*
(more or less significant additions like DNRGB split/diff packets #402), would trigger a pre-releaseThis would avoid people rolling back too far and/or waiting months for something new/fixed
And last but not least:
I streamlined the linux build process a bit, and combined with the above it's now easy to add a build + packaging step for whatever distribution / package manager: so debian 10.x will get an actual debian 10.x build with whatever versions it currently has, the freshest ubuntu will have it's own, Arch won't get an old deb repackage (I use Arch btw), a flatpak for the cool kids etc
This works through docker on github, and locally you can do both docker or a native build if you happen to run the target system (which is what the docker container runs internally).
So others can setup a package for their OS without you having to mess with your build server and it'll just pop in the next release.
On windows side, I skipped the whole
UpdateElevate
step for now, but it should not be too hard to add (unless you think otherwise), you can add the private key to your gh secrets and we'll pull from theretheir windows env 2019 2016
so if you have some particular instructions for this part...
and mac does pretty much the travis routine...
Thoughts?