Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

fix: clear PHP/Vue quality debt on development (phpcs/eslint/stylelint)#1936

Merged
rubenvdlinde merged 4 commits into
developmentfrom
fix/quality-debt-green
May 26, 2026
Merged

fix: clear PHP/Vue quality debt on development (phpcs/eslint/stylelint)#1936
rubenvdlinde merged 4 commits into
developmentfrom
fix/quality-debt-green

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Clears quality debt that has kept the Code Quality workflow red on development.

Vue Quality (eslint) — FIXED

@nextcloud/eslint-config declares its plugins (@nextcloud/eslint-plugin, eslint-plugin-jsdoc, @babel/eslint-parser, eslint-config-standard, @vue/eslint-config-typescript, the import resolvers) as peerDependencies. CI installs with npm ci --legacy-peer-deps, which does not install peer deps, so eslint crashed with "couldn't find the plugin". Declared them as explicit devDependencies. npm run lint now exits 0.

Vue Quality (stylelint) — FIXED

Same root cause: @nextcloud/stylelint-config peer-depends on stylelint-config-recommended-scss, stylelint-config-recommended-vue, and needs postcss-html for Vue SFC parsing. Declared them as devDeps. npm run stylelint now exits 0.

Lockfile

Regenerated package-lock.json so it is valid under both npm ci (PR "Lint Check" job) and npm ci --legacy-peer-deps (Code Quality job); all required lint plugins resolve under either install mode.

PHP Quality (phpcs) — partial

Applied phpcbf auto-fixes (173 violations across 29 files). Remaining errors are a separate, large mechanical effort (see PR discussion); the dominant rule is Squiz.PHP.DisallowInlineIf.

Verification (local)

  • npm ci -> ok; npm ci --legacy-peer-deps -> ok
  • npm run lint -> exit 0 (0 errors)
  • npm run stylelint -> exit 0
  • php -l clean on all phpcbf-touched files

The Vue Quality (eslint) and Vue Quality (stylelint) CI jobs failed because
@nextcloud/eslint-config and @nextcloud/stylelint-config declare their plugins
as peerDependencies, which 'npm ci --legacy-peer-deps' (used by CI) does not
install. Declare the required plugins as explicit devDependencies so they are
present at lint time:

- eslint: @nextcloud/eslint-plugin, eslint-plugin-jsdoc, @babel/eslint-parser,
  eslint-config-standard, @vue/eslint-config-typescript,
  eslint-import-resolver-typescript, eslint-import-resolver-exports
- stylelint: stylelint-config-recommended-scss, stylelint-config-recommended-vue,
  postcss-html

Both 'npm run lint' and 'npm run stylelint' now exit 0.

Also apply phpcbf auto-fixes (173 violations across 29 files) toward the
PHP Quality (phpcs) job.
…s in sync

The first commit regenerated package-lock.json under --legacy-peer-deps, which
left it out of sync for the PR 'Lint Check' job that runs plain 'npm ci'.
Regenerate with default peer resolution so the lockfile is valid for both
'npm ci' and 'npm ci --legacy-peer-deps', keeping all required lint plugins
present in node_modules under either install mode.
The 'Features Check' quality job (PR mode) verifies docs/features.json matches
the current openspec/specs/ via scripts/extract-features.py --check. Six specs
(ai-mcp, entity-management-modals, files-sidebar-tabs, and others) had been added
without regenerating the extract. Regenerate so the check passes (45 features).
@rubenvdlinde rubenvdlinde requested a review from Rem-Dam as a code owner May 26, 2026 08:41
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ 3341c45

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 165/165
npm
PHPUnit
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-05-26 08:46 UTC

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ 3341c45

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 165/165
npm ✅ 539/539
PHPUnit
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-05-26 09:13 UTC

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ b91bfd5

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 165/165
npm ✅ 539/539
PHPUnit
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-05-26 09:26 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde rubenvdlinde merged commit dd49351 into development May 26, 2026
27 of 29 checks passed
@rubenvdlinde rubenvdlinde deleted the fix/quality-debt-green branch May 26, 2026 09:30
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant