Release: merge development into beta - #813
Conversation
…60821043606 chore(release): 1.0.1-unstable.20260821043606
…60821045501 chore(release): 1.0.1-unstable.20260821045501
…60821051111 chore(release): 1.0.1-unstable.20260821051111
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ❌ | ||||
| Playwright | ❌ | ||||
| Hydra gates | ❌ |
Quality workflow — 2026-08-21 05:28 UTC
Download the full PDF report from the workflow artifacts.
…60821052845 chore(release): 1.0.1-unstable.20260821052845
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ❌ | ||||
| Hydra gates | ❌ |
Quality workflow — 2026-08-21 05:46 UTC
Download the full PDF report from the workflow artifacts.
Supersedes the dependabot PR, which failed `PHP Quality (phpcs)` with:
Script ./vendor/bin/phpcs --standard=phpcs.xml ... returned with error code 3
Exit 3 is a phpcs PROCESSING failure, not a verdict on the code. Reading it as a
phpcs-4 policy change (warnings starting to fail the build) and reaching for
`ignore_warnings_on_exit` would have suppressed a real breakage and left the
sniffs half-running.
The lockfile, not the sniffer
-----------------------------
The bump itself is fine. What differed was everything around it:
dependabot branch: conduction/hydra-gates v1.8.0 + php_codesniffer 4.0.4
development: conduction/hydra-gates v1.8.2 + php_codesniffer 3.13.6
this branch: conduction/hydra-gates v1.8.2 + php_codesniffer 4.0.4
hydra-gates v1.8.0 predates phpcs 4 and its sniffs cannot load under it.
Dependabot branched before v1.8.2 landed, so its lockfile pinned the older gates
package and carried it forward -- the bump was being tested against a sniff
bundle that no longer matches the sniffer. pipelinq's dependabot bump failed the
same way, from the same v1.8.0 pin.
Rebuilding the same bump on current development is the whole fix. Nothing in
phpcs.xml or the composer scripts changes, and no warning is suppressed: the 116
`@spec` warnings are still reported, exactly as on development today, and still
do not fail the build.
Verified locally against the exact CI invocation
------------------------------------------------
`./vendor/bin/phpcs --standard=phpcs.xml`, not a summary report -- report format
changes what is printed, and it is easy to "confirm" a pass with the wrong one.
phpcs 3.13.6 on development: 0 errors / 116 warnings in 108 files, exit 0
phpcs 4.0.4 on this branch: 0 errors / 116 warnings in 108 files, exit 0
Same counts, same exit, different sniffer -- what a clean linter major should
look like.
phpstan No errors
psalm No errors
phpmd exit 0
phpunit 1153 tests, 4573 assertions, 0 failures
Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ❌ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ❌ | ||||
| Hydra gates | ❌ |
Quality workflow — 2026-08-21 06:00 UTC
Download the full PDF report from the workflow artifacts.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-21 06:48 UTC
Download the full PDF report from the workflow artifacts.
#815) * style: apply php-cs-fixer across lib/ and tests/ (no behaviour change) `composer cs:check` was red on 119 files. The fixer is wired into no workflow, so this had drifted silently — running it now brings the tree to the standard the repo declares. The ruleset is exactly Nextcloud's: `Conduction\CodingStandard\Config` extends it and its ADDITIONS array is EMPTY by design, because every rule the fleet wants beyond Nextcloud's is semantic rather than typographic and lives in PHP_CodeSniffer instead. So this can only move whitespace and syntax, never meaning. Verified rather than assumed, because an autofix CAN change meaning: * `git diff -w` (whitespace-blind) is NOT empty — 110 files — so the run did make token-level changes, and they were inspected rather than waved through. Every one falls into three groups: `use` statements REORDERED (identical text, moved lines), trailing commas added to multi-line signatures (PHP 8.0+; CI runs 8.3 and 8.4), and promoted constructor properties split across lines. No comparison operators, no `declare(strict_types)` insertion, nothing semantic. * All 119 changed files parse (`php -l`). * Suite identical before and after: 1153 tests, 4573 assertions, 0 failures — the same counts, which is what a typographic change should produce. * phpmd, psalm, phpstan all exit 0. `cs:check` now exits 0. `composer phpcs` still exits 1, unchanged by this commit and expected: the 108 SPDX-header `InvalidEndChar` warnings are DELIBERATE. A full stop after `SPDX-License-Identifier: EUPL-1.2` makes it a different, invalid identifier and breaks REUSE, so hydra-gates' shared ruleset downgrades that one code to a warning on purpose. CI counts errors only. * fix(style): keep the @return prose out of the tag so phpcs and the fixer agree The sweep introduced ONE phpcs error, caught by CI and confirmed by measuring both branches: development has 0 files with errors, the sweep branch had 1. php-cs-fixer's docblock aligner indents a tag description to clear the longest type on the block. Behind HealthController::engineBody()'s 88-character `array{...}|null` shape that lands at column 95, producing a 162-character line — over phpcs's 150-character budget, which the shared ruleset adds deliberately because Nextcloud enforces no line length at all. The two tools genuinely disagree here, so the fix is to remove what they disagree about: the prose moves into the docblock body, leaving the tag with nothing to over-align. Verified against BOTH tools and against the baseline: phpcs errors 0 (same as development), php-cs-fixer clean (exit 0), warnings still 108 (unchanged — those are the deliberate SPDX ones REUSE requires), suite green. --------- Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ❌ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-21 07:46 UTC
Download the full PDF report from the workflow artifacts.
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-21 08:25 UTC
Download the full PDF report from the workflow artifacts.
) `development` is red on one E2E test: "Display preferences: default view Meetings redirects the app root to the meetings list" timed out at 20s. It is mis-budgeted, not slow. The suite's 20s cap is calibrated in playwright.config.ts as "2.6× the slowest observed pass", which holds for a test that loads one page and asserts. This one cannot: proving a REDIRECT PREFERENCE needs the settings panel plus three full app navigations — save, app root, deep link — and those alone cost ~16s of the 20. The evidence that it is load and not defect: the same commit range passed at 05:54 and timed out at 07:08 with no code change between, and the test's own comment records an earlier round of exactly this, where the restore step was moved off the UI and onto the API to buy back a fourth page load. test.slow() triples the budget for THIS test only. The global cap is untouched, so every other failure still costs 20s rather than 60, and `retries: 0` stays — nothing here can convert a red into a green. Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-21 09:27 UTC
Download the full PDF report from the workflow artifacts.
hydra-gates v1.8.2 -> v1.8.2 nc-vue 2.8.2 -> 2.9.2 Lock-only: both packages are already declared with caret ranges that permit these versions, so nothing about what this app ACCEPTS changes - only what it currently resolves to. Opened by the weekly fleet shared-dependency bump, because a lock nobody re-resolves is a pin nobody chose. Merging is gated by this repository's own suite, deliberately: taking hydra-gates v1.8.1 added patchObject() to a published interface, which is a load-time fatal for any concrete double that implements it without the method. CI is the only thing that can tell a safe bump from that. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Quality Report — ConductionNL/decidesk @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-nav-ceiling | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| composer | ✅ | ✅ 104/104 | |||
| npm | ✅ | ✅ 538/538 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-21 12:09 UTC
Download the full PDF report from the workflow artifacts.
Automated PR to sync development changes to beta for beta release.
Merging this PR will trigger the beta release workflow.