Skip to content

Release: merge development into beta - #813

Open
github-actions[bot] wants to merge 12 commits into
betafrom
development
Open

Release: merge development into beta#813
github-actions[bot] wants to merge 12 commits into
betafrom
development

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated PR to sync development changes to beta for beta release.

Merging this PR will trigger the beta release workflow.

Reminder: Add a major, minor, or patch label to this PR to control the version bump. Default is patch.

@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ 1a9e668

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.

@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ 87127ed

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>
@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ cb83a25

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.

@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ ac7caa8

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>
@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ 4328a25

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.

@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ 4328a25

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>
@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ 0fa025f

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>
@github-actions

Copy link
Copy Markdown
Contributor Author

Quality Report — ConductionNL/decidesk @ ba2bcce

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.

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