Пакетный режим объединяет обычные модули Topaz с корнем проекта, зависимостями, lock-файлом и локальными копиями внешних пакетов. Он не добавляет новый синтаксис и не ослабляет правила видимости, циклов и инициализации модулей.
Контракт и компоненты
topaz.toml задаёт имя пакета, версию языка, точку входа и зависимости. topaz.lock фиксирует выбранные версии и данные для проверки содержимого. Локальные зависимости задаются путём, а внешние копируются в vendor/<name>/<version>. Если у команды проверки, запуска или сборки не указан файл, используется точка входа пакета.
Рабочий процесс
init создаёт пакет, add добавляет зависимость, lock обновляет lock-файл, а fetch и vendor сохраняют внешние зависимости локально. Храните topaz.toml и topaz.lock в репозитории и используйте --locked для воспроизводимых сборок.
Текущая поддержка
Topaz v5.6 поддерживает создание пакетов, добавление зависимостей, блокировку версий, vendoring, компиляцию пакетов и автономные сборки. Публичный npm-пакет topaz-lang@5.6.0 устанавливает подходящий исполняемый файл Topaz для текущей платформы.
Границы и ограничения
Зависимость пакета не даёт дополнительных прав среды и не импортирует синтаксис другого языка. Исходные зависимости Topaz используют topaz.toml, topaz.lock и локально сохранённые файлы; npm-пакет служит только установщиком CLI. Для автономной сборки все зафиксированные зависимости должны находиться локально.
Справочник команд
topaz init --root my-app
topaz add utility@1.2.0 --root my-app
topaz lock --root my-app
topaz vendor --root my-app --from ./registry
topaz check --root my-app --locked