VulCode

Pelican Panel: nasze zmiany w projekcie open source

Panel do zarządzania serwerami gier na Laravelu i Dockerze, fork Pterodactyla.

Język
PHP
Gwiazdki na GitHubie
2375
Strona projektu
pelican.dev
2przyjęte zmiany
Od 25.09.2026 do 10.10.2026.
42. miejsce wśród 64 projektów na GitHubie z naszymi zmianami, według gwiazdek. Pierwszy jest Zed (91 587).

Zmiany przyjęte w Pelican Panel

Aktualizacja pluginu nie kończy się błędem po odświeżeniu wierszy i nie zostawia pluginu odinstalowanego.

Jak sprawdziliśmy zmianę #2598

Doszedł test integracyjny udanej aktualizacji: udawane pobranie paczki z nową wersją, aktualizacja i sprawdzenie stanu pluginu po niej. Na gałęzi main sprzed poprawki ten test kończy się dokładnie tym samym błędem, który opisywało zgłoszenie.

PHP

Nasze projekty w tej technologii, ich ekrany i to, kiedy ją wybieramy.

Błąd, poprawka i wniosek

Skrót naszego opisu z Nowinek technicznych: co nie działało, co zmieniliśmy i co z tego wynika dla naszej pracy.

Co nie działało

Aktualizacja pluginu kończyła się błędem

Po pobraniu nowej wersji updatePlugin() wywoływał refreshRows(), który zeruje połączenie Sushi, a potem refresh() na starej instancji modelu. Aktualizacja z panelu padała na błędzie query() on null.

Co zmieniliśmy

Rekord pobierany od nowa

Kod pobiera plugin od nowa przez Plugin::findOrFail(), tak jak robią to zadania pluginów w tym projekcie, a API odsyła świeży obiekt.

Plugin::refreshRows();
$plugin = Plugin::findOrFail($plugin->id);
Czego nas to nauczyło

Aktualizacja, która w połowie drogi pada, nie może zostawić systemu w gorszym stanie niż przed nią.

To samo sprawdzamy w aktualizacjach paneli, które budujemy.

Inne projekty z naszymi zmianami: PHP

20 projektów w tej technologii ma nasze przyjęte zmiany. Pasek to gwiazdki repozytorium, obok liczba naszych zmian. Każdy wiersz prowadzi do strony projektu.

Pytania o nasze zmiany w Pelican Panel

Skąd są te zmiany, kto je przyjął i czy poprawimy coś w Twojej bibliotece.

Używasz Pelican Panel w swoim projekcie?

Jeśli coś w nim nie działa, poprawimy to u źródła i zostawimy obejście do czasu wydania. Odpiszemy w godzinę.