Тестирование на соответствие требованиям минимальной версии Symfony

Для больших проектов, настройка версии пакета в Composer, не простая задача. Во-первых, есть много разных способов указания версии пакета. И конечно, вы должны проверить, что версия указанного пакета действительно работает при установке или обновлении проекта, специально под минимальные версии настроенного.

В целях повышения удобства тестирования компонентов на соответствие минимальным требованиям версии Symfony, Composer теперь включает в себя две новые опции:

  • --prefer-lowest: устанавливает минимально возможную версию для всех зависимостей.
  • --prefer-stable: устанавливает предпочтение  стабильным версиям зависимостей, это означает, что, в сочетании с предыдущей опцией, если используется версия ~ 2.4 то будет выбрана 2.4.0-stable а не допустим 2.4.0-alpha1.

Благодаря этим двум новым опциям, теперь очень легко проверить, действительно ли ваш проект работает на минимальных версиях пакетов указанных в нем:

$ composer update --prefer-lowest --prefer-stable

В проекте Symfony, при проверке что минимальные версии верны, важно обеспечить обратную совместимость для Symfony 2.3 (которая, является версией с долгосрочной поддержкой, и при этом очень часто используется для создания новых проектов Symfony) и обеспечить совместимость с Symfony 3 (которая будет использовать некоторые компоненты 2.x).

Вот почему в течение последних недель мы упорно трудились над проверкой и исправлением всех требований для версий пакетов всех компонентов и всех ветвей Symfony. Вы можете посмотреть изменения, внесенные в ветку 2.3, в ветку 2.5 и в ветку 2.6 (которые также применимы к 2.7 и мастер ветке).

Конечно, проверку версии пакета для частных проектов и приложений, наверное, делать не стоит, но если вы ведете какой-либо проект с открытым исходным кодом, то мы рекомендуем проверить и исправить свои версии пакетов. Вам, возможно, придется прибегнуть к методу проб и ошибок чтобы сделать это, так как этот процесс не может быть легко автоматизирован:

  • Установите ваш проект с опцией—prefer-lowest и проверьте, возникает ли какая-либо ошибка.
  • Запустите ваши тесты и проверьте ваш проект на наличие каких-либо ошибок или неудач.
  • Если нет ошибок, все правильно. Вы можете попробовать снизить версии пакетов, если вы хотите указать настолько минимальные версии зависимостей, насколько это возможно.
  • Если есть какие-либо ошибки, алгоритм следующий:
    • Прочитайте сообщение об ошибке, чтобы найти элемент, в котором возникла ошибка (класс, функцию метод и т.д.)
    • Найдите в репозитарии пакета этого элемента.
    • Выполнить команду git blame, чтобы найти тот коммит, в котором добавлен, изменен или удален этот элемент.
    • Посмотрите на минимальный тег версии, который содержит коммит. Это минимальная версия, требуемая для пакета!
  • Наконец, убедитесь, в соблюдение корректности всех внесенных изменений, используя свой сервер непрерывной интеграции. Попробуйте поискать вдохновение в файле .travis.yml  Symfony.

Источник: http://symfony.com/blog/testing-minimal-versions-of-symfony-requirements

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

2 × 3 =