Skip to content

chore(nc35): Nextcloud 35 support - #195

Open
rubenvdlinde wants to merge 3 commits into
developmentfrom
claude/nc35-support
Open

rubenvdlinde wants to merge 3 commits into
developmentfrom
claude/nc35-support

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Part of the fleet-wide Nextcloud 35 rollout (see ConductionNL/decidiq#1616). Declares NC 32-35, nextcloud/ocp ^35.0, CI matrix derived from info.xml. Adds an NC35-safe OpenRegisterAutoloader (public IAppManager + spl_autoload_register; Nextcloud 35 removed \OC_App::registerAutoloading()) called first in Application::register(), so apps generated from the template start with the safe pattern. Admin template uses \OCP\Server.

Commits

  • chore(nc35): declare Nextcloud 35 support
  • feat(nc35): add an NC35-safe OpenRegister autoload prelude
  • refactor(nc35): resolve IInitialStateService via OCP\Server in admin template

Validation and open risks

Full unit suite OK on OCP 35 (35 tests incl. 5 new); phpcs 0 errors; phpmd clean.

Merge order

Land ConductionNL/openregister#4406 first (CI installs openregister development).

🤖 Generated with Claude Code

https://claude.ai/code/session_01M7DxSg7d7wqqZsUppLWf7J


Generated by Claude Code

claude added 3 commits October 6, 2026 09:34
- appinfo/info.xml: max-version 34 -> 35 (min stays 32, matching
  openregister's floor)
- composer.json: nextcloud/ocp ^34.0 -> ^35.0, composer.lock refreshed
  (ocp v35.0.1; pulls symfony/polyfill-php84/85/86 as ocp deps)
- code-quality.yml: drop the hard-coded nextcloud-test-refs override so
  the shared quality.yml derives the matrix (incl. stable35) from info.xml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M7DxSg7d7wqqZsUppLWf7J
…emplate

Apps generated from this template reference OCA\OpenRegister\ from
lib/, and `apptemplate` (like most app ids) sorts before `openregister`,
so OpenRegister's PSR-4 prefix is not registered yet when register()
runs. The fleet worked around that with \OC_App::registerAutoloading(),
which Nextcloud 35 removed.

Add OpenRegisterAutoloader (ported from decidiq / keepiq#712): registers
a PSR-4 loader for OCA\OpenRegister\ -> <openregister>/lib/ via
spl_autoload_register, using only public IAppManager::isEnabledForAnyone()
and getAppPath(). Never throws, never requires OpenRegister's vendor
autoloader, never calls loadApp(). Called first thing in
Application::register() so generated apps start from the safe pattern.

Unit test covers: no OC_App in code, registration + idempotency,
disabled -> false without touching getAppPath, never throws, and the
class-file mapping only answering for OCA\OpenRegister\.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M7DxSg7d7wqqZsUppLWf7J
\OC::$server is private API; \OCP\Server::get() is the public PSR
container accessor with identical semantics.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M7DxSg7d7wqqZsUppLWf7J
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/nextcloud-app-template @ 50b47bc

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-specs ✅
check-manifest ✅
format ✅
composer ✅ ✅ 106/106
npm ✅ ✅ 857/857
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ❌
Newman ❌
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ✅

Quality workflow — 2026-10-06 10:28 UTC

Download the full PDF report from the workflow artifacts.

Copy link
Copy Markdown
Contributor Author

CI triage for this PR:

Not caused by this PR. Three checks fail on the stable35 legs: PHPUnit (PHP 8.3, NC stable35, pgsql), PHPUnit (PHP 8.4, NC stable35, pgsql) and Integration Tests (Newman). All three abort before any test runs, with App "Open Register" cannot be installed because it is not compatible with this version of the server. The workflow installs openregister from ref: main as an additional app, and openregister does not declare Nextcloud 35 yet. Its NC35 support is ConductionNL/openregister#4406, which is not merged. These legs go green once that lands on the ref used here (main, so after it is promoted). The stable32–34 PHPUnit legs and all static checks pass.

Quality Report only aggregates these.


Generated by Claude Code

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.

2 participants