image


Если вы, как и я:


  • являетесь мэйнтейнером какой-либо библиотеки или фреймворка;
  • ваша библиотека или фреймворк выпущены под какой-либо свободной лицензией
  • ваша библиотека или фреймворк доступны к установке через 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)


  1. E_STRICT
    07.02.2018 14:10

    Говорят, что авторам пакетов приходит сообщение на почту от Packagist. Я лично его не видел.
    Приходят, обычно после каждого пуша.


    1. AlexLeonov Автор
      07.02.2018 14:16

      Значит просмотрел или в спам попало. Сам виноват ))


  1. 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 use composer 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.


    1. AlexLeonov Автор
      07.02.2018 14:39

      Да, я уже ответил выше в комментах, что возможно сам виноват — проглядел или в спам отправил случайно.


      1. questor
        08.02.2018 08:33

        А в статье нет и это не очень хорошо: не все читают комментарии, особенно когда их больше ста.


        1. AlexLeonov Автор
          08.02.2018 09:06

          Извините, но в статье есть


  1. AlexLeonov Автор
    08.02.2018 12:50

    Случайно нажал «отклонить» на комментарии от пользователя с низкой кармой. Простите меня :)

    Был вопрос: как это скажется на пользователях библиотеки?

    Ответ: если вы создадите новую версию путем задания ветки или тега на GitHub, эта версия не будет доступна к загрузке через composer. Старые версии продолжат устанавливаться.


    1. asilischev
      08.02.2018 14:32

      Спасибо =)