Claude/zen archimedes og yfs - #257
Closed
verzog wants to merge 19 commits into
Closed
Conversation
Add GitHub Actions CI coverage for MOODLE_501_STABLE (PHP 8.2-8.4) and MOODLE_502_STABLE (PHP 8.3-8.4), add the Australia/Sydney timezone to the CI environment, and bump to version 2026051500 (5.2.0). https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
Drop MOODLE_401 to MOODLE_404 matrix entries; CI now covers 4.5 (current LTS) through 5.2 plus main. https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
The PHPCompatibility library was unbundled in 5.1.0 but its location remained in thirdpartylibs.xml. Moodle's grunt ignorefiles task stats every declared location and aborted on the missing directory, failing moodle-plugin-ci install (and cascading into every later step). Remove the dead entry and sync remaining versions with composer.lock. https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
Moodle main (5.3-dev) composer.json now requires php >=8.3.0, so the matrix's PHP 8.2 main jobs failed at "composer install". Bump the main lowest-PHP entries to 8.3. MOODLE_501_STABLE stays at 8.2 (its composer.json is >=8.2.0). https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
Moodle 5.2 and main (5.3-dev) require PostgreSQL 16; the pinned postgres:15 service failed their environment check early in moodle-plugin-ci install, so those jobs failed fast while 4.5/5.0/5.1 (which accept pg 15) progressed. Mirrors the earlier postgres:13->15 bump done for Moodle 5.1. https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
The codechecker CI step (phpcs --max-warnings 0) failed on every matrix job: the plugin's own code did not satisfy the stricter moodle-cs v3.7.0 sniffs bundled since 5.1.0 (multi-line call signatures, brace/operator spacing, long list syntax, etc.). Applied phpcbf; changes are formatting only, no behaviour change. phpcs is now clean and php -l passes on all touched files. https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
test_local_codechecker_find_other_files failed on Moodle 5.0+ with "Unknown named parameter $notmatches": four data sets used the key "notmatches" while the method parameter is $nomatches. PHPUnit 9 (Moodle 4.5) passed provider values positionally so the typo was harmless; PHPUnit 11 maps associative keys to named parameters, making it fatal. Normalised the four keys to "nomatches". https://claude.ai/code/session_0198QRrQfscGQYcRjAm49xwZ
Add Moodle 5.1 and 5.2 compatibility
The README badge hard-coded the moodlehq upstream repo URL, so a fork displayed upstream's CI status rather than its own. Repoint it to verzog/moodle-local_codechecker (pinned to main) so the badge reflects this fork's actual pipeline. https://claude.ai/code/session_012ifmDbPGCS3EL53ReLtfmU
Point CI badge at this fork instead of upstream
The web form used a Post/Redirect/Get flow that placed the filesystem path into the URL query string. nginx LFI/path-traversal WAF rules (e.g. YunoHost defaults) reject such requests with a 403 before they reach Moodle, making the tool unusable behind such a proxy. Handle the submission directly on the POST request instead, keeping the path in the request body. A GET fallback is retained for direct links. https://claude.ai/code/session_012ifmDbPGCS3EL53ReLtfmU
Trigger Moodle's upgrade/cache flow so the WAF 403 workaround and badge fix are picked up on pull. Adds the 5.2.1 changelog entry. https://claude.ai/code/session_012ifmDbPGCS3EL53ReLtfmU
Release 5.2.1: nginx/WAF 403 fix on check submit (PR #2 follow-up)
The form action was the bare /local/codechecker/ directory URL while the plugin registers and loads the page as /local/codechecker/index.php. Posting to the directory forced the web server to resolve the directory index itself - a different, stricter-permission path that returned a bare 403 Forbidden on submit when the plugin dir was not traversable by the web server user, even though the page loaded fine. Submitting to the explicit index.php endpoint makes the plugin self-sufficient and removes the need for any server-side permission patch. Bumps to 5.2.2. https://claude.ai/code/session_012ifmDbPGCS3EL53ReLtfmU
Release 5.2.2: submit check form to index.php (real 403 root-cause fix)
The on-screen help showed a single example path. Expanded it to a short list covering a plugin, a subplugin (e.g. tiny_bootstrap at lib/editor/tiny/plugins/bootstrap), an activity module and a single file, and noted that a component name maps to its directory. Bumps to 5.2.3. https://claude.ai/code/session_012ifmDbPGCS3EL53ReLtfmU
Release 5.2.3: add worked path examples to the check form help
Compiled from PR review across the verzog/moodle-* plugin suite
(codechecker, enrol/local/block/theme_educheckout, tiny_bootstrap,
local_freshdesk, datafield_gradeentry, local_imageblog).
Updates the baseline to Moodle 5.0-5.2 / PHP 8.2-8.4 and folds in the
new lessons surfaced by merged PRs:
- ubuntu-24.04 runner (22.04 retired)
- max_input_vars=5000 for PHPUnit
- Service-image pinning + install retry + gated later steps
- PHP 8.4 implicit-nullable parameter deprecation
- get_default_enrol_roles() for enrol-instance forms
- Enrol cost/currency on mdl_enrol; unformat_float; core_payment currency picker
- Pinning cross-plugin $plugin->dependencies; explicit ref: after main rename
- Block {block}.name unique-violation on migration
- N+1 query patterns (preload by id; single UPDATE ... REPLACE())
- Server-side JSON validation in external functions
- Stranded commits after merge; revert-PR risk
- Marketplace hygiene: LICENSE file, MATURITY_BETA, TERMS.md, install.php docs
- core/modal over TinyMCE windowManager; scoped file_picker_callback
- Payment-flow idempotency, account guard, server-side capacity checks
- null_provider for plugins that store no personal data
- $plugin->supported clashes with 'main' in the matrix
- CI badge points at the fork, pinned to main
https://claude.ai/code/session_01PTCkXxSg9PqPcEVSKtykTf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.