nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.54k stars 4.08k forks source link

[RFC] consider pinning the `minimum.supported.desktop.version` at every release #49519

Open skjnldsv opened 3 days ago

skjnldsv commented 3 days ago

On server, we have a config named minimum.supported.desktop.version It block the clients from syncing with Nextcloud if they're too old.

Current is set to 2.3.0 which haven't changed in 2 years and point to a release from.......2017 😱

Suggestion

skjnldsv commented 3 days ago

cc @nextcloud/desktop @tobiasKaminsky @sorbaugh @AndyScherzinger

solracsf commented 3 days ago

Yet I agree that 2.3.0 is quite old, problem is that some old OS distributions would not support them. Example between 3.13 and 3.14.

https://docs.nextcloud.com/desktop/3.13/installing.html#system-requirements https://docs.nextcloud.com/desktop/3.14/installing.html#system-requirements (32bits support is dropped, yet, server supports it).

But having something like 3.10.0 now (to drop at least very very old clients) could be an option IMO.

We add a setup warning when the configured minimum.supported.desktop.version is set to something older than xx months

I vote on this perhaps.

solracsf commented 3 days ago

Another hint: instead chnaging those values often, desktop should follow a EOL policy similar to server, let's say, support the latest 3 majors. https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule (and have a page like this too).

Once the support for one major is dropped, then a server setup warning should warn the user about this and the admin could bump version after he consults system requirements and decides it's environment will support it.

Actually, I couldn't find any information about which versions of Desktop are supported or not, and this is a problem.

Similarly, there is no option to pin to a "minor" version on desktop; stable (default) channel will always update to the latest "major" (from 3.14.3 to 3.15.0 for example) exactly because there is no maintenance policy and user can't pin to minor relases only (conservative updates) leading to major problems sometimes.

Only option to have a conservative updates policy user-side is... disable automatic updates (enabled by default).

PhilippSchlesinger commented 3 days ago

Similarly, there is no option to pin to a "minor" version on desktop; stable (default) channel will always update to the latest "major" (from 3.14.3 to 3.15.0 for example) exactly because there is no maintenance policy and user can't pin to minor relases only (conservative updates) leading to major problems sometimes.

@solracsf See https://github.com/nextcloud/desktop/issues/7382 for a feature request similar to what you describe.

AndyScherzinger commented 3 days ago

Clients, mobile and desktop, support a 5 year range, so clients drop Server support after server version is 5 years old. This is done to ensure we can always maintain a single client version going forward.

I would also suggest to rather have a server warning if the set value is below a version we believe should be used (mostly due to disclosed vulnerabilities). Deploying a new server version and automatically blocking a updated set of outdated clients sounds wrong to me since admins might not check or know upfront.

skjnldsv commented 2 days ago

Clients, mobile and desktop, support a 5 year range, so clients drop Server support after server version is 5 years old. This is done to ensure we can always maintain a single client version going forward.

That should still mean that we should block versions under 5 years. Which means 2019, and not the current 2017.

But I agree, adding a setup warning seems good as well.

AndyScherzinger commented 2 days ago

That should still mean that we should block versions under 5 years. Which means 2019, and not the current 2017.

Yes, absolutely 👍

But I agree, adding a setup warning seems good as well.

Also on the same page here 👍

AndyScherzinger commented 2 days ago

So if/when setting it for v31 of server https://github.com/nextcloud/desktop/releases/tag/v2.6.3 would be the one but given the quick release after in beginning of March I suggest to go with https://github.com/nextcloud/desktop/releases/tag/v2.6.4

skjnldsv commented 2 days ago

Fancy link to check directly: https://github.com/nextcloud/desktop/blob/@%7B5.years.ago%7D/VERSION.cmake

skjnldsv commented 2 days ago

I think two errors would make sense:

  1. a big red one if the value is changed to something earlier than 5 years
  2. a smaller orange warning if some users are using an old version (but still within the 5 years). To encourage admins to update their client fleet. What would be a nice value? 1 year?