Upgrade to Nextcloud 25

Note

Critical changes were collected on GitHub. See the original ticket for links to the pull requests and tickets.

General

info.xml

Make sure your appinfo/info.xml allows for Nextcloud 25.

<dependencies>
  <nextcloud min-version="22" max-version="25" />
</dependencies>

SCSS support removal

With 25, we removed the support for scss files provided by apps. Please handle your own compilation, move to a vue app or move back to css. See Github issue #32060.

Front-end changes

Disabled keyboard shortcuts

A global option to disable keyboard shortcuts was added to the accessibility settings. Since it heavily depends on the screenreader and tools that you use if Ctrl and/or Alt or other things are okay to use or not and maintaining a more detailed list is too much effort, we went for a global on/off switch. Apps can use this public javascript API call to determine whether the user used the opt-out: OCP.Accessibility.disableKeyboardShortcuts(). If that is the case, no additional shortcuts shall be registered by any app. Only space to toggle checkboxes and enter to submit the currently active buttons/links are okay to be used. See Github issue #34081 and JavaScript Frontend documentation.

Back-end changes

christophwurst/nextcloud replaced

The christophwurst/nextcloud composer package was replaced with a now Nextcloud owned nextcloud/ocp package. The content is the same and all older versions were generated, so you can transition right away no matter which versions you support.

Avatar generation and avatar URL changes

Nextcloud 25 changed the behavior of generated avatars.

If your app or integration requests avatar images directly, note the following:

  • Deprecated avatar sizes are normalized to supported sizes:

    • requests for sizes up to 64 return a 64x64 avatar

    • requests for sizes above 64 return a 512x512 avatar

  • Dark theme variants of generated avatars are available through dedicated endpoints:

    • /avatar/{userId}/{size}/dark

    • /avatar/guest/{guestName}/{size}/dark

  • Generated avatars may have a different appearance in dark mode than in light mode.

Apps should not assume that arbitrary requested avatar sizes are returned unchanged. If you need dark-mode aware generated avatars, use the /dark endpoints.

Removed APIs

  • Removed SVG colour API