Если вы, как и я:
- являетесь мэйнтейнером какой-либо библиотеки или фреймворка;
- ваша библиотека или фреймворк выпущены под какой-либо свободной лицензией
- ваша библиотека или фреймворк доступны к установке через Composer и размещены на сервисе Packagist;
то у вас, возможно, есть проблемы, о которых вы и не подозреваете.
Что случилось?
Некоторое время назад изменилась схема файла composer.json
Отныне в свойстве license
строго рекомендуется указывать лишь те идентификаторы лицензий, которые есть в Реестре открытых лицензий SPDX, либо писать proprietary
, если вы не планируете следовать какой-либо свободной лицензии.
Все пакеты, в composer.json
которых идентификатор лицензии указан иначе, чем в списке SPDX, перестали автоматически обновляться на Packagist
И в чем проблема?
Ранее большинство пакетов указывали вместо рекомендованного идентификатора лицензии просто её название.
Как было, например, у меня:
"license": "LGPL v.3",
Как теперь требуется:
"license": "LGPL-3.0-or-later",
Проблема в том, что пакеты просто молча перестают обновляться. Говорят, что авторам пакетов приходит сообщение на почту от Packagist. Я лично его не видел, возможно сам виноват — просмотрел или случайно запихнул в спам...
Что же делать?
Для начала зайдите на packagist.org на страницу своего пакета. Авторизуйтесь, как автор пакета, нажмите кнопку Update. Если в вашем пакете указана неверная (с точки зрения packagist) лицензия, вы увидите сообщение с примерно таким текстом:
Invalid package information:
License "LGPL v.3" is not a valid SPDX license identifier, see https://spdx.org/licenses/ if you use an open license.
If the software is closed-source, you may use "proprietary" as license.
Далее вам не остаётся ничего делать, кроме как обновить свойство license
в файле composer.json своего пакета, не забыть сделать это во всех ветках, создать новые теги версий и обновить пакет на Packagist.
Позаботьтесь о пользователях ваших пакетов — сделайте это сегодня!
Что почитать?
Комментарии (8)
Gemorroj
07.02.2018 14:31Не молча, мне на почту такое письмо пришло
The gemorroj/phpwhois package of which you are a maintainer has
failed to update due to invalid data contained in your composer.json.
Please address this as soon as possible since the package stopped updating.
It is recommended that you usecomposer validate
to check for errors when you
change your composer.json.
Below is the full update log which should highlight errors as
"Skipped branch ...":
[Composer\Repository\InvalidRepositoryException]: No valid composer.json was found in any branch or tag of https://github.com/Gemorroj/phpwhois, could not load a package from it.
Reading composer.json of gemorroj/phpwhois (master)
Skipped branch master, Invalid package information:
License "GPLv2" is not a valid SPDX license identifier, see https://spdx.org/licenses/ if you use an open license.
If the software is closed-source, you may use "proprietary" as license.AlexLeonov Автор
07.02.2018 14:39Да, я уже ответил выше в комментах, что возможно сам виноват — проглядел или в спам отправил случайно.
questor
08.02.2018 08:33А в статье нет и это не очень хорошо: не все читают комментарии, особенно когда их больше ста.
AlexLeonov Автор
08.02.2018 12:50Случайно нажал «отклонить» на комментарии от пользователя с низкой кармой. Простите меня :)
Был вопрос: как это скажется на пользователях библиотеки?
Ответ: если вы создадите новую версию путем задания ветки или тега на GitHub, эта версия не будет доступна к загрузке через composer. Старые версии продолжат устанавливаться.
E_STRICT
AlexLeonov Автор
Значит просмотрел или в спам попало. Сам виноват ))