Skip to content

chore(deps): take nextcloud-vue 3.2.0 and drop the local connection formatters - #648

Merged
rubenvdlinde merged 4 commits into
developmentfrom
chore/built-in-connection-formatters
Sep 16, 2026
Merged

rubenvdlinde merged 4 commits into
developmentfrom
chore/built-in-connection-formatters

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

LaunchPad now takes @conduction/nextcloud-vue 3.2.0, which ships the Integrations page's two formatters as built-ins. The local copies are gone. A connection an admin switched off now reads "Switched off" instead of the raw word disabled.

Part of hydra#677 (connection-registry design D8). The library side is nextcloud-vue#1173, released through #1175.

Version

  • @conduction/nextcloud-vue ^2.46.0 (lockfile 2.46.0) to ^3.2.0 (lockfile 3.2.0).
  • npm ls --depth=0 exits 0.
  • marked, dompurify, dexie and gridstack are declared in dependencies. @vueuse/core is not a direct dependency. The overrides block pins it to ^14.0.0, and it resolves to one copy, 14.4.0.

What changed

  • src/services/connectionRegistry.js keeps only the Add integration handler. CONNECTION_STATUS_LABELS and createConnectionFormatters are deleted.
  • src/App.vue no longer passes :formatters to CnAppRoot.
  • src/services/__tests__/connectionRegistry.spec.js: the tests that only covered the local copy are removed. One test builds the registry the way CnAppRoot does ({ ...BUILT_IN_FORMATTERS, ...formatters }) and expects connectionStatus('disabled') to be "Switched off". The column name check resolves against that same registry.
  • Development moved while this branch waited. fix(tests): parse info.xml from a string, and format the connection registry files #644 ran prettier over the same three files, so the merge conflicted. I kept this branch's side and took development's formatting.

Mutation check. On the committed code I put back development's connectionRegistry.js and App.vue, the six-status copy wired into CnAppRoot. The new test went red on its assertion line: expected 'disabled' to be 'Switched off', spec line 46. Restored, git status clean, green again.

What 3.x touches here

  • The news widget. 3.0.0 removed CnNewsWidget, CnNewsWidgetForm and the news type. LaunchPad already registers its own on development (5a99701a, "take ownership of the news widget from nc-vue"). src/constants/widgetRegistry.js registers news with NewsWidget.vue and NewsWidgetForm.vue, and nothing imports the removed exports. Stored news placements keep a renderer.
  • Untinted tiles. A library tile with no colours set now renders transparent. LaunchPad's own tiles render through TileWidget.vue, which falls back to #0082c9, so they are unchanged. Registry tile placements render through CnDashTileWidget, which in 3.2.0 still falls back to #3b82f6. The untinted path is CnTileWidget inside CnDashboardPage, and no LaunchPad dashboard page declares a tile widget.
  • Detail page headerActions move into the Actions menu. LaunchPad has no detail page with headerActions. The one headerActions entry sits on the Integrations index page, which already used the menu.
  • External navigate actions now open as links. No LaunchPad action navigates to an external URL.
  • Widget registrations consolidated. LaunchPad has no deep import of a library widget's index.js.
  • New nested dependency. 3.2.0 depends on @nextcloud/files ^4.0.0. LaunchPad imports nothing from @nextcloud/files. See "Not verified".

Verification

  • npm run build: exit 0, with the two existing asset size warnings.
  • npm run lint: exit 0. The first run had one error from this branch (import order in the spec), fixed in 7c17e55d.
  • npx vitest run: exit 1 on the first run, 741 of 748 passing. All seven failures were timeouts in beforeEach hooks or module imports, with the machine at load 40 to 70. The six files rerun on their own: exit 0, 35 of 35. None of them touches a formatter.
  • hydra/scripts/diff-check.sh --base origin/development with HYDRA_GATES_HOME on the vendored gates: exit 0, GREEN. Gates, phpunit, eslint and stylelint report 0 new and 0 inherited findings.
  • COMPOSER_PROCESS_TIMEOUT=0 composer check:strict (per-lane TMPDIR and HOME): exit 0, "ALL CHECKS PASSED", PHPUnit 1756 tests, 12 skipped.

Not verified

  • No browser, no instance, no occ. I did not see the Integrations page or a dashboard render with 3.2.0.
  • I did not load a stored news placement. The claim above rests on the registration in widgetRegistry.js and its unit specs.
  • The nested @nextcloud/files 4.0.0 was not exercised.

Inherited

None on the lines this PR touches. The webpack asset size warnings predate this change.

🤖 Generated with Claude Code

Drops LaunchPad's local connectionStatus and connectionSettingsLabel copy
and the formatters prop that passed it to CnAppRoot. The spec now builds the
registry the way CnAppRoot does and asks it for a switched-off connection.
…-connection-formatters

# Conflicts:
#	src/App.vue
#	src/services/__tests__/connectionRegistry.spec.js
#	src/services/connectionRegistry.js
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/launchpad @ ac86ad0

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
format
check-schema-l10n
composer ✅ 104/104
npm ✅ 636/636
app:check-code ⏭️
info.xml
REUSE
lockfile sync
PHPUnit
Newman
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it on any branch from the Actions tab, or locally with npx playwright test.
Hydra gates

Quality workflow — 2026-09-16 10:04 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit b78dc67 into development Sep 16, 2026
41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant