Skip to content

Migrate to Vue 3, Vite, Composition API, and updated @nextcloud/* packages#1278

Merged
skjnldsv merged 6 commits intomasterfrom
copilot/migrate-app-to-vue3
Mar 24, 2026
Merged

Migrate to Vue 3, Vite, Composition API, and updated @nextcloud/* packages#1278
skjnldsv merged 6 commits intomasterfrom
copilot/migrate-app-to-vue3

Conversation

Copy link
Contributor

Copilot AI commented Mar 19, 2026

Psalm CI was failing with 10 errors due to a mix of a real return type mismatch and unavoidable references to classes from optional external apps (OCA\Theming, OCA\Encryption) not present in OCP stubs. The previous approach of using a baseline file was using an incorrect format for psalm 6.x, so suppressions weren't taking effect.

Changes

  • PersonalController – Fix MoreSpecificReturnType/LessSpecificReturnStatement: fetchAll() returns list<array<string, mixed>>, not the declared array<int, array{id: int, displayname: string}>
  • MissionSettings / WhoHasAccessSettings – Add inline @psalm-suppress UndefinedClass for ThemingDefaults (optional theming app) and @psalm-suppress UndefinedDocblockClass, UndefinedClass for OCA\Encryption\Util (optional encryption app)
  • psalm-baseline.xml – Clear all entries; all issues are now handled at the call site via inline suppressions, avoiding future baseline format drift
// WhoHasAccessSettings.php
/**
 * @psalm-suppress UndefinedDocblockClass, UndefinedClass
 * @var \OCA\Encryption\Util $util
 */
$util = \OCP\Server::get(\OCA\Encryption\Util::class);
/** @psalm-suppress UndefinedDocblockClass */
$isHomeStorageEncrypted = $util->shouldEncryptHomeStorage();

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@skjnldsv skjnldsv force-pushed the copilot/migrate-app-to-vue3 branch 2 times, most recently from eb10f72 to f277eaf Compare March 19, 2026 13:07
@skjnldsv
Copy link
Member

/compile amend

@nextcloud-command nextcloud-command force-pushed the copilot/migrate-app-to-vue3 branch from f277eaf to cd5965e Compare March 19, 2026 13:08
@skjnldsv
Copy link
Member

@copilot fix psalm, eslint and reuse please

Copy link
Contributor Author

Copilot AI commented Mar 19, 2026

@copilot fix psalm, eslint and reuse please

Fixed in commit 070982f:

  • ESLint: Removed deprecated .eslintignore, migrated to eslint.config.js ignores; updated lint script to use ESLint v9+ flat config format (eslint src without --ext); added eslint-disable-next-line comments for intentional v-html usages in UserManifesto.vue
  • REUSE: Added eslint.config.js and css/**.css build artifacts to REUSE.toml; downloaded missing license files (BSD-3-Clause.txt, ISC.txt, MPL-2.0.txt)
  • Psalm: Updated tests/psalm-baseline.xml to remove the stale OC baseline entry (since OC::$server->getThemingDefaults() was replaced with proper DI) and added the expected ThemingDefaults entries for WhoHasAccessSettings.php

Copilot AI requested a review from skjnldsv March 19, 2026 14:01
susnux
susnux previously approved these changes Mar 19, 2026
@susnux susnux dismissed their stale review March 19, 2026 14:02

wrong button.

@susnux
Copy link
Contributor

susnux commented Mar 19, 2026

overall good, some comments

Copilot stopped work on behalf of skjnldsv due to an error March 19, 2026 15:55
@skjnldsv skjnldsv force-pushed the copilot/migrate-app-to-vue3 branch 3 times, most recently from 9bf4315 to 4fec982 Compare March 19, 2026 16:14
@skjnldsv
Copy link
Member

@copilot fix psalm

Copy link
Contributor Author

Copilot AI commented Mar 19, 2026

@copilot fix psalm

Fixed in commit 3fe4018: replaced \OC::$server->get(\OCA\Encryption\Util::class) with \OCP\Server::get(\OCA\Encryption\Util::class) in WhoHasAccessSettings.php. The psalm CI was crashing because psalm 5.26.1 on PHP 8.4 hit a deprecation error (null as array offset) when analyzing the method chain on the untyped \OC::$server static property. Updated psalm-baseline.xml to remove the stale OC UndefinedClass entry.

@skjnldsv skjnldsv force-pushed the copilot/migrate-app-to-vue3 branch from 632c379 to b2713c7 Compare March 19, 2026 17:39
Copilot AI changed the title Migrate to Vue 3, Vite, Composition API, and updated @nextcloud/* packages Fix psalm CI: replace baseline suppression with inline @psalm-suppress and fix return type Mar 19, 2026
@skjnldsv skjnldsv requested a review from susnux March 19, 2026 17:47
@skjnldsv skjnldsv changed the title Fix psalm CI: replace baseline suppression with inline @psalm-suppress and fix return type Migrate to Vue 3, Vite, Composition API, and updated @nextcloud/* packages Mar 19, 2026
@skjnldsv skjnldsv enabled auto-merge March 19, 2026 18:16
@skjnldsv
Copy link
Member

/compile amend

@nextcloud-command nextcloud-command force-pushed the copilot/migrate-app-to-vue3 branch from 24a98f8 to 0e31fc2 Compare March 19, 2026 18:43
Copilot AI and others added 6 commits March 24, 2026 13:31
…Composition API

Co-authored-by: skjnldsv <14975046+skjnldsv@users.noreply.github.com>
… update psalm baseline

Co-authored-by: skjnldsv <14975046+skjnldsv@users.noreply.github.com>
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
…e fix

Co-authored-by: skjnldsv <14975046+skjnldsv@users.noreply.github.com>
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
@skjnldsv skjnldsv force-pushed the copilot/migrate-app-to-vue3 branch from 0e31fc2 to f174930 Compare March 24, 2026 12:33
@skjnldsv skjnldsv disabled auto-merge March 24, 2026 12:33
@skjnldsv skjnldsv merged commit 6026912 into master Mar 24, 2026
40 checks passed
@skjnldsv skjnldsv deleted the copilot/migrate-app-to-vue3 branch March 24, 2026 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants