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 }}Подробности и дополнительные параметры см. в документации.