depos - инструмент для анализа и обновления версий зависимостей пакетов OneScript в файле packagedef.
- Модифицирует только файл
packagedef. - Обновляет до последней, минорной или патч-версии.
- Фильтрует пакеты по имени, шаблону или регулярному выражению.
- Анализирует зависимости и выявляет потенциальные проблемы.
opm install depos# Перейти в каталог проекта cd path/to/project # Проверить зависимости на наличие проблем depos doctor # Проверить доступные обновления depos check # Обновить версии зависимостей в packagedef depos upgrade # Установить обновленные пакеты opm installПроверяет наличие обновлений для зависимостей, не изменяя файл packagedef. Выводит список пакетов с указанием текущих и доступных версий.
Синтаксис:
depos check [--packagedef <путь>] [-d|--deprecated] [-f|--filter <фильтр>] [-t|--target <тип>] [-o|--output <файл>]| Опция | Описание |
|---|---|
| -p, --packagedef <путь> | Путь к файлу packagedef или его каталогу. (по умолчанию: текущая директория) |
| -d, --deprecated | Показывать только устаревшие пакеты. |
| -f, --filter <фильтр> | Фильтр пакетов по именам (через запятую или пробел), шаблону (*, ?) или регулярному выражению. |
| -t, --target <тип> | Тип целевой версии (по умолчанию: latest): - latest - последняя доступная версия пакета.- minor - последняя минорная или патч-версия в пределах основной версии.- patch - последняя патч-версия в пределах минорной версии. |
| -o, --output <файл> | Экспорт результатов проверки в JSON-файл. |
Примеры использования:
# Базовая проверка в текущем каталоге depos check # Указание конкретного манифеста depos check --packagedef /path/to/my-project/packagedef # Проверка только до минорных версий 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 [--packagedef <путь>] [--backup] [-f|--filter <фильтр>] [-t|--target <тип>] [-o|--output <файл>]| Опция | Описание |
|---|---|
| -p, --packagedef <путь> | Путь к файлу packagedef или его каталогу. (по умолчанию: текущая директория) |
| --backup | Создать резервную копию файла packagedef перед изменением. |
| -f, --filter <фильтр> | Фильтр пакетов по именам (через запятую или пробел), шаблону (*, ?) или регулярному выражению. |
| -t, --target <тип> | Тип целевой версии (по умолчанию: latest): - latest - последняя доступная версия пакета.- minor - последняя минорная или патч-версия в пределах основной версии.- patch - последняя патч-версия в пределах минорной версии. |
| -o, --output <файл> | Экспорт отчета об обновлениях в JSON-файл. |
Примеры использования:
# Базовое обновление всех пакетов depos upgrade # Обновление с резервной копией depos upgrade --backup # Указание конкретного манифеста depos upgrade --packagedef /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 [--packagedef <путь>] [--src-dirs <каталоги>] [--dev-dirs <каталоги>] [--ignore-dev] [--strict]| Опция | Описание |
|---|---|
| -p, --packagedef <путь> | Путь к файлу packagedef или его каталогу. (по умолчанию: текущая директория) |
| --src-dirs <каталоги> | Каталоги с исходным кодом для анализа (через запятую). (по умолчанию: src) |
| --dev-dirs <каталоги> | Каталоги с вспомогательным кодом для анализа (через запятую). (по умолчанию: tests и tasks) |
| --ignore-dev | Игнорировать зависимости для разработки при анализе. |
| --strict | Завершать выполнение с ненулевым кодом при обнаружении проблем. |
Примеры использования:
# Базовая диагностика проекта depos doctor # Указание конкретного манифеста depos doctor --packagedef /path/to/project/packagedef # Анализ конкретных каталогов исходников depos doctor --src-dirs src,lib,modules # Анализ с указанием dev-каталогов depos doctor --dev-dirs tests,tasks,benchmarks # Игнорирование dev-зависимостей depos doctor --ignore-dev # Строгий режим (ненулевой код возврата при проблемах) depos doctor --strict # Для CI/CD: строгая проверка без dev-зависимостей depos doctor --strict --ignore-devПример вывода:
Диагностика зависимостей: path/to/packagedef Отсутствующие пакеты в манифесте: jason - path/to/src/МойКласс1.os - path/to/src/МойКласс2.os asserts (dev) - path/to/tests/Тесты.os Неиспользуемые пакеты в коде: cli 1bdd (dev) Найдено проблем: 4Workflow для автоматического обновления зависимостей пакетов OneScript с созданием 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 }}Подробности и дополнительные параметры см. в документации.