-
-
Notifications
You must be signed in to change notification settings - Fork 111
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
feat(windows): Online Update - Background Download - Stage 1 💽 #10038
Open
16 of 22 tasks
Tracked by
#10041
Comments
This was referenced Nov 22, 2023
This was referenced Nov 22, 2023
4 tasks
rc-swag
changed the title
feat(windows): Online Update - Background Download - Stage 1
feat(windows): Online Update - Background Download - Stage 1 💽
Dec 11, 2023
Hello, this is a feedback from the community site. I will leave it here. Thank you. Original post: https://community.software.sil.org/t/keyboard-optimization-mobile-versions/9422/24
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Keyman for Windows online updates - Background Download- Stage1
Table of Contents
Introduction
The ideal end goal of the online updated work is to automate the updated process with zero user interaction.
There are many obstacles to achieving this some of which are out of Keyman control.
However, we can make steps towards this goal.
This issue is for stage 1 in which will download the update in the background without user interaction. There will still
be the need for the user to start the installation either via the configuration dialogue or pop on a Windows restart.
Stage two #8993 will introduce a schedule task to start the installation after downloads which will further reduce the user interaction.
Challenges
Updating Keyman for Windows currently has the following issues which will still require some level of user interaction
- Keyman32.dll will be locked with SetWindowsHookEx hooks – with no clean way of releasing it from memory in all processes
- kmtip.dll can be locked as it is selected as an input method
Detail
Automatic updates:
Keyman Configuration dialog will show a panel in the updates tab detailing what the next updates will be.
Title for whole tab shall be "Online Update"
For example:
The checking for updates will be done automatically (via a schedule). More detail in Functional Spec.
We still have a 'manual update' pathway with auto updates off. It will be through a button on the Configuration tab for "Online Updates"
stretch task Remove “Keep in Touch” from the left and add the information to “Support” also could add a get involved link stretch task
This is mage was quick hack to show the general layout for the update tab.
Functional Spec
Handling Checking for and downloading updates
check for updates
button in Keyman Configuration Menu. This will only check for updates and not trigger a background download of the install files. When the user press Apply now the download process will start if the automatic download has not already happened.Installing the update
When Keyman is starting for the first time in a Windows session and an update is waiting to install, a GUI pop shall notify the user "Install Update" with
Yes
,Remind me later
Buttons.Then when they are asked about elevated permissions they are not surprised. (This is especially the case when Keyman is starting with Windows)
Manually started eg clicking the
Apply Now
button from the Configuration Menu. tbackground Update State
FlagusInstalling
5 Install updates with the bootstrap executable
The bootstrap installer, at the end of Install, sets the
buState
Flag toIdle
Keyman itself (and Keyman Configuration) must check on startup for the state flag for
usInstalling
, and immediately exit if so to avoid file lock issues, and interfering with installation)Extra error. If the state flag is
Installing
after multiple call to kmshell, present UX to the user to allow them to clear the flag, in the case of a failed install:usFailed
state and handle clean up.For all other States other than
Installing
, starting kmshell will run, for example -h, -k etc.To investigate: what happens when a TIP is selected – is it possible for the TIP to say "NO DON'T ACTIVATE!" Answer: no it is not. In this case, reboots maybe required.
10.
This is a link to the State Transition Matrix in a spreadsheet that shows the different state the update process can be in. The rows show the only events that can be applied to the "state". This matrix makes it very clear what action will take place for any given event, and the only permitted paths to transition from one state to the next.
This mermaid diagram has also been added to the code base.
Issues and Todo Items
TOnlineUpdateCheckParams
andTUpdateCheckResponse
SPackageUpgradeFilename
is used for upgrading packages and how it fits into the new check/download, with later install modelManual update process
Apply Now
download the updates and install..
figure out when the updates are downloaded
PRs
Related PRs
The text was updated successfully, but these errors were encountered: