@pwithnall
Copy link
Contributor

pwithnall commented Aug 10, 2021

It would be interesting to expose metadata about whether an application requires or recommends internet access to work, or whether it can work fully offline. For users who have limited or sporadic internet access this would allow them to choose applications which work well in those situations. Such users could, for example, be on a mobile data plan for their internet (which runs out), be travelling with patchy signal, or be on a satellite internet connection which has high enough latency to make it annoying to use.

This is something we’d be interested in presenting in the hardware context tile in gnome-software, which currently summarises the existing <requires>/<recommends> elements.

Suggested XML would be an <internet> element whose value is the minimum internet speed the app requires, in megabits/second. A value of 0 would mean that the internet is required, but a specific speed isn’t needed. An offline="yes|no" element would indicate whether the app can work when offline (by pre-caching content).

Using <internet> inside <requires> would indicate that the app is useless without some internet access at some point. Using <internet> inside <recommends> would indicate that the app can largely work without the internet, but its experience would be enhanced by internet access.

Examples:

<requires><internet>0</internet></requires> <!-- App can’t function without some form of internet connection -->
<recommends><internet>2</internet></requires> <!-- App works better if it has a >=2MBit/s internet connection -->
<requires><internet offline="yes">0</internet></requires> <!-- App can work if offline, but needs an internet connection at some point, perhaps when first run to download and cache some data -->

How does that sound?

/cc @wjt because you had some ideas about this