Курс языка программирования Raku / Продвинутый уровень / Модули / Распространение модулей

Публикация с помощью fez

В предыдущей теме fez был представлен как способ загрузки дистрибутива в экосистему Raku. Использовать fez не обязательно — это не единственный способ публикации, — но это самый распространённый выбор, и он умеет больше, чем просто загружать: он также может создать каркас нового дистрибутива и управлять вашей учётной записью автора. Установите его с помощью zef:

zef install fez

Создание дистрибутива

Вместо того чтобы вручную собирать META6.json и каталоги lib/ и t/, можно позволить fez создать их автоматически:

fez init My::Greeting

fez init инициализирует новый дистрибутив для разработки — директорию проекта с готовым META6.json и стандартной структурой, — чтобы вы могли сразу приступить к написанию кода в lib/ и тестов в t/, вместо того чтобы самостоятельно готовить файл метаданных.

Регистрация и вход

Для публикации необходима учётная запись в экосистеме. Создать её можно один раз командой fez register (она запросит имя пользователя, email и пароль), а войти — командой fez login, которая сохраняет ваш ключ, чтобы последующие команды были авторизованы:

fez register
fez login

Ваше имя пользователя имеет значение: в файле META6.json дистрибутива должно быть поле auth со значением zef:<username> — так экосистема определяет, что загрузка действительно ваша.

Загрузка

Когда учётная запись настроена и дистрибутив готов, fez upload упаковывает текущую директорию и отправляет её:

fez upload

После этого любой может установить его по имени с помощью zef install My::Greeting. Каждую версию можно загрузить только один раз, поэтому не забудьте увеличить version в META6.json перед публикацией обновления.

Другие полезные команды

Несколько дополнительных команд fez, которые могут пригодиться:

  • fez review — проверить дистрибутив на возможные проблемы перед загрузкой;
  • fez list — показать дистрибутивы, которые вы уже опубликовали;
  • fez refresh — пересобрать META6.json по файлам, находящимся на диске.

Все эти команды требуют установленного fez и доступа к сети, а все, кроме init, требуют учётной записи в экосистеме.

Навигация по курсу

zef и экосистема   |   Файл META6


💪 Или перейдите сразу к упражнениям этого раздела.