depos - инструмент для анализа и обновления версий зависимостей в манифесте пакета OneScript.
- Читает манифесты
packagedefиopm-metadata.xml. - Обновляет версии зависимостей в
packagedefдо последней, минорной или патч-версии. - Фильтрует пакеты по имени, шаблону или регулярному выражению.
- Выявляет отсутствующие, неиспользуемые и неустановленные зависимости.
- Обнаруживает конфликты версий установленных пакетов.
Important
depos не является пакетным менеджером и не устанавливает пакеты. Для установки используйте opm install после обновления манифеста.
opm install depos# Перейти в каталог проекта
cd path/to/project
# Проверить зависимости на наличие проблем
depos doctor
# Проверить доступные обновления
depos check
# Обновить версии зависимостей в packagedef
depos upgrade
# Установить обновленные пакеты
opm installПроверяет наличие обновлений для зависимостей без изменения манифеста Выводит список пакетов с указанием текущих и доступных версий.
Синтаксис:
depos check [-m|--manifest ] [-p|--package ] [-d|--deprecated]
[-f|--filter ] [-t|--target ] [-o|--output ]| Опция | Описание |
|---|---|
| -m, --manifest <путь> | Путь к файлу манифеста или его каталогу. (по умолчанию: текущая директория) |
| -p, --package <имя> | Имя установленного пакета. |
| -d, --deprecated | Показывать только устаревшие пакеты. |
| -f, --filter <фильтр> | Фильтр пакетов по именам (через запятую или пробел), шаблону (*, ?) или регулярному выражению. |
| -t, --target <тип> | Тип целевой версии (по умолчанию: latest): - latest - последняя доступная версия пакета.- minor - последняя минорная или патч-версия в пределах основной версии.- patch - последняя патч-версия в пределах минорной версии. |
| -o, --output <файл> | Экспорт результатов проверки в JSON-файл. |
Примеры использования:
# Проверка в текущем каталоге
depos check
# Проверка конкретного манифеста
depos check --manifest /path/to/packagedef
# Проверка конкретного пакета
depos check --package autumn
# Только минорные обновления
depos check --target minor
# Только устаревшие пакеты
depos check --deprecated
# Фильтр по именам
depos check -f autumn,oint
depos check -f 'autumn oint'
# Фильтр по шаблону
depos check -f 'autumn-*'
# Фильтр по регулярному выражению
depos check -f '/^autumn-.*$/'Пример вывода:
Проверка зависимостей: path/to/packagedef
↑ 1connector 2.3.1 → 2.3.3
↑ autumn 3.3.0 → 4.3.11
↑ autumn-cli 1.1.0 → 1.2.0
semver 1.0.0 → 1.0.0
Найдено обновлений: 3Обновляет версии зависимостей в файле packagedef до указанных целевых версий. После обновления требуется установка новых версий пакетов с помощью opm install.
Caution
Убедитесь, что файл packagedef находится в системе контроля версий, и все изменения зафиксированы. Это действие перезапишет ваш файл.
Синтаксис:
depos upgrade [-m|--manifest ] [--backup] [-f|--filter ]
[-t|--target ] [-o|--output ]| Опция | Описание |
|---|---|
| -m, --manifest <путь> | Путь к файлу packagedef или его каталогу. (по умолчанию: текущая директория) |
| --backup | Создать резервную копию файла packagedef перед изменением. |
| -f, --filter <фильтр> | Фильтр пакетов по именам (через запятую или пробел), шаблону (*, ?) или регулярному выражению. |
| -t, --target <тип> | Тип целевой версии (по умолчанию: latest): - latest - последняя доступная версия пакета.- minor - последняя минорная или патч-версия в пределах основной версии.- patch - последняя патч-версия в пределах минорной версии. |
| -o, --output <файл> | Экспорт отчета об обновлениях в JSON-файл. |
Примеры использования:
# Обновление всех пакетов в манифесте
depos upgrade
# С резервной копией
depos upgrade --backup
# Конкретный манифест
depos upgrade --manifest /path/to/project/packagedef
# Только патч-версии
depos upgrade --target patch
# Фильтр по именам
depos upgrade -f 'autumn,1connector'
# Фильтр по шаблону
depos upgrade -f 'autumn-*'
# Фильтр по регулярному выражению
depos upgrade -f '/^autumn-.*$/'Пример вывода:
Обновление зависимостей: path/to/packagedef
✓ 1connector 2.3.1 → 2.3.3
✓ autumn 3.3.0 → 4.3.11
✓ autumn-cli 1.1.0 → 1.2.0
Выполните opm install для установки новых версий пакетов.Выполняет комплексную диагностику проекта и выявляет проблемы:
- Отсутствующие в манифесте пакеты, используемые в коде
- Неиспользуемые пакеты, объявленные в манифесте
- Неустановленные пакеты
- Несоответствие версий установленных пакетов
Синтаксис:
depos doctor [-m|--manifest ] [-p|--package ]
[--src-dirs ] [--dev-dirs ]
[--ignore-dev] [--strict]| Опция | Описание |
|---|---|
| -m, --manifest <путь> | Путь к файлу манифеста или его каталогу. (по умолчанию: текущая директория) |
| -p, --package <имя> | Имя установленного пакета. |
| --src-dirs <каталоги> | Каталоги с исходным кодом для анализа (через запятую). (по умолчанию: src) |
| --dev-dirs <каталоги> | Каталоги с вспомогательным кодом для анализа (через запятую). (по умолчанию: tests и tasks) |
| --ignore-dev | Игнорировать зависимости для разработки при анализе. Всегда Истина при указании опции -p, --package |
| --strict | Завершать выполнение с ненулевым кодом при обнаружении проблем. |
Примеры использования:
# Диагностика проекта
depos doctor
# Конкретный манифест
depos doctor --manifest /path/to/project/packagedef
# Конкретный пакет
depos doctor --package autumn
# Кастомные каталоги исходников
depos doctor --src-dirs src,lib,modules
# Кастомные dev-каталоги
depos doctor --dev-dirs tests,tasks,benchmark
# Без dev-зависимостей
depos doctor --ignore-dev
# Строгий режим (ненулевой код возврата при проблемах)
depos doctor --strictПример вывода:
Диагностика зависимостей: path/to/packagedef
ОТСУТСТВУЮЩИЕ В МАНИФЕСТЕ
jason
├─ path/to/src/МойКласс1.os
└─ path/to/src/МойКласс2.os
asserts (dev)
└─ path/to/tests/Тесты.os
НЕИСПОЛЬЗУЕМЫЕ В КОДЕ
cli
1bdd (dev)
НЕ УСТАНОВЛЕНЫ
1connector
НЕСООТВЕТСТВИЕ ВЕРСИЙ
Пакет Установленная Требуемая Источник
----------------------------------------------------------------
autumn 3.3.0 >=4.3.0 path/to/lib/autumn
asserts dev 1.5.0 >=1.6.0 path/to/additional_lib/asserts
Найдено проблем: 7Автоматизация обновления зависимостей с созданием Pull Request:
name: Обновление зависимостей
on:
schedule:
- cron: '0 0 * * 1' # Каждый понедельник
workflow_dispatch:
jobs:
update-dependencies:
# if: github.repository_owner == '<your-username>'
runs-on: ubuntu-latest
steps:
- name: Обновление зависимостей
uses: Stivo182/depos-action@v1
with:
filter: autumn-* # Обновлять только пакеты autumn
target: minor # До минорных версий
message-prefix: build(deps)
token: ${{ secrets.PAT }}Подробная документация: depos-action.