SUI-138: Restore RAG matrix cell and add MariaDB cross-DB run #104

Merged
johannes.moskaliuk merged 1 commit from dev/lars/SUI-138 into main 2026-08-04 19:49:32 +00:00

Was und warum

Der 2026-07-08 ergaenzte Katalogeintrag fuer local/literag hat nie eine
Matrixzelle erzeugt. Eine Gruppe laeuft nur auf Zweigen, die alle ihre
Plugins in version.php deklarieren — mod/elli stand in derselben Gruppe
rag und deckelt mit supported = [405, 501] bei Moodle 5.1, waehrend die
Matrix nur MOODLE_502_STABLE faehrt. Damit fielen local/literag,
local/ragingest und webservice/elediamcp still komplett aus der CI; der
Katalogtest hielt das sogar als Sollzustand fest.

  • mod/elli bekommt eine eigene Gruppe elli: ein gedeckeltes Plugin nimmt
    nur noch sich selbst aus der Matrix.
  • Uebersprungene Gruppen stehen jetzt als
    -> Ueberspringe <gruppe>/<zweig>: inkompatibel (...) im Matrix-Log, statt
    spurlos zu verschwinden.
  • Neuer Nachtjob crossdb: zweiter Install derselben Gruppe gegen MariaDB 11.4
    plus PHPUnit. Gruppenauswahl in CROSS_DB_GROUPS (aktuell rag), weil
    local\schema den Volltext-Index als GIN (PostgreSQL) bzw. FULLTEXT
    (MariaDB) fuehrt und der Retrieval-Pfad daran haengt.
  • DevFlow/README von LiteRAG nachgezogen: task04 erledigt, q02/q04 beantwortet,
    test03/test04 auf gruen, GitLab-Pipeline als Nachweisweg verworfen.

Checks

Beide Jobs lokal in Containern nachgestellt (moodle-plugin-ci 4.5.10,
Moodle 5.2.1, PHP 8.3):

Plugin MariaDB 11.4 PostgreSQL 16
local_literag OK, 78 Tests / 278 Assertions OK, 78 Tests / 278 Assertions
local_ragingest OK, 167 Tests / 380 Assertions OK, 167 Tests / 380 Assertions
webservice_elediamcp OK, 183 Tests / 998 Assertions OK, 183 Tests / 998 Assertions

moodle-plugin-ci install gruen auf beiden Datenbanken, phplint gruen fuer
alle drei Plugins, Exitcode 0 durchgehend (die gemeldeten
PHPUnit-Deprecations in ragingest/elediamcp brechen --fail-on-warning nicht).

Ausserdem gruen: scripts/ci-matrix-test.php (9 Zellen, 1 Cross-DB-Zelle),
scripts/runner-compat-test.php, scripts/check-repo-boundaries.sh,
php -l, git diff --check.

Restrisiko

  • Der erste echte Forgejo-Nachtlauf ist der externe Nachweis; lokal ist er nur
    nachgestellt. Der crossdb-Job ist ein hartes Gate.
  • Der rag-Stack laeuft mit diesem PR erstmals ueberhaupt in der reguleren
    CI-Matrix mit.
  • mod/elli bleibt ungetestet, bis es Moodle 5.2 deklariert — jetzt immerhin
    sichtbar im Matrix-Log statt still.

Refs SUI-138

## Was und warum Der 2026-07-08 ergaenzte Katalogeintrag fuer `local/literag` hat nie eine Matrixzelle erzeugt. Eine Gruppe laeuft nur auf Zweigen, die *alle* ihre Plugins in `version.php` deklarieren — `mod/elli` stand in derselben Gruppe `rag` und deckelt mit `supported = [405, 501]` bei Moodle 5.1, waehrend die Matrix nur `MOODLE_502_STABLE` faehrt. Damit fielen `local/literag`, `local/ragingest` und `webservice/elediamcp` still komplett aus der CI; der Katalogtest hielt das sogar als Sollzustand fest. - `mod/elli` bekommt eine eigene Gruppe `elli`: ein gedeckeltes Plugin nimmt nur noch sich selbst aus der Matrix. - Uebersprungene Gruppen stehen jetzt als `-> Ueberspringe <gruppe>/<zweig>: inkompatibel (...)` im Matrix-Log, statt spurlos zu verschwinden. - Neuer Nachtjob `crossdb`: zweiter Install derselben Gruppe gegen MariaDB 11.4 plus PHPUnit. Gruppenauswahl in `CROSS_DB_GROUPS` (aktuell `rag`), weil `local\schema` den Volltext-Index als GIN (PostgreSQL) bzw. FULLTEXT (MariaDB) fuehrt und der Retrieval-Pfad daran haengt. - DevFlow/README von LiteRAG nachgezogen: task04 erledigt, q02/q04 beantwortet, test03/test04 auf gruen, GitLab-Pipeline als Nachweisweg verworfen. ## Checks Beide Jobs lokal in Containern nachgestellt (moodle-plugin-ci 4.5.10, Moodle 5.2.1, PHP 8.3): | Plugin | MariaDB 11.4 | PostgreSQL 16 | |---|---|---| | `local_literag` | OK, 78 Tests / 278 Assertions | OK, 78 Tests / 278 Assertions | | `local_ragingest` | OK, 167 Tests / 380 Assertions | OK, 167 Tests / 380 Assertions | | `webservice_elediamcp` | OK, 183 Tests / 998 Assertions | OK, 183 Tests / 998 Assertions | `moodle-plugin-ci install` gruen auf beiden Datenbanken, `phplint` gruen fuer alle drei Plugins, Exitcode 0 durchgehend (die gemeldeten PHPUnit-Deprecations in ragingest/elediamcp brechen `--fail-on-warning` nicht). Ausserdem gruen: `scripts/ci-matrix-test.php` (9 Zellen, 1 Cross-DB-Zelle), `scripts/runner-compat-test.php`, `scripts/check-repo-boundaries.sh`, `php -l`, `git diff --check`. ## Restrisiko - Der erste echte Forgejo-Nachtlauf ist der externe Nachweis; lokal ist er nur nachgestellt. Der `crossdb`-Job ist ein hartes Gate. - Der `rag`-Stack laeuft mit diesem PR erstmals ueberhaupt in der reguleren CI-Matrix mit. - `mod/elli` bleibt ungetestet, bis es Moodle 5.2 deklariert — jetzt immerhin sichtbar im Matrix-Log statt still. Refs SUI-138
ci(literag): restore RAG matrix cell and prove cross-DB on MariaDB
Some checks failed
Repo-Gates / gates (push) Failing after 24s
PHPCS quality / PHPCS ratchet (push) Successful in 33s
PHPCS quality / PHPCS full scan (push) Has been skipped
Repo-Gates / gates (pull_request) Failing after 24s
Moodle Plugin CI / changes (pull_request) Successful in 25s
PHPCS quality / PHPCS full scan (pull_request) Has been skipped
PHPCS quality / PHPCS ratchet (pull_request) Successful in 34s
Repo-Gates / Notify CI-Fixer (push) Has been skipped
PHPCS quality / Notify CI-Fixer (push) Has been skipped
Repo-Gates / Notify CI-Fixer (pull_request) Has been skipped
Moodle Plugin CI / subscription (MOODLE_502_STABLE) (, , subscription, MOODLE_502_STABLE, local/elediaai_subscription) (pull_request) Successful in 4m19s
Moodle Plugin CI / tutor (MOODLE_502_STABLE) (, , tutor, MOODLE_502_STABLE, blocks/elediaai_tutor) (pull_request) Successful in 4m53s
Moodle Plugin CI / chat (MOODLE_502_STABLE) (, local/elediaai_core, chat, MOODLE_502_STABLE, blocks/elediaai_chat mod/aichat mod/aifeedback) (pull_request) Successful in 4m46s
Moodle Plugin CI / rag (MOODLE_502_STABLE) (, local/elediaai_core local/elediaai_tutor_premium, rag, MOODLE_502_STABLE, local/literag local/ragingest webservice/elediamcp) (pull_request) Successful in 5m37s
Moodle Plugin CI / Behat chat (MOODLE_502_STABLE) (, local/elediaai_core, chat, MOODLE_502_STABLE, blocks/elediaai_chat mod/aichat mod/aifeedback, @mod_aichat) (pull_request) Has been skipped
Moodle Plugin CI / Behat tactics (MOODLE_502_STABLE) (lernhive, , tactics, MOODLE_502_STABLE, local/elediaai_tactics blocks/elediaai_tactics, @local_elediaai_tactics,@block_elediaai_tactics) (pull_request) Has been skipped
Moodle Plugin CI / authoring (MOODLE_502_STABLE) (, local/elediaai_core, authoring, MOODLE_502_STABLE, local/elediaai_questiongen local/elediaai_coursegen qbank/elediaai_questiongen local/elediaai_h5pauthor qtype/aitext) (pull_request) Successful in 5m13s
PHPCS quality / Notify CI-Fixer (pull_request) Has been skipped
Moodle Plugin CI / tactics (MOODLE_502_STABLE) (lernhive, , tactics, MOODLE_502_STABLE, local/elediaai_tactics blocks/elediaai_tactics) (pull_request) Successful in 4m36s
ci-fixer/error Moodle CI core (MOODLE_502_STABLE): No syntax error found There was 1 failure: Failed asserting that two strings are identical.
Moodle Plugin CI / core (MOODLE_502_STABLE) (customerportal, local/elediaai_core qtype/aitext, core, MOODLE_502_STABLE, ai/provider/eledia local/activityfilter local/aitransparency auth/eledia_eduplaces admin/tool/taskrunner customfield/field/languageselect filter/eledia… (pull_request) Failing after 8m5s
Moodle Plugin CI / tutor-with-quota (MOODLE_502_STABLE) (, local/elediaai_core, tutor-with-quota, MOODLE_502_STABLE, blocks/elediaai_tutor) (pull_request) Successful in 8m28s
Moodle Plugin CI / learning (MOODLE_502_STABLE) (lernhive, local/elediaai_core mod/aichat, learning, MOODLE_502_STABLE, local/elediaai_selfstudy local/elediaai_strategy local/elediaai_teachertools local/elediaai_tutor_premium blocks/elediaai_path) (pull_request) Successful in 5m20s
Moodle Plugin CI / Notify CI-Fixer (pull_request) Has been skipped
1c53724b34
The dedicated `local/literag` catalog entry added on 2026-07-08 never produced
a matrix cell. A group only runs on branches every one of its plugins declares,
and `mod/elli` shared the `rag` group while capping `supported` at Moodle 5.1 —
so `local/literag`, `local/ragingest` and `webservice/elediamcp` silently
dropped out of CI entirely, with the catalog test asserting that as intended.

Give `mod/elli` its own group so a capped plugin only removes itself, and log
every group/branch pair that is skipped as incompatible instead of letting it
disappear from the matrix without a trace.

Cross-database evidence now comes from this workflow rather than the standalone
repo's GitLab pipeline: the nightly `crossdb` job installs the groups listed in
CROSS_DB_GROUPS a second time against MariaDB and runs their PHPUnit suites.
LiteRAG needs it because `local\schema` maintains its full-text index as GIN on
PostgreSQL and FULLTEXT on MariaDB, and retrieval depends on that branch.

Verified locally by replaying both jobs in containers (moodle-plugin-ci 4.5.10,
Moodle 5.2.1, PHP 8.3): install, phplint and phpunit green for all three group
plugins on MariaDB 11.4 and PostgreSQL 16; local_literag 78 tests / 278
assertions on both. scripts/ci-matrix-test.php, runner-compat-test.php and
check-repo-boundaries.sh green.

Refs SUI-138
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
johannes.moskaliuk/eledia.ai!104
No description provided.