feat: Combine 20 outstanding PRs into single development merge#1258
feat: Combine 20 outstanding PRs into single development merge#1258rubenvdlinde merged 71 commits intodevelopmentfrom
Conversation
…tion-registry # Conflicts: # package.json
…lo-metadata # Conflicts: # package.json
…chival-destruction-workflow # Conflicts: # package.json
- Auto-fix 1207 PHPCS violations via PHPCBF (formatting, spacing, etc.) - Add named parameters to all internal method calls (custom sniff) - Add missing short descriptions to @var and @method docblocks - Fix implicit true comparisons (use explicit === true/false) - Fix line length violations by extracting helpers and breaking strings - Fix ESLint: reserved component name Circle→CircleIcon, unused params - Add @nextcloud/vue-richtext dependency for reference widget - Add .gitignore entry for docs/node_modules/
- Auto-fix 1207 PHPCS violations via PHPCBF (formatting, spacing, etc.) - Add named parameters to all internal method calls (custom sniff) - Add missing short descriptions to @var and @method docblocks - Fix implicit true comparisons (use explicit === true/false) - Fix line length violations by extracting helpers and breaking strings - Fix ESLint: reserved component name Circle→CircleIcon, unused params - Add @nextcloud/vue-richtext dependency for reference widget - Add .gitignore entry for docs/node_modules/
- Auto-fix 1207 PHPCS violations via PHPCBF (formatting, spacing, etc.) - Add named parameters to all internal method calls (custom sniff) - Add missing short descriptions to @var and @method docblocks - Fix implicit true comparisons (use explicit === true/false) - Fix line length violations by extracting helpers and breaking strings - Fix ESLint: reserved component name Circle→CircleIcon, unused params - Add @nextcloud/vue-richtext dependency for reference widget - Add .gitignore entry for docs/node_modules/
…elopment # Conflicts: # lib/Middleware/TenantQuotaMiddleware.php
…-fix' into feature/combined-outstanding-prs
… feature/combined-outstanding-prs
…ture/combined-outstanding-prs
…feature/combined-outstanding-prs
…into feature/combined-outstanding-prs
…ure/combined-outstanding-prs
…eature/combined-outstanding-prs
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
PHPCS fixes: - NoVtodoCalendarException: fix spacing (auto-fixed) - RegistersController: fix spacing (auto-fixed) - DestructionList/SelectionList: add phpcs:disable for Entity setter calls (Entity __call breaks with named params) - FileLockHandler: add named param to getLockInfo calls - CalendarEventService: add named param to extractOpenRegisterProperties npm security: - Update axios to >=1.15.0 (fixes critical SSRF bypass GHSA-3p68)
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
The middleware crashed when Organisation entity had new linked-entity columns (mail, contacts, etc.) not yet present in the database table. This blocked ALL API requests in CI and fresh installs. - beforeController: wrap getActiveOrganisation() in try-catch to gracefully skip quota checking during migrations/schema changes - afterException: re-throw unhandled exceptions instead of returning null (which caused MiddlewareDispatcher TypeError)
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
The beforeController fix caught the 'mail is not a valid attribute' error, but afterController also calls getActiveOrganisation() for bandwidth tracking and crashed the same way.
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
The linked entity fields (mail, contacts, notes, todos, calendar, talk, deck) were added to Organisation, Register, Schema, and ObjectEntity via addType() but no database migration creates these columns. On fresh installs (including CI), loading any entity with these fields crashes with 'mail is not a valid attribute' because fromRow() tries to set a column that doesn't exist in the DB. These fields belong in PR #1237 (linked-entity-types) which needs its own migration. Property declarations are kept (they don't cause runtime errors) but addType registrations are removed so the ORM doesn't expect DB columns that don't exist.
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
… exists)" This reverts commit beca8ed.
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
rjzondervan
left a comment
There was a problem hiding this comment.
Few issues with this PR, of which one actually breaks Nextcloud 34 development envs
There was a problem hiding this comment.
This function triggers some psalm errors, they seem to me incorrect, but can we validate that?
There was a problem hiding this comment.
I miss in this PR the fix to stop using the \OC::$server paradigm, which breaks in the current development versions of Nextcloud 34
| @@ -65,14 +65,14 @@ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array | |||
There was a problem hiding this comment.
Especially this line broke @SudoThijn's dev-environment.
Addresses rjzondervan's change requests: 1. Migration Version1Date20260322120000: replace \OC::$server->get() with constructor injection (IDBConnection + IConfig). The \OC::$server pattern breaks on Nextcloud 34 dev environments. 2. ActionScheduleJob: fix param name $arguments→$argument to match parent Job::run() signature (psalm ParamNameMismatch). 3. ActionScheduleJob: add @psalm-suppress for CronExpression class (optional runtime dependency, not in composer.json).
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit Tests
Integration Tests (Newman)
E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
Quality Report
Summary
PHP Quality
Vue Quality
Security
License Compliance
composer dependencies (147 total)
npm dependencies (600 total)
PHPUnit TestsPHPUnit tests were not enabled for this run. Integration Tests (Newman)Newman integration tests were not enabled for this run. E2E Tests (Playwright)Playwright E2E tests were not enabled for this run. Generated automatically by the Quality workflow.
|
PHPStan baseline updated from 1247 to 2344 suppressed errors to account for code added by the 20 merged feature branches. Psalm baseline updated to include 5 pre-existing errors. Both tools now pass clean.
Quality Report — ConductionNL/openregister @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ❌ | ✅ 147/147 | |||
| npm | ✅ | ✅ 600/600 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-04-14 11:07 UTC
Download the full PDF report from the workflow artifacts.
Summary
This PR combines 20 outstanding feature and fix branches into a single merge targeting
development. These PRs had been accumulating individually (many targetingbeta), making them difficult to review and merge one by one. Consolidating them unblocks Vue component development that depends on these backend and UI changes.Included PRs
Bug Fixes & UI Improvements
table_schemain MagicMapper) — @WilcoLouwerseArchival & Compliance Features
Platform Features
Documentation & Specs
Conflict Resolution
All merge conflicts were resolved manually:
createAuditTrailEntry()andfindByIdentifier()methodsTest plan
composer check:strictfor PHP quality🤖 Generated with Claude Code