Вступление
Уважаемый читатель!
Данный документ создан для облегчения прохождения процедуры принятия человека в ряды членов ALT Linux Team.
PDF Версия
Вы также можете скачать PDF версию данного документа.
Структура документации
Перед тем, как приступить к изучению, ознакомьтесь с тем, как примеры, ссылки и сноски будут обозначены в документе.
-
В дальнейшем вывод команд будет продемонстрирован следующим образом:
$ ssh gitery ls total 16 drwxr-s--- 5 4096 May 30 21:27 etc drwxr-sr-x 14 4096 Aug 13 23:53 packages drwxr-s--x 2 4096 Feb 13 2007 private drwxr-sr-x 8 4096 Aug 13 23:57 public $
-
Темы, представляющие интерес, или словарные термины упоминаются либо как ссылки на соответствующую документацию или веб-сайт выделены жирным шрифтом, либо курсивом. Первые упоминания некоторых терминов ссылаются на соответствующую документацию.
-
Названия утилит, команд и других элементов, обычно встречающихся в коде, написаны
моноширинным
шрифтом.
Примечание
|
Для сокращения команд, встречающихся в тексте, будет использоваться нотация: |
-
- команды без административных привилегий будут начинаться с символа “$”
-
- команды с административными привилегиями будут начинаться с символа “#”
Примечание
|
По умолчанию sudo может быть отключено. Для получения административных привилегий используется команда su . Для включения sudo в стандартном режиме можно использовать команду:
|
# control sudowheel enabled
Вклад в руководство
Вы можете внести свой вклад в это руководство, отправив запрос на принятие изменений (Pull Request) в репозиторий.
Join
Если Вы считаете, что какого-то пакета в Сизифе не хватает, или какой-то пакет заслуживает большего внимания и готовы заняться им — значит, настало время присоединиться к команде ALT Linux Team.
Процедура Join - это процесс вступления в ALT Linux Team, результатом которого является возможность непосредственно участвовать в разработке репозитория Сизиф. После прохождения Join Вы станете мейнтейнером.
Кто такой мейнтейнер? У каждого пакета в репозитории Сизиф есть один или несколько мейнтейнеров — это те участники ALT Linux Team, которые собирают новые версии пакета, следят за ошибками, которые заводят пользователи в багтрекере и общаются с upstream-разработчиками программы.
Процедура принятия в Team
Для принятия человека в Team создаётся небольшая команда заинтересованных в этом тимовцев:
-
Секретарь команды. В его обязанность входит отслеживать стадии принятия и выполнять административные действия.
-
Ментор вступающего. Он помогает кандидату со вступлением, отвечает на его вопросы и принимает решение о готовности кандидата.
-
Рецензент работы вступающего. Он проводит независимую оценку готовности вступающего по результатам его работы и подтверждает его готовность.
-
Сам кандидат.
Этапы принятия в ALT Linux Team
Ниже приведены этапы принятия в сообщество со стороны секретаря команды:
Обработка запросов на приём в команду
-
По созданию бага в разделе «Development», продукте «Team accounts», на компонент «join»:
-
Убедиться, что кандидат имеет активного ментора.
-
Проверить SSH- и GPG-ключ кандидата, nickname и адрес пересылки почты.
-
Ожидать решения ментора о готовности кандидата.
-
-
По положительному решению ментора о том, что кандидат готов начать вступление:
-
Создать email alias для кандидата (детали создания выясняются у текущего секретаря).
-
Зарегистрировать SSH-ключ кандидата в gitery.alt.
-
Ожидать решения ментора о готовности кандидата.
-
-
По следующему положительному решению ментора о том, что его подопечный готов собирать пакеты:
-
Поместить очищенный GPG-ключ кандидата в пакет alt-gpgkeys.
-
Отправить новую сборку пакета alt-gpgkeys в Сизиф.
-
Установить новую сборку пакета alt-gpgkeys на сервер.
-
Зарегистрировать SSH-ключ кандидата в gyle.alt (без добавления в группу майнтейнеров).
-
Ожидать решения ментора о готовности кандидата.
-
-
По следующему положительному решению ментора о том, что его подопечный готов отправлять пакеты в Сизиф:
-
Призвать рецензента для независимой оценки готовности кандидата.
-
Ожидать решения рецензента о готовности кандидата.
-
В случае отрицательного решения рецензента, требующего дополнительной работы кандидата и ментора, возможен переход на окончание предыдущего этапа (сейчас это 3.5)
-
-
По положительному решению рецензента о том, что кандидат действительно готов отправлять пакеты в Сизиф:
-
Подписать кандидата на рассылку devel@.
-
Добавить кандидата в группу майнтейнеров на gyle.alt.
-
Закрыть баг, тем самым завершив процедуру приёма кандидата в команду.
-
Сбор информации
Для принятия в ALT Linux Team необходима следующая информация:
-
Имя ментора — участника команды, имеющего желание помогать в процессе приёма в Team. Менторов можно искать в списках рассылки, канале Telegram, или узнать у Ваших знакомых членов сообщества ALT Linux Team, если таковые есть, готовы ли они стать Вашим ментором.
-
Псевдоним участника (имя пользователя). Выбирается им самим. Имя должно начинаться с буквы, содержать только строчные латинские буквы и цифры, быть не короче трёх символов.
Примечание
|
Псевдоним — это фактичеcки Ваше второе имя в команде. Так Вас будут называть в глаза и за глаза, по нему на Вас будут ссылаться. Поэтому псевдоним лучше выбирать короткий, запоминающийся и не отягощённый мусором. Например, yoda — удобный псевдоним, а travellingwilburys1998 — неудобный. Список уже занятых имён можно посмотреть в пакете alt-gpgkeys.
|
-
Адрес почты, на который будет производиться пересылка с адреса псевдоним@altlinux.org;
-
SSH-ключ (ED25519 или RSA >= 4096bit). Принимающему нужна публичная часть ключа. Этот ключ будет использоваться для SSH-доступа на ресурсы Sisyphus (git.alt и другие);
-
GPG-ключ (RSA >= 4096bit). В ключе должны быть имя в формате "<First name> <Last name>" и uid вида псевдоним@altlinux.org. Принимающему нужна публичная часть ключа. Этот ключ будет использоваться для подписи пакетов и для удостоверения личности в почте.
Если у Вас ещё нет SSH- или GPG-ключа, прочтите статью Работа с ключами разработчика.
Этап 1. Создание заявки
Когда Вы нашли своего куратора процедуры join - ментора, Вам необходимо зафиксировать начало вашей работы. На этом этапе вам понадобится BugZilla. В данном случае bugzilla выступает площадкой для процедуры вступления в ALT Linux Team. Здесь ведётся официальный диалог с участниками, Вы можете посмотреть прогресс других кандидатов, узнать, какие задачи они взяли. Введите в поиске join
и увидите список, относящийся к этой тематике.
Для начала необходимо пройти регистрацию на BugZilla.
После того, как Вы прошли регистрацию и нашли ментора, можно начинать регистрировать заявку. Регистрация заявки происходит следующим образом: на главной странице сайта ALT Bugzilla выберите "Зарегистрировать ошибку"
или "Новая ошибка"
. Будущие участники ALT Linux Team регистрируются в разделе
Team Accounts: ALT Linux Team: присоединение
.
При наведении мыши будут видны подсказки к заполнению полей формы. Клик по любому из пунктов формы приведёт Вас на страницу Поля ошибок с описанием терминов. Выберите компонент Join. Если Вы посмотрите другие компоненты, то убедитесь, что они не так популярны. При выборе уровня важности задачи учитывайте, что мейнтейнеры просматривают ошибки в том числе по этому фильтру. Также будет видно, к какому разделу относится ваша задача. (Важность определяете Вы сами, исходя из своих возможностей и целеполагания. Скорее, это параметр для Вас.) Поставим здесь средний приоритет Р3
. Платформа определяется автоматически. Здесь же Вы можете изменить значения, в том числе поставить all, и научиться собирать пакеты для любых платформ.
Отметим новое состояние нашей заявки.
Поля Исполнитель и Приёмка заполнятся автоматически. В пункте Подписчики укажем всех, кто заинтересован в решении этой задачи. В случае join - это ментор.
В стандартной форме bugzilla есть поле для заполнения адреса URL, с которым может быть связана ошибка. Так как мы регистрируем по сути наше участие в прохождении Join, отметьте страницу на вики Join
Поле Аннотация предназначено для краткого описания сути ошибки. Так как мы заводим эту ошибку в рамках вступления в ALT Linux Team, напишем join с указанием предполагаемой почты: join user@
.
Пример комментария к открытой заявке на вступление в ALT Linux Team.
Псевдоним: sova Почта: Valentin Sokolov <sova@altlinux.org> Адрес пересылки почты: sokolovvaly.158@gmail.com Имя ментора: Grigory Ustinov Почта ментора: grenka@altlinux.org Хочу научиться собирать пакеты.
На данном этапе необходимо прикрепить SSH и GPG ключи. О том, как их создать и прикрепить к заявке - читайте ниже.
Создание SSH и GPG ключей
SSH Key
Для того, чтобы создать SSH ключ, можно воспользоваться командой:
$ ssh keygen -t ed25519
На вопрос о файле сохранения ключа можно ничего не отвечать, а просто нажать Enter, чтобы принять путь файла ключа по умолчанию. Далее будет задан вопрос о пароле к ключу. Укажите придуманный пароль для защиты ключа.
В каталоге ~/.ssh
появятся файлы:
-
id_ed25519
- секретный ключ -
id_ed25519.pub
- публичный ключ
Внимание
|
НИКОГДА И НИКОМУ НЕ ПЕРЕСЫЛАЙТЕ СЕКРЕТНЫЙ КЛЮЧ |
GPG Key
Для того, чтобы создать GPG-ключ, можно воспользоваться командой:
$ gpg --gen-key
В процессе ответа на вопросы выберете тип ключа RSA и RSA
, длина ключа должна быть не менее 4096 bit, поэтому впишем 4096. Срок действия ключа - без ограничения срока действия. Для идентификации Вашего ключа необходим ID пользователя. Программа создаст его из Вашего имени, комментария и адреса электронной почты в виде: ` (developer) ivan@altlinux.org`.
Теперь экспортируем публичную часть ключа для отправки, используя команду:
$ gpg --armor --export псевдоним@altlinux.org
Для копирования публичного ключа в файл Вы можете использовать следующую команду:
$ gpg --armor --export псевдоним@altlinux.org >>public.key
Экспортировать приватную часть ключа можно с помощью команды:
$ gpg --armor --export-secret-keys псевдоним@altlinux.org >>private.key
Внимание
|
Никогда и ни при каких условиях никому не сообщайте и не присылайте Ваши ПРИВАТНЫЕ ключи. Сохраните Ваши приватные и публичные ключи на отдельном носителе для лучшей сохранности. |
Для более подробного изучения темы создания и редактирования ключей рекомендуется перейти по ссылке: Работа с ключами разработчика.
После того, как Вы создали ключи, загрузите их публичные части в комментарий к Вашей заявке. На странице заявки есть отдельный пункт Приложить файл
.
Поздравляем! Вы создали заявку на вступление в ALT Linux Team. Её закрытие будет означать либо успешное прохождение процедуры и получение доступов к работе с Сизифом и вступление в Team, либо отказ в нём.
При успешном выполнении всех вышеописанных пунктов, Вы будете переведены на этап. 1.3
Аннотация: [1.1] join sova@ → [1.3] join sova@
.
После того, как ментор примет решение о Вашей готовности собирать пакеты, Вы будете переведены на этап 2.0
.
Этап 2. Доступ к gitery.alt
Ваш ментор подтвердил Вашу готовность к началу сборки пакетов, Вас перевели на этап 2.0
:
Аннотация: [1.3] join sova@ → [2.0] join sova@
.
На данном этапе секретарь команды заведёт Вам почту, которую Вы указали на этапе формирования заявки, а так же зарегистрирует приложенный Вами SSH ключ на gitery.alt.
Что такое gitery.alt
или "Гитовница"
? Это часть сервера совместной разработки ALT Linux Team - в ней сконцентрированы инструменты для хранения git-репозиториев. Во время прохождения Join Вы будете загружать собранные пакеты на "гитовницу".
Настройка доступа
gitery.altlinux.org
доступен по SSH по адресу gitery.altlinux.org:222
и gitery.altlinux.org:443
Для ssh доступа, надо отредактировать файл $HOME/.ssh/config
Пример настройки файла ~/.ssh/config
:
Host gitery
HostName gitery.altlinux.org
User alt_USERNAME # а не просто USERNAME!
Port 222
# Через прокси
#ProxyCommand netcat -X connect -x proxy:3128 %h %p
#Port 443
# if stored separately
#IdentityFile ~/.ssh/id_ed25519.alt
# и если openssh-7.* или новее + ключ dsa, непременно
#PubkeyAcceptedKeyTypes ssh-dss
# иначе будет ошибка not in PubkeyAcceptedKeyTypes
# Сборочница
Host gyle
HostName gyle.altlinux.org
User alt_USERNAME # а не просто USERNAME!
Port 222
# Через прокси
#ProxyCommand netcat -X connect -x proxy:3128 %h %p
#Port 443
Для работы с gitery
необходимо настроить свой git
— параметры user.name
, user.email
, user.signingkey
:
$ git config --global user.signingkey "<ID ключа GPG для подписи тэгов>"
$ git config --global user.email "<ваш email, как мантейнера>"
$ git config --global user.name "FirstName LastName"
Пример настройки git:
$ git config --global user.signingkey 0xA26F54C8
$ git config --global user.email dottedmag@altlinux.org
$ git config --global user.name "Mikhail Gusarov"
Чтобы узнать свой user.signingkey
, выполните команду:
$ gpg --list-secret-keys
Искомое значение находится в секции sec
вывода команды. Его следует прописать в переменную user.signingkey
, предварительно добавив в начало символы 0x
.
Работа с Gitery. Управление git-репозиториями
Список команд выдаётся при ssh-логине с командой help
:
$ ssh gitery help
Available commands:
help
charset <path to git repository> [<charset>]
clone <path to git repository> [<path to directory>]
default-branch <path to git repository> [<branch>]
find-package <pattern>
init-db <path to directory>
ls [<path to directory>]
mv-db <path to source directory> <path to destination directory>
quota
repack <path to git repository> [<value>]
rm-db <path to git repository>
Просмотр содержимого:
С помощью команды ssh gitery ls
можно просмотреть содержимое /people/$USERNAME
:
$ ssh gitery ls
total 16
drwxr-x--- 5 4096 May 26 09:59 etc
drwxr-xr-x 4 4096 Jun 28 12:20 packages
drwxr-x--x 2 4096 May 26 09:59 private
drwxr-xr-x 2 4096 May 26 09:59 public
Команда ssh gitery ls [<path to directory>]
позволяет просмотреть содержимое различных директорий на gitery
:
$ ssh gitery ls /people/sova/packages
total 8
drwxr-xr-x 5 4096 Jun 9 14:39 python3-module-mingus.git
drwxr-xr-x 5 4096 Jun 28 13:13 samba.git
Создание нового репозитория:
Для создания нового репозитория используйте:
$ ssh gitery init-db test
girar-init-db: /people/dottedmag/packages/test.git
Поскольку в созданном репозитории нет ни одного коммита, то при попытке его склонировать git clone
выдаст отрицательный результат. Необходимо создать пустой локальный репозиторий, заполнить его содержимым и только после отправить на gitery
.
$ mkdir test; cd test; git init
Initialized empty Git repository in /home/dottedmag/test/.git/
$ touch README
$ git add README
$ git commit -m 'first commit'
$ git remote add origin gitery:packages/test.git
$ git push origin master
...
$