Когда WP Engine приобрела WPackagist 12 марта, сообщество WordPress‑разработчиков вновь столкнулось с привычным вопросом: что происходит, когда критически важная инфраструктура open source оказывается под корпоративным контролем?
Ответ у сообщества уже был в разработке. Четыре дня спустя WP Packages (ранее WP Composer) запустился как полностью независимая, финансируемая сообществом альтернатива — с рядом приятных дополнительных возможностей.
Проект создал Ben Words из Roots — команды, стоящей за Bedrock, Sage и Trellis. WP Packages — это новый open source репозиторий Composer для плагинов и тем WordPress. Composer — менеджер зависимостей для PHP, и именно через него многие профессиональные WordPress‑разработчики устанавливают и обновляют плагины и темы в своих проектах. Через WP Packages доступны все бесплатные плагины и темы из каталога WordPress.org. Миграцию с WPackagist можно выполнить одним скриптом или несколькими командами в терминале.
Что произошло и почему это важно
WPackagist был создан в 2013 году компанией Outlandish — цифровым кооперативом из Великобритании — и больше десяти лет обслуживал экосистему WordPress + Composer. В последние годы проект страдал от накопившегося техдолга, медленных циклов обновления и почти полного отсутствия участия сообщества. Когда WP Engine объявила о покупке, у разработчиков сразу возникли опасения: частная компания, поддерживаемая private equity, получает контроль над инфраструктурой, которая критична для рабочего процесса WordPress‑разработчиков. WP Engine сразу изменила поле Composer info, чтобы в терминале у разработчиков появлялась надпись «WPackagist is now maintained by WP Engine». Мелочь, но показательная: так корпоративное владение меняет отношения инструмента с его пользователями.
Ben начал строить замену WPackagist ещё в августе, задолго до того, как сделка стала новостью. Когда покупка произошла, он ускорил запуск и 16 марта вышел в прод с полностью open source репозиторием на GitHub.
Open source repo ≠ прозрачная система. WP Packages делает публичным всё, включая инфраструктуру и процесс сборки
Это ещё и просто более удобный инструмент. WP Packages поддерживает протокол metadata-url в Composer v2, который позволяет Composer запрашивать метаданные только для тех пакетов, которые реально нужны проекту. WPackagist по‑прежнему полагается на старый подход provider-includes и заставляет Composer скачивать крупные индекс‑файлы до разрешения зависимостей. «Холодное» разрешение зависимостей в WP Packages примерно в 17 раз быстрее: 0,7 секунды для 10 плагинов против 12,3 секунды у WPackagist.
WP Packages также использует CDN‑кэширование с публичными cache headers и раздаёт неизменяемые, адресуемые по содержимому файлы на пакет. Имена пакетов чище (wp-plugin/ и wp-theme/ вместо wpackagist-plugin/ и wpackagist-theme/). Метаданные включают авторов, описания и ссылки на домашние страницы плагинов/тем — то, чего WPackagist годами не хватало. Синхронизация обновлений происходит каждые пять минут, а не примерно раз в 90 минут, как у WPackagist.
Как перейти
Переход с WPackagist на WP Packages требует всего нескольких команд в терминале.
- Удалите существующие пакеты WPackagist:
composer remove wpackagist-theme/twentytwentyfive
- Удалите репозиторий WPackagist и добавьте WP Packages:
composer config --unset repositories.wpackagist && composer config repositories.wp-composer composer <https://repo.wp-packages.org>
- Подключите пакеты с новым неймингом:
composer require wp-theme/twentytwentyfive
Либо используйте migration script, чтобы автоматически обновить composer.json:
curl -sO <https://raw.githubusercontent.com/roots/wp-packages/main/scripts/migrate-from-wpackagist.sh> && bash migrate-from-wpackagist.sh
Roots также предоставляет WP Packages Changelog Action для GitHub‑воркфлоу, который отслеживает обновления зависимостей с новым форматом имён. Проекты на Bedrock уже «из коробки» используют WP Packages.
Open Source побеждает
Весь проект WP Packages открыт: код приложения, документация и даже полная конфигурация деплоя на Ansible доступны на GitHub. Любой может форкнуть репозиторий и поднять собственный реестр WordPress‑пакетов для Composer. Ben также публично пообещал, что WP Packages никогда не будет использовать поле Composer info для сообщений, рекламы или апсейлов в терминале разработчиков. Такое самоограничение проще обещать, когда проект отвечает сообществу, а не корпоративному владельцу.
Финансирование WP Packages идёт через GitHub Sponsors. Среди текущих спонсоров — Carrot, Kinsta, WordPress.com и Itineris. Экосистема WordPress всегда сильнее всего, когда сообщество открыто строит нужные ему инструменты. Ben увидел надвигающуюся дыру ещё за месяцы до того, как многие начали обращать внимание, сделал инструмент лучше существующего и отдал его всем. Без поглощения. Без решений «в переговорке» про доступность и цены. Просто разработчики решили проблему для других разработчиков — и поделились результатом. Open source побеждает.