nextcloud-libraries / nextcloud-libraries/nextcloud-vue

Cannot install 9.12.0: its peer on @nextcloud/files@^4.1.0-beta.2 conflicts with @nextcloud/dialogs

Open
#8,962 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Vue
Stars
246
Forks
99
Avg merge
1d 20h
Merged PRs (30d)
103

Description

We have a Nextcloud app that uses @nextcloud/vue, @nextcloud/dialogs and @nextcloud/files. A Dependabot PR bumped us from @nextcloud/vue 9.9.0 to 9.12.0, and npm ci now fails before anything installs:

npm error code ERESOLVE
npm error While resolving: @nextcloud/vue@9.12.0
npm error Found: @nextcloud/files@4.0.0
npm error   @nextcloud/files@"^4.0.0" from the root project
npm error   @nextcloud/files@"^4.0.0" from @nextcloud/dialogs@7.5.0
npm error   1 more (@nextcloud/sharing)
npm error Could not resolve dependency:
npm error peerOptional @nextcloud/files@"^4.1.0-beta.2" from @nextcloud/vue@9.12.0
npm error Conflicting peer dependency: @nextcloud/files@4.1.0-beta.2

As far as I can tell, the problem is that 9.12.0 asks for two things that cannot both be true.

It declares a peer on @nextcloud/dialogs@^7.4.0. The current release in that range, 7.5.0, depends on @nextcloud/files@^4.0.0. But 9.12.0 also declares a peer on @nextcloud/files@^4.1.0-beta.2.

So @nextcloud/files would have to satisfy both ^4.0.0 and ^4.1.0-beta.2 at once. We cannot find a version that does. Staying on 4.0.0 fails the @nextcloud/vue peer. Going to 4.1.0-beta.2 fails the @nextcloud/dialogs dependency, since npm does not match prereleases against a plain range like ^4.0.0. A stable 4.1.0 would satisfy both, but @nextcloud/files has not released one yet. Its latest is still 4.0.0 from February.

Marking the peer optional does not help us, because @nextcloud/dialogs pulls @nextcloud/files in regardless.

Version 9.11.0 installs fine and has no peer dependencies at all, so we are pinning below 9.12.0 for now.

Is the beta peer intentional? If 9.12.0 needs APIs that only exist in @nextcloud/files 4.1.0-beta.2, then we will wait for 4.1.0 to go stable. If it was not intentional, changing the peer to ^4.0.0 would unblock us and anyone else on a stable @nextcloud/files.

Versions: @nextcloud/vue 9.12.0, @nextcloud/dialogs 7.5.0, @nextcloud/files 4.0.0, npm 10.8.2, Node 20.19.5.

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 inspecting the published 9.12.0 peer metadata and reproducing npm ci with the listed versions. Compare the @nextcloud/files ranges required by @nextcloud/vue and @nextcloud/dialogs; done means a supported stable dependency set installs cleanly, or the issue is documented as intentional pending files 4.1.0.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.