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

sync: development → documentation (SEO title fix #80) - #25

Merged
rubenvdlinde merged 6 commits into
documentationfrom
development
May 19, 2026
Merged

sync: development → documentation (SEO title fix #80)#25
rubenvdlinde merged 6 commits into
documentationfrom
development

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Sync development → documentation so the title-fix deploy fires.

Defense against supply-chain attacks (e.g. shai-hulud, nx-style
compromised publishes) by blocking install of any package version
published less than 24h ago.

- .npmrc: `min-release-age=1` (npm 11.5+ native; older npm ignores it)
- .github/dependabot.yml: `cooldown.default-days: 1`, with @conduction/*
  excluded so first-party releases reach our apps immediately

For release-day consumption of fresh @conduction/* deps, use
`npm install --min-release-age=0 @conduction/pkg@x.y.z`.
* fix(quality): clean development to 0 failing CI checks

Brings development from 6 failing required CI jobs (lint-check,
phpcs, Vue eslint, Vue stylelint, npm Security, npm License) to 0
failures, so the open PRs that rebase onto development can also
clear quality gates.

## Root causes

1. **package-lock.json out of sync** with peer-dep requirements.
   vue-apexcharts@1.7.0 requires apexcharts@>=4 while the app pins
   apexcharts@^3.54.1 for Vue 2. npm ci hit ERESOLVE on every PR,
   breaking 5 jobs that need node_modules.
2. **Missing transitive devDeps** — @nextcloud/eslint-config and
   @nextcloud/stylelint-config declare these as peerDeps, but
   legacy-peer-deps mode means they were never installed:
   eslint-plugin-import, eslint-plugin-n, eslint-plugin-jsdoc,
   eslint-plugin-promise, eslint-config-standard, postcss-html,
   stylelint-config-recommended-{scss,vue}, typescript, @babel/core,
   @babel/eslint-parser, @vue/eslint-config-typescript,
   eslint-import-resolver-exports, @nextcloud/eslint-plugin.
3. **eslint import/named** trips on exports-map subpaths inside
   @conduction/nextcloud-vue's nested @nextcloud/vue install.
   Disabled to match the other import/* rules already off.
4. **phpcs**: 7 violations in lib/Service/SettingsService.php
   (equals-align + one inline IF). 6 auto-fixed via phpcbf; the
   inline IF was expanded into a 4-line if/else.
5. **Auto-fixable lint**: 12 key-spacing + 1 max-attributes-per-line
   errors across DetailPageWrapper/IndexPageWrapper/KnowledgeTab,
   fixed via eslint --fix.

## What changed

- .npmrc: legacy-peer-deps=true with rationale comment
- package.json: 14 added devDeps
- package-lock.json: regenerated on Node 20 / npm 11
- eslint.config.js: import/named off
- lib/Service/SettingsService.php: phpcbf fixes + inline IF expansion
- 3 src/views/*.vue: eslint --fix

## Verification

- npm ci --dry-run: up to date in 3s
- npm run lint: 0 errors (0 warnings)
- npm run stylelint: 0 errors (2 deprecation warnings)
- vendor/bin/phpcs --standard=phpcs.xml: 12/12 files clean

* chore(dependabot): target development branch

Per ConductionNL convention: main is the protected production branch,
all feature/build work goes through development. Open dependabot PRs
that targeted main (e.g. #11) will need manual retarget; future PRs
will be raised against development.

* fix(quality): allow pako + sha.js compound AND licenses

pako (MIT AND Zlib) and sha.js (MIT AND BSD-3-Clause) are
transitive deps via webpack/babel toolchain — both component
licenses are on the default allowlist but the compound 'AND'
expression isn't parsed by the license-checker. Same pattern as
pipelinq and zaakafhandelapp.
Replace bare-brand Layout title with descriptive form that
includes the keyword payload. Docusaurus auto-appends the site
title as suffix, so SERPs no longer show duplicate brand titles.
fix(docs): descriptive homepage title (#80)
@rubenvdlinde
rubenvdlinde merged commit 480c880 into documentation May 19, 2026
29 checks passed
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