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
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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