Если вы являетесь разработчиком WordPress, который использует Composer без непрерывной интеграции, то, скорее всего, вам предстоит важный шаг — выяснить, как управлять каталогом поставщиков при развертывании ваших плагинов.
То есть:
- Мы знаем, что ставить весь каталог поставщика под контроль исходного кода — плохая идея,
- Другие разработчики, знакомые с использованием Composer, смогут приступить к работе без дополнительных инструкций.
- Непрерывная интеграция не используется по ряду причин,
- И у нас остается необходимость предоставить результат производственного уровня, который использует одни зависимости, но не другие.
Как бы вышеизложенные пункты ни описывали нашу ситуацию, они не говорят нам, что мы можем с ней сделать.
Другими словами, вот пример использования: вы создали плагин WordPress для кого-то. Этот плагин использует множество зависимостей, все из которых поддерживаются Composer.
Вы не проверяете каталог поставщика в репозитории, но вы также не используете непрерывную интеграцию для развертывания плагина. Вместо этого клиент или третье лицо.
Что тогда?
Распространение с помощью Composer без непрерывной интеграции
Краткая версия такова:
Экспортируйте ветку master (или ветку выпуска, или как вы ее называете) из вашей локальной копии плагина, затем убедитесь, что вы запускаете команду Composer, которая дает указание создать каталог поставщика без зависимостей уровня разработки.
Затем вы можете собрать сгенерированный архив и передать его вашему клиенту.
Но как?
Во-первых, я предполагаю, что локальная копия вашего плагина не имеет копии каталога поставщика, но имеет весь последний код, извлеченный из удаленного репозитория.
То есть у вас есть последняя, стабильная версия кода, готовая к выпуску, но вы еще не готовы сделать это, потому что у нее нет необходимых зависимостей, скажем, для автозагрузки и других подобных функций.
Первым шагом будет экспорт локального репозитория в архив. Вот как вы можете это сделать, перетащив его на рабочий стол:
$ git archive -o ~/Desktop/plugin-name.zip HEAD
Затем попросите Composer установить зависимости, которые находятся за пределами директивы require-dev в вашем composer.jsonфайле:
$ composer install --no-dev
Теперь вы можете заархивировать сгенерированный каталог в плагин и распространять этот файл.
Это идеал?
Я бы не сказал, что это идеально, но это решение для варианта использования, который определенно существует, поэтому я бы сказал, что это то, что можно сделать для решения конкретной проблемы.
В конечном счете, если вы ищете способ распространения плагина WordPress, использующего Composer, без непрерывной интеграции, это способ сделать это.
Я признаю, однако, что это конкретный вариант использования и, следовательно, имеет конкретное решение.