QOps-Update

Updates to the latest QOps version.

New in version 1.14

 

Installs the new version whether or not the licence checks out. Where the check fails, or cannot run at all, the run says which of the two happened and carries on:

QOps-Update: license check failed. License is invalid: the license has expired. The update runs
anyway: QOps-Update does not require a license. Other commands do - run QOps-Activate to restore
them.

Every other command still checks the licence for itself, so this changes what you can update, not what you can do.

Updated in version 3.0.15

Syntax

QOps-Update [-Beta] [-Force] [-Channel] [-CheckOnly] [-IgnoreInstalledFromOtherChannels] [-VerboseLog]

Parameters meaning:

-Beta indicates that QOps should be updated to the version with current development

-Force reinstalls the latest build of the channel even when the installed one is the same or newer. The build goes into its own folder named after the version, like any update, and this PowerShell window switches to it without a restart. PowerShell windows that are open stay open. Newer installed versions are retired, so later updates and new PowerShell windows use the build you chose. The folder that held the same version before is kept until the new one has loaded QOps in a separate PowerShell: when it does not load, nothing is replaced and the message says why. On Windows, the version this PowerShell window runs cannot be replaced while it is loaded. The update downloads the new copy, checks that it loads and keeps it ready beside the running one, and the message asks you to close all PowerShell windows and open a new one, which puts the copy in place before it loads QOps. If another PowerShell window or the QOps Portal still uses that version, the new window starts with the version you had, says the reinstall is waiting, and the next new window tries again. When a window of the other PowerShell edition runs that edition's copy of the same version, that copy is not replaced and the message says so: close PowerShell and run QOps-Update -Force again. The Portal never passes -Force.

Updated in version 3.0.4, updated in version 3.1.2

 

-Channel installs from a specific release channel for this run only — it does not change the machine's default. To make a channel the machine's default, use QOps-SetUpdateChannel. Accepts letters, digits, dot, dash and underscore.

New in version 3.0.11

 

-CheckOnly checks for an update and installs nothing. It reads the latest build in the channel (the one given with -Channel, otherwise the one set with QOps-SetUpdateChannel, otherwise main-3.x), compares it with the newest QOps installed on this computer, prints one line with the answer and returns it as an object with the fields Installed, Channel, LatestInChannel, UpdateAvailable, Status (UpdateAvailable, LatestInChannel, NewerThanChannel or Failed), FailureKind and FailureReason. When the check fails, FailureKind says why: NoNetwork, RateLimited (GitHub's request limit), TokenRejected (a GitHub token GitHub no longer accepts), NotPublished (a channel with no QOps build, usually a misspelt name) or Other. A failed check never reads as "nothing to update". With -CheckOnly no automatic update runs and the Portal shortcuts are left as they are; -Force has no effect.

New in version 3.1.1

 

A check also tells whether the channel's own latest build is on this computer. A NewerThanChannel answer does not say that; the field LatestInChannelInstalled does: it is True when the build in LatestInChannel is installed, complete, for the PowerShell you ran the check in, and it does not change Status. The field ChannelInstall says what -IgnoreInstalledFromOtherChannels would do for this channel: Install (the build is not installed), AlreadyInstalled, ChannelOlderThanDownloaded (a build downloaded from the same channel earlier is newer) or PredatesSideBySide (older than 3.0.4, or the frozen 2.x channel, which cannot go beside the other builds: use the installer). It is empty when the check failed. The field NewerFromChannelInstalled is True when a build downloaded from this channel earlier is installed and is newer than LatestInChannel, which means the channel has gone back to an older build. When the channel's latest build is not installed and a plain QOps-Update would not install it, the printed line adds how to: QOps-Update -Channel <channel> -IgnoreInstalledFromOtherChannels.

New in version 3.1.2

 

-IgnoreInstalledFromOtherChannels installs the latest build of the channel when it is not installed yet, beside the versions you have, even when a newer build from another channel is installed. A plain QOps-Update installs only a build newer than the newest one you have, so this is how you go back to the release build after trying a pre-release. It uses the channel this computer is set to, or the one given with -Channel, which applies to this run only. Each channel holds one build, so there is no version to choose. The build is downloaded into a folder of its own, for this PowerShell and for the other PowerShell edition on Windows when that one does not have it yet. No PowerShell window is closed and no other version is removed. The new folder is loaded once in a separate PowerShell first: if that fails, the folder is removed and nothing else changes. Then QOps uses the build from the next command on, the same as QOps-SetVersion does, and points the Portal shortcuts at it; when a newer version is installed, QOps stays on this one until you switch with QOps-SetVersion. When the build is already installed, nothing is downloaded and the message says how to switch to it. The command returns one object with the fields Channel, LatestInChannel, Outcome (Installed, AlreadyInstalled, ChannelOlderThanDownloaded, PredatesSideBySide, Refused or Failed), Path (the build's folder), PinnedVersion (the version QOps stays on, empty when the build is the newest installed) and Message. With -CheckOnly it installs nothing and the printed line is about the channel's own latest build; it cannot be combined with -Force. In the Portal this is what Update to <version> and Download <version> in the version panel run.

New in version 3.1.2

 

-VerboseLog enables full verbose output including complete API response dumps and debug information. By default, QOps now produces concise output summaries.

New in version 3.0.4

 

Version 3.0 is not backward compatible with previous versions due to changes in the configuration structure. Therefore, the auto-update of a 2.x installation stops at the latest 2.x version, 2.2.6. To update to version 3.0+, use the command:

QOps-Update -Force

Examples

QOps-Update

QOps-Update -Beta -Force

QOps-Update -Channel beta-3.1

QOps-Update -IgnoreInstalledFromOtherChannels

QOps-Update -Channel main-3.x -IgnoreInstalledFromOtherChannels

$check = QOps-Update -CheckOnly

if ($check.UpdateAvailable) { QOps-Update }