nextcloud / nextcloud/updater

Skip the update if there are incompatible apps (unless forced/overrriden)

Open
#401 5 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement feature: apps management feature: upgrade
Dominant language
PHP
Stars
51
Forks
40
Avg merge
2d 19h
Merged PRs (30d)
3

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Is your feature request related to a problem? Please describe.
I have a cron job that includes php7.4 /var/local/nextcloud/webroot/updater/updater.phar --no-interaction --quiet, and the last time it upgraded Nextcloud, it disabled the oidc_login and twofactor_u2f apps, among others. Disabling the former prevents logging in, and unintentionally disabling the latter is a security issue, I think.

Describe the solution you'd like
Add a command-line flag to updater.phar so that if the upgrade would disable any apps, it prints an error message instead of continuing.

Describe alternatives you've considered
A command-line flag that lists specific apps that are considered critical would work too.

Additional context
The issue I had was updating from 22.2.3.0 to 23.0.0.10, and the logs showed these apps disabled:

2021-11-30T23:15:52+00:00 Disabled incompatible app: apporder
2021-11-30T23:15:52+00:00 Disabled incompatible app: metadata
2021-11-30T23:15:52+00:00 Disabled incompatible app: oidc_login
2021-11-30T23:15:52+00:00 Disabled incompatible app: polls
2021-11-30T23:15:52+00:00 Disabled incompatible app: twofactor_u2f

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing updater.phar's command-line option handling and the code that detects and disables incompatible apps. Done means an update stops with an error when incompatible apps would be disabled, while an explicit force or override permits it; verify the behavior in the updater's existing test flow if available.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
cli
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.