Repository navigation
CI: PHP-CS-Fixer, PHPUnit und rexstan - #27
Merged
Merged
Conversation
Rein mechanisch durch php-cs-fixer: Importe statt voll qualifizierter Namen, Konstanten vor Methoden, leere Konstruktoren einzeilig. Keine inhaltliche Aenderung; der komplette Test-Harness laeuft danach unveraendert gruen.
ChangeRequest::withStatus() und withPayloadEdited() reichen alle Konstruktorargumente positionell weiter. Bei der Einfuehrung von reviewedVia wurden beide nicht angepasst; ab appliedAt rutschte jedes Feld eine Stelle, createdAt landete in applyError. ChangeService::editPayload() - die Korrektur eines Vorschlags im Backend - scheiterte damit bei jedem Wunsch. Gefunden von rexstan. change-storage-test.php prueft jetzt, dass beide Kopien gebaut werden und alle Felder an ihrem Platz bleiben.
- PendingUploadStore: rawMsg() bekam ein float aus round() - MetaTarget: Traeger als self::CARRIER_* typisiert, damit match vollstaendig ist - ChangeService: Veto aus dem Extension Point als string|null typisiert, ungenutztes decodeIdList() entfernt (Rest der entfernten Modul-Liste) - ChangeRequestStore, ScopeRegistry, AuthorizationEndpoint, Router, settings: doppelte Pruefungen entfernt - ChangePayloadBuilder::describe(): optionalen Schluessel modules deklariert - Laufzeitpruefungen auf JSON-Eingaben bleiben, mit begruendetem @PHPStan-Ignore; mcp.scope-mapping: @var auf das, was POST garantiert
Drei Workflows, Unit-Tests unter tests/unit (24 Tests, ohne Netz), Werkzeuge in .tools/ mit eigenem composer.json. Anders als bei ycom kopieren die Workflows vendor/ mit, weil es eingecheckt ist und die Laufzeit-Abhaengigkeiten enthaelt; aus demselben Grund gibt es kein require-dev im AddOn selbst. installer_ignore haelt die Dev-Dateien aus dem Installer-Paket.
'2.*' liess rexstan 3.0-beta2 durch, weil eine Vorabversion vor 3.0 einsortiert wird; rexstan 3 kennt RexStanUserConfig nicht mehr unter dem alten Namen.
rexstan 2.0.36 brach in den parallelen Workern mit einem psr/log-Konflikt ab (eigenes 1.1.4 gegen 3.x aus dem REDAXO-Kern).
rexstan schliesst */vendor/* aus, auch beim Einlesen. Lokal mit PHPStan 1.12.12 (wie in rexstan 1.0.194) nachgestellt: scanDirectories scheitert daran, bootstrapFiles nicht.
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.
Code-Style, Unit-Tests und statische Analyse laufen jetzt in der CI, aufgebaut wie bei ycom und yform:
redaxo/php-cs-fixer-config. Der Code ist einmal komplett formatiert, in einem eigenen, rein mechanischen Commit.tests/unit, ohne Netz, in einer frisch installierten REDAXO-Instanz.Abweichung von ycom: Die Werkzeuge haben ein eigenes
composer.jsonin.tools/, und die Workflows kopierenvendor/mit. Hier istvendor/eingecheckt und enthält die Laufzeit-Abhängigkeiten. Einrequire-devim AddOn würde PHPUnit früher oder später in das ausgelieferte Paket bringen.installer_ignorehält die Dev-Dateien aus dem Installer.rexstan hat beim ersten Lauf einen echten Fehler gefunden: Einen Änderungswunsch vor der Freigabe zu bearbeiten, brach immer mit einem
TypeErrorab. Zwei Kopiermethoden inChangeRequestübergaben ihre Werte nach Einführung vonreviewedViaum eine Stelle verschoben. Behoben, mit Regressionstest im Harness und als Unit-Test; beide schlagen ohne den Fix fehl.Die übrigen Befunde waren doppelte Prüfungen und fehlende Typangaben. Laufzeitprüfungen auf JSON-Eingaben bleiben bestehen und sind mit einem begründeten
@phpstan-ignoremarkiert, statt in einer Baseline zu verschwinden.Der komplette Harness in
.claude/testsist nach jedem Schritt grün.Dieser Text wurde durch eine KI erstellt.