Джек Слингерленд начал взламывать WordPress в 2008 году, но в последнее время его карьера увела его немного дальше, чем ему хотелось бы. Днем он работает старшим инженером-программистом в CA Technologies в Роли, работает с React/Redux, Node, ElasticSearch, Grails и Groovy. Но по ночам он занят созданием Kernl , службы, предоставляющей приватные обновления плагинов и тем для WordPress.
После добавления плагина в службу обновления, доставленные из Kernl, будут выглядеть точно так же, как обновления с WordPress.org.
«Основная функция Kernl — предоставление частных обновлений плагинов и тем для разработчиков WordPress. Тем не менее, меня вдохновляют наши отличительные черты», — сказал Слингерленд. «У нас есть проверка кода покупки (поэтому только авторизованные пользователи могут загружать обновления) и поддержка непрерывной интеграции (CI).
«Материал CI действительно удобен, потому что он позволяет разработчикам WP помещать свой код в GitHub или BitBucket, а затем автоматически упаковывать и развертывать его для своих клиентов. Конвергентную интеграцию традиционно было сложно реализовать в WordPress, потому что ваша «производственная» среда часто не поддается контролю», — сказал он. «Kernl решает эту проблему».
Идея создания Kernl пришла в Slingerland после того, как в предыдущие годы она работала с клиентами.
«Одна вещь, которая постоянно беспокоила меня, заключалась в том, как сложно было доставить исправления ошибок или обновления функций моим клиентам», — сказал он. «Я часто не управлял их сайтами, поэтому получение их обновлений требовало большого количества электронных писем и накладных расходов на общение.
«Первоначально у меня была идея для Kernl еще в 2011 году, но я никогда не реализовывал ее до прошлого года», — сказал Слингерленд. «Я надеялся, что смогу помочь другим людям решить ту же проблему, что и у меня».
Kernl был запущен в закрытой альфа-версии в мае 2015 года с ~65 пользователями альфа-версии. В ноябре он открыл его для публичного бета-тестирования, и сейчас у сервиса около 100 бета-пользователей. В настоящее время тестировщики тестируют Kernl:
- Kernl содержит 73 плагина и 43 темы (всего 117)
- Сервис обработал 4,07 млн проверок обновлений с мая
- Kernl обрабатывает около ~2 проверок статуса обновления в секунду
- С Kernl загружено 14 100 обновлений.
Как Kernl сравнивается с WP Pusher?
Я спросил Slingerland о том, насколько Kernl соответствует WP Pusher , который позволяет разработчикам развертывать темы и плагины WordPress из GitHub и Bitbucket.
«Kernl не требует, чтобы ваш конечный пользователь устанавливал что-либо, кроме вашего плагина/темы», — сказал Слинглерланд. «Если я правильно понимаю WP Pusher, вы сначала устанавливаете WP Pusher, а затем говорите WP Pusher управлять обновлениями для данного плагина/темы через его репозиторий контроля версий. Но это должно происходить при каждой установке конечного пользователя и может показаться сложным пользователям, не являющимся техническими специалистами.
«Kernl без проблем работает с вашим плагином/темой, как и те, которые установлены из репозитория WordPress.org. Благодаря этому установка и обновление кажутся знакомыми и органично вписываются друг в друга», — сказал он.
«У нас также есть проверка кода покупки, которая получит немного любви и API после того, как мы запустим ее. Kernl также поддерживает управление версиями вашего плагина/темы, поэтому промежуточные коммиты не отправляются случайным образом вашим клиентам».
Важность непрерывной интеграции
Одна из причин, по которой Slingerland создал Kernl, заключается в том, что он хочет помочь большему количеству разработчиков WordPress добавить непрерывную интеграцию в свои рабочие процессы. Этот конкретный аспект приложения (функция «push to build») представлял собой самую большую техническую проблему, но был одной из самых важных проблем, которые нужно было решить Kernl.
«Существует множество крайних случаев, которые я не предвидел, особенно после того, как я начал интегрироваться как с BitBucket, так и с GitHub», — сказал Слингерланд. «В этих случаях бета-тестеры оказали неоценимую помощь в поиске ошибок.
«Наличие надежного рабочего процесса непрерывной интеграции и развертывания действительно меняет ваше представление о разработке», — сказал он. «Вместо «большого взрыва» раз в квартал, когда выпускаются новые функции, становится проще повторять вашу идею. Быстро терпите неудачу, проверяйте свои идеи/изменения и повторяйте снова. Это большой вклад в методологию разработки Agile, и я чувствую, что сообществу плагинов/тем WordPress этого не хватает. Это также способствует хорошему тестированию, которое почти необходимо, если вы развертываете непрерывно».
Slingerland нацеливает Kernl на разработчиков, которые создают плагины и темы WordPress, не размещенные на WordPress.org. Несколько его пользователей бета-версии даже использовали сервис для распространения обновлений для своих собственных бета-тестеров, прежде чем опубликовать официальный выпуск на WordPress.org.
Kernl бесплатно размещает любой плагин или тему, если они имеют открытый исходный код и находятся в свободном доступе. Цены на коммерческие плагины и темы будут варьироваться от 5 до 25 долларов в месяц. Сервис можно использовать бесплатно в течение периода бета-тестирования, который планируется завершить в середине февраля.
Kernl не будет контролировать лицензирование продуктов
После дальнейшего расследования позиции Kernl в отношении лицензирования продуктов, которые он размещает, Slingerland заявляет, что не будет контролировать лицензирование своих клиентов. Это означает, что авторы тем и плагинов, не подпадающих под GPL, могут распространять свое программное обеспечение через его платформу. Поскольку темы и плагины являются производными от WordPress, они должны быть лицензированы по лицензии GPL.
Нежелание Slingerland контролировать программное обеспечение, не распространяемое под лицензией GPL, потенциально может превратить Kernl в улей для продуктов, нарушающих лицензию WordPress. Служба позволяет легко распространять программное обеспечение без GPL, которое маскируется в администраторе под обычные совместимые плагины/темы, когда дело доходит до обновлений.
Распространение программного обеспечения без GPL может стать препятствием для разработчиков WordPress, которые твердо относятся к GPL. GPL защищает свободу пользователей использовать и модифицировать программное обеспечение для любых целей, и многие разработчики построили свой бизнес и репутацию на соблюдении этой свободы.
Программное обеспечение, размещенное Kernl, может соответствовать или не соответствовать лицензированию GPL, и пользователь может никогда об этом не узнать. Это делает пользователя уязвимым, в отличие от официальных обновлений WordPress.org. Разработчики, не желающие полностью поддерживать платформу, потенциально способную распространять программное обеспечение, не распространяемое под лицензией GPL, могут поискать альтернативу.