W jednym z najbardziej kontrowersyjnych posunięć ustrojowych w historii web developmentu WordPress.org powołał się na punkt 18 regulaminu repozytorium wtyczek, przejmując slug advanced-custom-fields – wtyczki aktywnej na ponad 5 milionach instalacji – i zastępując ją własnym forkiem pod nazwą Secure Custom Fields (SCF).
Ruch ten całkowicie pominął dotychczasowych opiekunów wtyczki z WP Engine, odcinając ich od kanału aktualizacji i kierując własny kod do milionów stron:
- Przejęcie repozytorium: WordPress.org wykorzystał uprawnienia administracyjne, by sforkować darmową bazę kodu, wyciąć odnośniki komercyjne oraz integracje z wersją Pro i serwować nowy fork bezpośrednio pod dotychczasowym identyfikatorem.
- Wymuszone auto-aktualizacje: Witryny z włączonymi automatycznymi aktualizacjami w tle pobrały kod rozwijany przez zupełnie nowy zespół bez jawnej zgody administratorów serwisów.
- Rozdwojenie kanałów dystrybucji: W odpowiedzi WP Engine uruchomiło niezależny serwer aktualizacji, zmuszając programistów do ręcznego przepinania źródeł pakietów lub kluczy licencyjnych, by pozostać na kanonicznym wydaniu ACF.
- Zwrot ku Composerowi: Ekosystem zareagował przyspieszoną migracją na instalacje zarządzane przez Composera i przypinaniem sztywnych wersji pakietów z pominięciem publicznego API WordPress.org.
The StackCompass Framing
Z perspektywy inżynierii oprogramowania i architektury systemów enterprise wydarzenie to bezpowrotnie zburzyło model zaufania do publicznego repozytorium WordPress.org. Traktowanie centralnego katalogu wtyczek jako neutralnego menedżera pakietów okazało się strategicznym błędem.
Gdy operator repozytorium może jednostronnie podmienić kod krytycznej zależności produkcyjnej, automatyczne aktualizacje w locie przestają być wygodą, a stają się bezpośrednim zagrożeniem dla łańcucha dostaw (supply chain vulnerability). Środowiska produkcyjne w WordPressie wymagają standardów znanych z innych ekosystemów: ścisłego pinowania zależności w composer.json, własnych serwerów lustrzanych (Satis, Private Packagist) oraz całkowitego zablokowania automatycznych aktualizacji w locie na serwerach produkcyjnych.
Źródło: WordPress.org