Support dev builds for auto updater #3997
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Changes
Now interested users can opt in to the bleeding edge dev builds to get changes as they are merged into the
master
branch, which will hopefully allow us to receive earlier bug reports and reduce bug counts of releases. To make this work:version.json
file containing the client version (including the above build number) and the dev build's changelog entries, generated by a new Python script inbin/version_info.py
:DevBuilds
property, and if it's true:version.json
file from S3 to determine whether the dev build is newer than the current client as well as get the changelogckan.exe
andAutoUpdater.exe
from S3 as well to update to the dev buildDevBuilds
settingAutoUpdate.cs
is moved fromCore/Net
toCore/AutoUpdate
and accompanied by a variety of other autoupdate-related filesckan upgrade ckan
command now has--dev-build
and--stable-release
flags that toggle the setting before upgrading. If neither flag is present, then the previous value of the setting is used.While I was working on the above, I noticed some minor refactoring opportunities:
Net
has several members that are only used by/forNetAsyncDownloader
, which are now moved into that class to reduce the coupling of these two classes:DownloadTarget
(which is now also moved to its own file to make it easier to find)DownloadWithProgress
NetAsyncDownloader.NetAsyncDownloaderDownloadPart
is a long redundant name, so now it's shortened to justDownloadPart
as well as moved to its own file to make it easier to findLeftRightRowPanel
was accidentally left out of theGUI
namespace and is now moved into itYesNoDialog
are now auto-sized (GrowOnly
mode) and automatically positioned by aLeftRightRowPanel
Main.Instance
referencesFixes #997 (just before its 10-year anniversary!).