Рубрики
Без рубрики

Получить композитор устаревшие пакеты без установки

Недавно я хотел получить список прямых зависимостей в нашем исходном коде PHP, устаревшим. плавник… Помечено PHP, Python, производительность.

Недавно я хотел получить список прямых зависимостей в нашем исходном коде PHP, устаревшим. конечный результат

Начальная мысль управляла зависимостями, пока он открывает PR Для каждой незначительные обновления я думал, что будет круто, чтобы увидеть, как я могу сделать то же самое.

Первоначально я нашел команду композитора на то же самое, мы можем запустить:

composer outdated --direct -f json

Чтобы получить список устаревших пакетов в приятный формат 😍

Следующая мысль должна была поставить его за обслуживание или иметь его на сервере, который привел меня к следующему препятствию.

Я не хочу устанавливать пакеты или иметь команды после установки на сервере, которые я не буду использовать для чего-либо еще. 🏻♂️.

🤔 Как мы получаем список устаревших пакетов, не устанавливая пакеты, и нам даже нужен композитор для этого?

После некоторой мысли я решил использовать Composer.json. и Композитор. Блок Чтобы получить некоторую информацию и найти API для получения информации о пакете из Packagist. 🤞🏻.

API – это больше URL-адрес с помощью Djson Extension🤫. Например, чтобы получить детали пакета для Монолог/монолог Вы можете просто добавить .json в конце URL. URL в Packagist довольно хорошо отформатирован, так что для упаковки, как Монолог/монолог URL становится: https://packagist.org/packages/monolog/monolog.json

Теперь, оснащены ограничениями, текущей версией и информацией пакета, пришло время написать сценарий. 🤓

Шаг 1: Разбор файлов

Я использовал JSON Библиотека доступна в Python, чтобы получить данные из этих файлов.

Шаг 2: Чтение метаданных от Packagist

Я использовал поддомен REPO, но работает прямым URL.

Шаг 3: Работа с семантическими версиями 😯

Это была самая сложная часть, потому что нам нужно обрабатывать разные случаи, и были некоторые пакеты, которые ссылаются на Git Commita😒. Но после того, как некоторые пытаются поймать и играть с семантическая версия Библиотека, которую я смог справиться с разбором. Однажды сделано с разбором, сравнение версий и подготовка окончательного результата, был бризом.

Примечание: Я должен был перейти на класс NPMSPEC вместо SimPlespec чтобы лучше справиться с версиями. Эта библиотека использует семантическую версию, определенную NPM-Semver

Хотя скрипт – это просто отправная точка, это было довольно весело, чтобы написать И, может быть, я буду расширить его, чтобы сделать его объектно ориентированным, добавить тестовые случаи вместе с другими колоколами и свистками 😉

Надеюсь, вам понравилось читать его, и он предоставил вам приятные инструменты 💪🏻, чтобы использовать при работе с семантической версией в вашем коде. Дайте мне знать в комментариях, если бы я позволил объяснить процесс по-разному.

Убедитесь, что вы следуете, хлопают, бросьте несколько единороги на меня и поделитесь этим постом со своими друзьями, семьей, соседями и всеми, что вы встретите на дороге. 😄

Оригинал: “https://dev.to/ri5hirajp/get-composer-outdated-packages-w-o-install-4f7o”