-
Notifications
You must be signed in to change notification settings - Fork 9
Release
The LIC.Malone.Client.Desktop.Packager
project automates the steps for Squirrel.
Before running it up (it's a Console app), ensure that LIC.Malone.Client.Desktop.Packager\build\Releases
is empty. See #74.
Just run the console app.
Note: Previously when using the UpdateManager
we could switch the update URL to the local releases folder to test updates work. After moving to GitHubUpdateManager
we don't have that ability any more. See #75.
- Create a new release in GitHub.
- Ensure it is marked as
pre-release
! - Attach the files to the release:
*-full.nupkg
RELEASES
Setup-*.exe
- Ensure you have the previous version installed.
- Ensure the
IsCanary
setting inMalone.exe.config
istrue
to include pre-releases. - Run and verify that it updates (follow the prompt to restart).
Because updates are actually the complete app at a specific version installed side-by-side (including the config), the IsCanary
setting will be defaulted back to false
for the newly installed version. In which case it will only find the last stable release, but will stay on the pre-release version if it is a later version.
If testing fails, you have two options:
- Delete the release from GitHub (the tag will remain).
- Roll-forward with further canary releases to fix the problem.
Once a canary release has passed testing, it's a simple matter of removing the pre-release
tag in GitHub to make it generally available for everyone.
- Ensure you have the previous version installed.
- Ensure the
IsCanary
setting inMalone.exe.config
isfalse
to only get stable releases. - Run and verify that it updates (follow the prompt to restart).
If testing fails, you have two options:
- Delete the release from GitHub (the tag will remain).
- Re-add the
pre-release
tag to hide it from non-canary users.
Previous to v0.7.2, we were using a version of Squirrel that only had an UpdateManager
. That used a local or remote folder of releases (both full and delta packages), with a single RELEASES
file containing a full history.
After moving to a later version of Squirrel, we switched over to using the GitHubUpdateManager
to support updates direct from GitHub releases. At the time of writing (October 2015), this no longer supports delta updates which is pretty dumb. See Squirrel/Squirrel.Windows#465.
The following step is kept for historical purposes and in case GitHubUpdateManager
is updated to support deltas.
Before running it up (it's a Console app), ensure that you have the following in LIC.Malone.Client.Desktop.Packager\build\Releases
:
- The last
*-full.nupkg
, so that a delta package can be made to the latest release. - The full
RELEASES
file, so that the hashes for the latest files (delta and full) can be appended.
The RELEASES
file should be append only: no modifications, so no changing of hashes! Test locally first to avoid blowing out the live feed with updates.
- Ensure you have the previous version installed.
- Modify the
UpdateUrl
inMalone.exe.config
to point to your localLIC.Malone.Client.Desktop.Packager\build\Releases
folder. - Run and verify that it updates (follow the prompt to restart).
Because the update will be using a new copy of the config, it should point once again to the remote server. In which case it might be trying to up/downgrade to the previous version if you haven't pushed the latest version live yet. That's okay. It's just that Squirrel identifies that your version is different from what the remote feed says it is and tries to update.
Upload the following:
- Latest
*-delta.nupkg
. - Latest
*-full.nupkg
. -
RELEASES
.
... then:
- Ensure you have the previous version installed.
- Run and verify that it updates (follow the prompt to restart).