Git Product home page Git Product logo

Comments (6)

thestinger avatar thestinger commented on June 13, 2024 1

Does the OS normally check for updates on regular basis, at what time and dates?

Approximately every 4 hours, and only when the constraints set by the user in that configuration page are met. It uses the OS job scheduling implementation so there isn't a precise schedule that it runs and the OS is free to adjust the interval / timing quite a bit to make it align well with other jobs.

I.e. there should be no restrictions and it could check anytime and when I tap the button it should start checking, no?

Yes. We could set up a more specific constraint for the job than we do by specifying that we require internet access (not just any network access), etc. It may currently be implied that the network has to have internet access as a default. I can't quite remember. We're using the OS job scheduler with standard job constraints and an approximate 4 hour interval and it determines the details.

The check for updates button just immediately schedules a job separately from the automatic periodic update check interval, so as soon as the constraints are satisfied, it will perform the check and then start updating if an update is available.

In theory, we could add support for a more lax configuration of update checks than actually attempting updates, along with support for informing that an update is available separately from installing it. However, this would add complexity and isn't necessarily desirable. There's a lot of value in simplicity. People can also already get notifications of the release announcements (https://grapheneos.org/releases has an atom feed), although that's a bit different than it becoming available in a specific release channel.

from platform_packages_apps_updater.

thestinger avatar thestinger commented on June 13, 2024 1

The check for updates button just immediately schedules a job separately from the automatic periodic update check interval, so as soon as the constraints are satisfied, it will perform the check and then start updating if an update is available.

So, it could also set a flag that makes the update check behave differently and show a notification when it occurs. I don't really want to make the check for updates feature simply immediately check for updates regardless of the constraints though. We could set it so that it expires if the constraints are not satisfied without a certain amount of time, and perhaps that can be set up to show a notification that it failed. It gets complicated though.

For example, explaining to users why it failed if it does get scheduled but fails to run (generally because of network configuration issues or an incorrectly set time leading to not being able to resolve the domain, connect to the server and establish a TLS connection). We don't currently surface this kind of information. It just functions in the background and can be controlled by the user including disabling the app. Additions to it need to be done very carefully because the upgrade path is extremely important, as is keeping users updated and not slowing down the uptake of new releases, etc.

from platform_packages_apps_updater.

thestinger avatar thestinger commented on June 13, 2024

When you press check for updates, it triggers an update check as soon as possible, bypassing the usual update scheduling. If you don't have network access through one of the network types you've permitted, it will happen as soon as you do. That's how the feature is meant to work. It's not a synchronous check for updates in the foreground, and it's only immediate if the requirements to check for an update are currently satisfied.

from platform_packages_apps_updater.

thestinger avatar thestinger commented on June 13, 2024

It would be possible to make it so that the update check triggered by an explicit check for updates creates a notification when not updates are available, but I don't think this action works the way you think it does. The check that you trigger could happen far in the future if the current conditions don't satisfy the requirements for it to perform updates based on what you've configured below.

from platform_packages_apps_updater.

ericschdt avatar ericschdt commented on June 13, 2024

When you press check for updates, it triggers an update check as soon as possible, bypassing the usual update scheduling.
you don't have network access through one of the network types you've permitted, it will happen as soon as you do.

Thanks.

Does the OS normally check for updates on regular basis, at what time and dates?
I thought of an inline message, which at least ensures the user that they pressed the button and the app recognized it.

The check that you trigger could happen far in the future if the current conditions don't satisfy the requirements for it to perform updates based on what you've configured below.

So it only checks if it also is allowed to download the updates right away or on a regular basis I guess.

E.g. I have set Release Channel: Stable and Permitted networks: Any and I am connected to wifi network with internet access.
I.e. there should be no restrictions and it could check anytime and when I tap the button it should start checking, no?

from platform_packages_apps_updater.

thestinger avatar thestinger commented on June 13, 2024

Replacing with #23.

from platform_packages_apps_updater.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.