NeoFrag Reborn öffnet sich auf GitHub. Der Code des CMS (NeoFragReborn/neofrag), die Addons à la carte (NeoFragReborn/extensions) und der Discord-Bot (NeoFragReborn/bot-discord) werden dort mit der Geschichte ihrer Versionen veröffentlicht — seit 1.0.0 für das CMS und die Addons, seit 0.1.0 für den Bot: der Code jeder Version, ihre Hinweise und die Pakete ab 1.2.23.
Geändert
- Die angegebenen Datenbanken sind die getesteten: Jede Version installiert sich und besteht ihre ganze Testsuite, mit PHP 8.2 und 8.5, auf MySQL 5.7, 8.0 und 8.4 und auf MariaDB 10.5, 10.6, 10.11, 11.4 und 11.8 — der Installationsleitfaden nennt diese Versionen, und nicht mehr „5.7+“ und „10.5+“.
- Die Leitfäden sagen, wo man das Projekt findet: das Installationspaket und das Archiv des Bots auf ihrer Seite
der Versionen, die Addons à la carte und ihren Katalog auf der von
extensions, den Code für alle, die beitragen wollen. Im Wiki führen Verweise auf ein Dokument des Repositorys (Bereitstellung, Architektur, Werkzeuge) zu diesem Dokument auf GitHub, statt nur seinen Titel zu behalten.
Behoben
- Die Einstellungen der Module öffnen sich wieder: Das Fenster „Konfiguration“ der Module Forum, Rekrutierung, News, Galerie, Ereignisse, Kalender und Artikel antwortete bei jedem Öffnen „Fehler 500“, auf jeder Website, seit der 1.2.0: Das Feld „Zahl“ lehnte eine Ganzzahl ab (seine Schrittweite und den aus der Datenbank gelesenen Wert), seit der Code auf strikte Typisierung umgestellt hat.
- Teams: Die Option „Gespielte Matches anzeigen“ lässt sich wieder abwählen. Das Speichern der Einstellungen schrieb das Wort „Array“ statt eines Ja oder Nein, was immer als „Ja“ gelesen wurde.
- Die Einstellungen eines nie konfigurierten Authentifizierungsdienstes (Google, Discord, GitHub) öffnen sich, ohne acht Warnungen ins Protokoll zu schreiben.
- Das Dashboard und die Statistiken einer Website ohne Artikel, Bugtracker oder Forum schreiben nicht mehr bei jedem Öffnen Warnungen ins Protokoll: Die Karten dieser Module erscheinen nur, wenn sie installiert sind, und keine fehlende Tabelle wird mehr abgefragt.
- Der Installationsassistent liest die Konfiguration, die er gerade geschrieben hat, neu: Bei einem Hoster, dessen
PHP-Cache Dateien nicht erneut prüft, las ein zweiter Versuch des Schritts „Datenbank“ noch die alte
config/db.php. - Eine aus git bereitgestellte und über den Web-Assistenten installierte Website funktioniert: Der Assistent schrieb
config/neofrag.phpnicht (das Paket trägt sie, ein Klon hat nur ihre Vorlage), und jede Seite antwortete „Fehler 500“, ohne eine einzige Zeile im Protokoll. - Das Beispiel
nginx.confstartet: Die Regel für TinyMCE, ohne Anführungszeichen, ließ nginx die ganze Konfiguration ablehnen („missing closing parenthesis“). Seine Umleitungen tragen nicht mehr den internen Parameterrequest_url. - Hochgeladene Dateien werden unter Apache mit PHP als Modul ausgeliefert: Der Schutz von
upload/verwendete eine in einer.htaccessverbotene Direktive, und dieser ganze Ordner — Avatare, Galerie, Mediathek — antwortete „Fehler 500“. - Unter Caddy werden hochgeladene Dateien, die keine Bilder sind (ein PDF der Mediathek), ausgeliefert: Das Beispiel lieferte nur Bilder aus.
/index.phpführt zur Startseite (dauerhafte Umleitung) statt zu einer nicht gefundenen Seite; und eine Adresse mit einer Endung, die keine Seite ausliefert (/newsletter/.env, das Bots versuchen), antwortet 404, ohne eine Anomalie ins Protokoll zu schreiben.tools/check-all.phpunter PHP 8.2: Jede Prüfung zählte dort als Fehlschlag, auch wenn sie bestand — der Rückgabecode wurde einmal zu oft gelesen, was PHP erst ab 8.3 erlaubt. Für alle, die unter PHP 8.2 beitragen.
Sicherheit
- Der Installationsassistent öffnet sich nicht mehr auf einer installierten Website, deren Datenbank nicht
antwortet. War die Sperre
install/db.txtverschwunden, öffnete ein vorübergehender Ausfall der Datenbank den Assistenten wieder, dessen Schritt „Datenbank“config/db.phpneu schreibt: Ein Besucher hätte die Website dann auf seine eigene Datenbank umleiten können. Die Website zeigt jetzt „vorübergehend nicht verfügbar“. Und der Schritt „Administrator“ weigert sich, ein Konto anzulegen, sobald die Website eines hat. - Apache führt jetzt nur noch die
index.phpim Stammverzeichnis aus: Die Umschreiberegel ließ jede Dateiindex.phpeines Unterordners direkt laufen (mehr als achtzig interne Controller).
Hinzugefügt
- Vier weitere Prüfungen:
check-assistantdurchläuft den Installationsassistenten von Anfang bis Ende, wie ein Besucher, für jedes Profil (Bildschirme, Ablehnungen, angelegtes Konto, Anmeldung mit dem eingegebenen Passwort, stilles Protokoll);check-reglagesöffnet den Einstellungsbildschirm jedes Addons, speichert ihn unverändert und öffnet ihn erneut;check-serveur-webtestet Apache, nginx und Caddy mit den mitgelieferten Konfigurationen, indem es Sonden platziert (verbotene Ordner und Dateien, Skripte, die nicht laufen dürfen, Umschreibung, Sicherheits-Header);check-nouveau-venufolgt der README und dem Leitfaden für Mitwirkende wortwörtlich auf einer sauberen Maschine. Die Workflowsinstallation.ymlundnouveau-venu.ymlführen sie jede Woche erneut aus. - Die Befehle der README funktionieren auf einer frischen Maschine: Ihr Block „Entwickeln“ endete mit einer
Testsuite, die mangels Testdatenbank fehlschlug; er verweist jetzt auf den Leitfaden für Mitwirkende, der diese
Datenbank anlegt (
php tools/prepare-test-db.php).