Skip to content

Latest commit

 

History

History
141 lines (100 loc) · 6.63 KB

README.md

File metadata and controls

141 lines (100 loc) · 6.63 KB

archpkg

Менеджер пакетов архитектурного кода DocHub.

Обеспечивает управление зависимостями архитектурных репозиториев созданных с использованием подхода "Архитектура как код". Позволяет быстро и удобно устанавливать, обновлять и удалять пакеты, необходимые для работы архитектурного репозитория.

archpkg разработан для того, чтобы стимулировать развитие архитектурной функции открытым сообществом. Призван обеспечить обмен опытом и знаниями выраженными в архитектурном коде между членами сообщества.

Инструментализирует концепцию адаптивной метамодели. Подробнее о ней и структуре пакетов здесь.

Экосистема

  1. DocHub - мультиплатформенный инструмент описания архитектуры через код (AaC);
  2. https://dochub.info/ - Демонстратор технологии и документация;
  3. https://registry.dochub.info/ - реестр архитектурных пакетов (TBD);
  4. arckpkg - менеджер пакетов.

Подготовка

  1. Установите DocHub;
  2. Установите latest версию nodejs >= 20.11.0 и npm >= 10.2.3 .

Использование

Используйте команду npx archpkg <Параметры> для вызова пакетного менеджера. Например:

mkdir examples
cd examples
npx archpkg install dochub-examples -save

Данный код создаст директорию "examples" и клонирует в нее архитектурный репозиторий примеров. Воспользуйтесь DocHub для рендеринга архитектурного репозитория.

Команды

install

Устанавливает требуемые пакеты из публичного реестра.

Пример команды:

npx archpkg install

Если используется без параметров, ищет в текущей директории файл dochub.yaml и устанавливает определенные в нем зависимости. Файл должен содержать следующую структуру:

# Метаданные проекта
 $package:  
   <идентификатор_проекта>:  
       version: "<версия_проекта>"
       # Здесь указываются зависимости 
       dependencies:
         <идентификатор пакета>: "<версия>"   # Версия указывается в формате x.x.x например 1.2.11
                                              # Доступно указание правил выбора пакетов
                                              # >   выше указанной версии, например >1.2.11
                                              # >=  выше или равно указанной версии, например >=1.2.11
         ...

Пример файла dochub.yaml:

$package:
  example:
    name: Пример файла зависимостей
    version: 1.0.0
    dependencies:
      dochub-examples: ">=1.0.0"

При выполнении команды:

npx archpkg install -save

Будет установлен пакет примеров из репозитория https://github.com/rpiontik/DocHubExamples. Ключ "-save" заставит archpkg добавить в dochub.yaml импорт подключенной зависимости.

install <идентификатор пакета>[@<версия пакета>]

Устанавливает конкретный пакет как зависимость.

npx archpkg install dochub-examples -save

Установит наиболее свежую версию пакета dochub-examples и укажет его как зависимость в текущем проекте.

npx archpkg install dochub-examples@>=1.0.0 -save

Установит версию пакета dochub-examples старше или равную 1.0.0 и укажет его как зависимость в текущем проекте.

npx archpkg install dochub-examples@1.0.0

Установит версию пакета dochub-examples равную 1.0.0 но не укажет его как зависимость в текущем проекте.

Ключи

  • -cleancache - очищает кэш после завершения работы;
  • -save - вносит необходимые изменения в архкод автоматически;
  • -downloadcert:<путь> - указывает путь к ssl сертификату;
  • -cachefolder:<путь> - указывает путь к кэшу.

remove <идентификатор пакета>

Удаляет указанный пакет из зависимостей.

Пример команды:

npx archpkg remove dochub-examples

Ключи

  • -save - вносит необходимые изменения в архкод автоматически;

clean

Очищает вспомогательные пространства используемые archpkg для установки пакетов.

Пример:

npx archpkg clean

Переменные среды

  • ARCHPKG_CACHE_FOLDER - путь к директории кэширования. По умолчанию: <ползовательская директория>/.archpkg
  • ARCHPKG_REPO_SERVER - сервер репозитория. По умолчанию: https://registry.dochub.info/
  • ARCHPKG_DOWNLOAD_CERT - пусть к ssl-сертификату для скачивания пакетов. По умолчанию не установлено.

Лицензия

GPLv3