Перейти к основному содержимому
Версия: v0.0.30

Stapler-репозиторий

Stapler-репозиторий — это Git-репозиторий, в котором хранятся один или несколько пакетов Stapler. Каждый пакет — это каталог с Staplerfile.

Репозиторий обязательно должен храниться в системе контроля версий Git и быть доступен через публичный URL (например, GitHub).

Структура репозитория

Stapler-репозиторий можно организовать двумя основными способами:

Репозиторий с несколькими пакетами

Это самый распространённый вариант. Структура обычно выглядит так:

my-stplr-repo/
├── stapler-repo.toml
├── foo/
│ └── Staplerfile
├── bar/
│ └── Staplerfile
├── baz/
│ └── Staplerfile
└── README.md
  • Каждый каталог (foo/, bar/, baz/) — это отдельный пакет.
  • Имя каталога должно точно совпадать с именем пакета, указанным в Staplerfile.
  • В корне репозитория лежит файл stapler-repo.toml с конфигурацией.

Репозиторий для одного пакета

Если вам нужен отдельный репозиторий только для одного пакета:

my-single-package-repo/
├── stapler-repo.toml
├── Staplerfile
└── README.md

В этом случае Staplerfile лежит прямо в корне репозитория.

Содержимое stapler-repo.toml

[repo]
minVersion = "v0.0.23"

title = "Repo for tests"

summary = "Stapler repo for tests"

description = """
Long long description
Stapler repo for tests
Long long description"""

homepage = "https://stplr.dev"

icon = "https://stplr.dev/img/logo.svg"

url = "https://altlinux.space/stapler/repo-for-tests.git"
ref = "main"
mirrors = [
"https://github.com/example/example.git"
]
report_url = "https://altlinux.space/stapler/repo-for-tests.git?package={{ .BasePackageName }}"

Описание полей

  • minVersion — минимальная версия Stapler, необходимая для работы с этим репозиторием.
  • title — краткое название репозитория.
  • summary — краткое описание репозитория в одну строку.
  • description — подробное описание репозитория (поддерживает многострочный текст).
  • homepage — URL домашней страницы проекта.
  • icon — URL иконки репозитория.
  • url — основная ссылка на Git-репозиторий.
  • ref — ветка Git-репозитория (например, main, master).
  • mirrors — список альтернативных зеркал репозитория на случай недоступности основной ссылки.
  • report_url — URL для отправки сообщений об ошибках. Этот адрес будет показываться пользователю при возникновении проблем с установкой пакета. Поддерживает шаблон {{ .BasePackageName }} для подстановки имени пакета.

Как создать stplrpler-репозиторий шаг за шагом

1. Создайте каталог и инициализируйте Git

mkdir my-stplr-repo
cd my-stplr-repo
git init
git remote add origin <URL_вашего_репозитория>

Репозиторий должен быть публичным, чтобы его можно было использовать.

2. Создайте stapler-repo.toml

Это основной конфигурационный файл. Минимальный пример:

[repo]
minVersion = "v0.0.25"
  • Здесь minVersion указывает минимальную версию Stapler, с которой совместим этот репозиторий.

3. Добавьте пакет или пакеты

  • Для многопакетного репозитория создайте отдельную папку для каждого пакета. Название каталога = название пакета в Staplerfile.
  • Для однопакетного репозитория положите Staplerfile в корень.

4. Проверьте сборку пакета

stplr build -s ./Staplerfile

Также можно воспользоваться stplr-spec: stplr-spec clean-build для сборки в минимальном окружении.

5. Добавьте README

Рекомендуется описать в README.md:

  • Назначение репозитория.
  • Инструкции по подключению через stplrpler.
  • Правила по добавлению новых пакетов и др.

5. Сделайте первый коммит и опубликуйте

git add .
git commit -m "Initial commit"
git branch -M main
git push -u origin main

Готово!

Теперь вы можете подключить репозиторий командой:

stplr repo add my-stplr-repo https://example.com/my-stplr-repo.git
stplr in foo