Skip to content

fix(deps): ship vue and @nextcloud/vue as dependencies - #276

Merged
skjnldsv merged 1 commit into
mainfrom
fix/vue-as-dependency
Sep 8, 2026
Merged

fix(deps): ship vue and @nextcloud/vue as dependencies#276
skjnldsv merged 1 commit into
mainfrom
fix/vue-as-dependency

Conversation

@skjnldsv

@skjnldsv skjnldsv commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Addresses susnux's review on nextcloud/server#62593: Vue 3 does run inside a Vue 2 app, as long as the library brings its own Vue.

vue and @nextcloud/vue were peer dependencies, so a consumer had to supply Vue 3 itself. A Vue 2 app cannot, which is why the sharing dialog is reached from the files sidebar through an OCA.Sharing bridge. As dependencies they are installed with the library and npm nests them where the consumer's own Vue is incompatible, so the dialog can be imported directly — the same way @nextcloud/dialogs does it.

@nextcloud/vue moves to ^9.11.0 at the same time, the first release where the multiple recipient select renders at the same width as the other selects.

Both stay external in the build: dist/dialog.mjs still imports vue and @nextcloud/vue/... rather than bundling them, so a consumer on a compatible version resolves to a single deduped copy. Once released, the server can drop the bridge.

👾 This pull request was assisted by Claude Code, commits carry an Assisted-by trailer.

Declaring them as peer dependencies meant a consumer had to provide Vue 3
itself, which a Vue 2 app cannot, and the dialog had to be reached through a
bridge registered from a separate Vue 3 entry point. As dependencies they are
installed with the library and nested where the consumer's own Vue is
incompatible, so the dialog can be imported directly from a Vue 2 app —
the same way @nextcloud/dialogs already does it.

Both stay external in the build, so a consumer on a compatible version still
gets a single deduped copy.

@nextcloud/vue is raised to ^9.11.0, the first release in which the multiple
recipient select renders at the same width as the other selects.

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
@skjnldsv skjnldsv added the bug Something isn't working label Sep 8, 2026
@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.91%. Comparing base (f73517b) to head (5f3744a).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #276   +/-   ##
=======================================
  Coverage   79.91%   79.91%           
=======================================
  Files          27       27           
  Lines         727      727           
  Branches      202      202           
=======================================
  Hits          581      581           
  Misses        127      127           
  Partials       19       19           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@skjnldsv
skjnldsv marked this pull request as ready for review September 8, 2026 13:41
@skjnldsv
skjnldsv requested a review from susnux September 8, 2026 13:41
@skjnldsv skjnldsv self-assigned this Sep 8, 2026
@skjnldsv skjnldsv added the 3. to review Waiting for reviews label Sep 8, 2026
@skjnldsv
skjnldsv enabled auto-merge September 8, 2026 13:42
Comment thread package.json
"@nextcloud/vue": "^9.0.0",
"vue": "^3.5.0"
},
"peerDependencies": {},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"peerDependencies": {},

Comment thread package.json
},
"peerDependencies": {},
"engines": {
"node": "^20.0.0 || ^22.0.0 || ^24.0.0"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not put node 20 here

Suggested change
"node": "^20.0.0 || ^22.0.0 || ^24.0.0"
"node": "^22.0.0 || ^24.0.0 || >=26"

@skjnldsv
skjnldsv merged commit fa90c97 into main Sep 8, 2026
17 checks passed
@skjnldsv
skjnldsv deleted the fix/vue-as-dependency branch September 8, 2026 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants