Руководство начинающего мейнтейнера ALT Linux Team: различия между версиями

Материал из ALT Linux Wiki
(не показано 25 промежуточных версий 5 участников)
Строка 1: Строка 1:
[[Категория:Sisyphus]]
У каждого пакета в [[Sisyphus]] есть один или несколько мейнтейнеров — это те участники ALT Linux Team, которые собирают новые версии пакета, следят за ошибками, которые заводят пользователи в багтрекере и общаются с upstream-разработчиками программы.
[[Категория:Руководства]]
 
У каждого пакета в [[Sisyphus]] есть один или несколько мантейнеров — это те участники ALT Linux Team, которые собирают новые версии пакета, следят за ошибками, которые заводят пользователи в багтракере и общаются с upstream-разработчиками программы.
Этот документ предназначен в помощь тем, кто решил присоединиться к команде ALT Linux Team, то есть стать мейнтейнером одного или нескольких пакетов со свободным программным обеспечением.


Этот документ предназначен в помощь тем, кто решил присоединиться к команде ALT Linux Team, то есть стать мантейнером одного или нескольких пакетов со свободным программным обеспечением.
Непосредственно процедура принятия в Team описана в документе «[[Процедура принятия в Team]]».


== Обязанности майнтайнера ==
== Обязанности мейнтейнера ==


* Следить за современностью и актуальностью поддерживаемых им пакетов,
* Следить за современностью и актуальностью поддерживаемых им пакетов,
Строка 16: Строка 16:
Участие в разработке софта, входящего в пакет, желательно (это дает возможность иметь в дистрибутиве самую свежую, но при этом рабочую версию софта, а также повышает оперативность исправления ошибок), но не обязательно.
Участие в разработке софта, входящего в пакет, желательно (это дает возможность иметь в дистрибутиве самую свежую, но при этом рабочую версию софта, а также повышает оперативность исправления ошибок), но не обязательно.


== Прием новых участников в ALT Linux Team ==
== Ресурсы для начинающего мейнтейнера ==
 
Если вы считаете, что какого-то пакета в Сизифе не хватает, или что какой-то пакет заслуживает большего внимания и готовы заняться им — значит, настало время присоединиться к команде ALT Linux Team.
 
Первым делом нужно уведомить команду о своём желании, написав письмо на адрес [mailto:join@altlinux.org join@altlinux.org]. Такие письма читают специальные члены команды — принимающие.
 
В этом письме нужно написать несколько слов о том, чем вы намерены заняться в ALT Linux Team («собрать для начала такой-то пакет, а потом, если получится, ещё пакеты из такой-то области», «просто помочь со сборкой чего-нибудь», «научиться собирать пакеты» и т. п.).
 
Помимо намерений, принимающему для включения вас в команду разработчиков нужна ещё следующая информация:
 
* псевдоним (имя пользователя) участника. Выбирается им самим, если ещё не принадлежит существующему участнику. Его длина должна быть по возможности минимальной и он не должен содержать цифры.
* адрес почты, на который будет производиться пересылка с адреса <tt>псевдоним@altlinux.org</tt>.
* SSH-ключ (RSA 2048bit или DSA 1024bit). Принимающему нужна публичная часть ключа. Этот ключ будет использоваться для SSH-доступа на ресурсы Sisyphus ([[incoming]], [[git.alt]] и другие).
* GPG-ключ (DSA и ElGamal 1024bit). В ключе должен быть uid вида <tt>псевдоним@altlinux.org</tt>. Принимающему нужна публичная часть ключа. Этот ключ будет использоваться для подписи пакетов и для удостоверения личности в почте.
 
После получения необходимой информации принимающий вышлет небольшое тестовое задание и при успешном его выполнении выдаст доступ в [[incoming]] и [[git.alt]].
 
На первый период принимающий назначает одного из существующих мантейнеров в помощь новому участнику.
 
== Ресурсы для начинающего майнтенера ==


; [[Sisyphus]]: раздел ALT Linux Wiki, содержащий большое количество информации о различных аспектах Сизифа, в частности:
; [[Sisyphus]]: раздел ALT Linux Wiki, содержащий большое количество информации о различных аспектах Сизифа, в частности:
:; [[policy]]: нормативные документы разработки (в процессе формирования)
:; [[Работа с ключами разработчика]]: ключи идентифицируют разработчика. Прочтите внимательно!
:; [[:Категория:Нормативные документы]]: нормативные документы разработки (в процессе формирования)
:; [[Join/Environment]]: быстрая настройка окружения для сборки пакетов
:; [[Spec]], [[SpecTips]], [[TypicalPackagingErrors]]: информация о том, как собираются пакеты (в процессе упорядочения)
:; [[hasher]]: инструмент для сборки пакетов
:; [[hasher]]: инструмент для сборки пакетов
:; [[sisyphus_check]]: инструмент для проверки пакетов на соответствие правилам Сизифа
:; [[sisyphus_check]]: инструмент для проверки пакетов на соответствие правилам Сизифа
:; [[Incoming]]: ресурс для отправки пакетов в Сизиф и для управления правами на отправку пакетов
:; [[ACL]]: управление совместной работой над пакетами
:; [[git.alt]]: хостинг git-репозиториев для хранения исходного кода пакетов Сизифа
:; [[git.alt]]: хостинг git-репозиториев для хранения исходного кода пакетов Сизифа, интерфейс управления ACL, инструмент сборка пакетов в Sisyphus и бранчи
:; [[gear]]: инструмент для хранения исходного кода пакетов в git-репозиториях
:; [[gear]]: инструмент для хранения исходного кода пакетов в git-репозиториях
; [[Руководство по майнтяинам ALT Linux Team]]
; [[Новая надежда]] начинающего мейнтейнера


== Работа с ключами ==
[[Категория:Sisyphus]]
 
[[Категория:Руководства]]
При приеме участник предоставляет два криптографических ключа, по которым он идентифицируется в дальнейшем. '''Берегите свои приватные ключи!'''
{{Category navigation|title=Team|category=Team|sortkey=*}}
 
При утере одного из ключей участник может заменить его, заверив вторым. При утрате обоих ключей участник обязан незамедлительно известить об этом принимающих. Его доступ в incoming прекращается до восстановления ключей.
 
Два ключа могут быть восстановлены либо посредством личной встречи с одним из принимающих, либо посылкой их письмом, заверенным ключом одного из участников ALT Linux Team. В последнем случае всю ответственность за дальнейшую безопасность репозитория несет участник, заверивший ключи.
 
=== Создание SSH-ключа ===
 
Если у вас нет SSH-ключа, то создать его можно следующей командой:
$ ssh-keygen
 
Ключ настоятельно рекомендуется сделать с паролем. Для упрощения работы с ключами с паролями можно воспользоваться SSH-агентом.
 
Публичная часть ключа — файл <tt>~/.ssh/id_dsa.pub</tt>.
 
=== Создание GPG-ключа ===
 
Создать новый GPG-ключ можно командой
$ gpg --gen-key
В процессе ответа на вопросы выберите тип ключа - DSA и ElGamal (можно выбрать только DSA, но тогда этот ключ будет непригоден для шифрования), размер - 1024bit. В качестве email укажите <tt>псевдоним@altlinux.org</tt>.
 
=== Модификация существующего GPG-ключа ===
 
Проверьте, что тип ключа - DSA и ElGamal, размер 1024bit. Добавьте идентификатор в ключ с помощью команд
$ gpg --edit-key <key id>
Command> adduid
Укажите своё имя и email вида <tt>псевдоним@altlinux.org</tt>, после чего сохраните изменения
Command> save
И экспортируйте публичную часть ключа для отправки:
$ gpg --armor --export псевдоним@altlinux.org
 
<!--
Вот несколько причин, по которым пакету может быть отказано в доступе в репозиторий (более подробные сведения находятся в ALT-Packaging-HOWTO):
 
Несоответствие требованиям репозитория (см. выше);
 
Пакет не подписан GPG-ключом мантейнера;
 
В пакете недопустимые %post, %preun, %pre скрипты. Например:
 
нельзя изменять на этапе установки/удаления какие-либо системные файлы;
 
не допускается доустанавливать дополнительные программы, производить их перемещения из одного места в другое;
 
 
Недопустимые права на файлы (немотивированный SUID/SGID, World-writeable файлы);
 
Ложные или недопустимые зависимости пакета (Requires);
 
Ложные или недопустимые зависимости сборки (BuildReqs);
 
Полное несоответствие spec-файла требованиям ALT Linux Team (более подробно в ALT-Packaging-HOWTO). Например, использование BuildRoot, %clean, defattr(-,-,root);
 
Избыточная информация в версии пакета (например, 1.2.3pre5) может повредить корректному обновлению (1.2.3 до 1.2.3pre5, несмотря на то, что 1.2.3 — это финальная версия). Переносите все дополнительные сведения в номер сборки (например, alt0.1.pre5);
 
Необоснованное увеличение Serial. Увеличение следует производить только в случае необходимости отката по версии;
 
 
На самом деле правил и ограничений намного больше, самый надёжный способ всегда быть в курсе это использовать утилиту sisyphus_check из пакета sisyphus для проверки своих пакетов перед отправкой в incoming. Также рекомендуется использовать утилиту add_changelog из пакета rpm-utils для добавления changelog к пакету.
Примерное содержание файла .rpmmacros
 
Очень удобно и настоятельно рекомендуется создать в своем домашнем каталоге файл .rpmmacros. В нем вы можете определить такие параметры, как:
 
Месторасположение структуры каталогов для сборки;
 
Каким ключом подписывать пакеты;
 
Значение полей, таких, как Packager, Vendor и Distribution;
 
%vendor ALT Linux Team
%distribution ALT Linux
 
%_topdir /home/pupkin/RPM/
%_gpg_name pupkin@altlinux.org
%packager Vasja Pupkin <pupkin@altlinux.org>
 
Типовая инструкция, высылаемая новому мантейнеру
 
Greetings!
 
Ваш account в incoming Sisyphus создан (название account’a in_xxx).
О том как им пользоваться, смотрите инструкции ниже. Также создан
forward c адреса xxx@altlinux.org на yyy@somehost.com
 
Вашим главным помощником будет zzz@altlinux.org (ZZZ ZZZZ) — если у Вас
возникнут какие-либо вопросы по изготовлению пакетов спрашивайте у
него.
 
ПРЕЖДЕ ЧЕМ ВЫ НАЧНЕТЕ ВЫКЛАДЫВАТЬ ПАКЕТЫ:
 
Надо пройти простенький тест. Это поможет Вам лучше освоиться с
технологией работы с incoming, избежать типичных ошибок при сборке
пакетов, с’экономить деньги на лишнем трафике. Итак, Задача:
 
Необходимо собрать пакет, удовлетворяющий следующим требованиям:
 
1. xxxxxxxxxxxxx
2. xxxxxxxxxxxxx
3. xxxxxxxxxxxxx
4. xxxxxxxxxxxxx
5. xxxxxxxxxxxxx
 
После того как Вы успешно сделаете этот пакет, можете выкладывать то, что
хотите.
 
Инструкции:
 
Теперь можно добавить в ~/.ssh/config:
 
Host incoming
    HostName devel.altlinux.org
    User in_xxx
    Protocol 2
    ForwardX11 no
    ForwardAgent no
    Compression no
 
incoming — это специальная среда c rsync’ом, и ssh
используется прежде всего как транспорт для rsync.
 
В каталог /incoming заливаются новые пакеты, собранные
разработчиками, находящимися вне офиса.
 
Для закачки туда-сюда файлов лучше всего использовать rsync. Например,
для upload’а в incoming можно запускать нечто вроде
 
rsync -vaP --stats local_path/ incoming:/incoming/Sisyphus/
 
Если что-то непонятно либо не получается — спрашивайте.
 
Тест на работоспособность:
 
$ ssh incoming
-in_sh: invalid arguments
Connection to devel.altlinux.org closed.
 
$ rsync incoming:/incoming/
drwxr-x--x 4096 2007/10/30 17:28:31 .
drwxrws--T 4096 2008/01/29 15:12:44 Daedalus
drwxrwx--T 28672 2008/01/30 02:08:16 Sisyphus
drwxr-s--- 4096 2007/04/25 03:12:42 backports
drwxrws--- 4096 2007/09/18 16:41:24 docs
drwxrws--T 4096 2008/01/11 12:38:59 join
drwxr-x--x 4096 2006/06/10 22:09:37 notes
drwxr-s--- 4096 2007/04/25 03:05:35 updates
 
С наилучшими пожеланиями
GATE-KEEPER NAME
 
 
-->

Версия от 14:09, 7 апреля 2017

У каждого пакета в Sisyphus есть один или несколько мейнтейнеров — это те участники ALT Linux Team, которые собирают новые версии пакета, следят за ошибками, которые заводят пользователи в багтрекере и общаются с upstream-разработчиками программы.

Этот документ предназначен в помощь тем, кто решил присоединиться к команде ALT Linux Team, то есть стать мейнтейнером одного или нескольких пакетов со свободным программным обеспечением.

Непосредственно процедура принятия в Team описана в документе «Процедура принятия в Team».

Обязанности мейнтейнера

  • Следить за современностью и актуальностью поддерживаемых им пакетов,
  • Незамедлительно исправлять ошибки, связанные с безопасностью по первому запросу из ALT Security Team,
  • По мере возможности исправлять ошибки, связанные с некорректным функционированием программ,
  • По мере возможности участвовать в списках рассылки ALT Linux Team

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

Участие в разработке софта, входящего в пакет, желательно (это дает возможность иметь в дистрибутиве самую свежую, но при этом рабочую версию софта, а также повышает оперативность исправления ошибок), но не обязательно.

Ресурсы для начинающего мейнтейнера

Sisyphus
раздел ALT Linux Wiki, содержащий большое количество информации о различных аспектах Сизифа, в частности:
Работа с ключами разработчика
ключи идентифицируют разработчика. Прочтите внимательно!
Категория:Нормативные документы
нормативные документы разработки (в процессе формирования)
Join/Environment
быстрая настройка окружения для сборки пакетов
Spec, SpecTips, TypicalPackagingErrors
информация о том, как собираются пакеты (в процессе упорядочения)
hasher
инструмент для сборки пакетов
sisyphus_check
инструмент для проверки пакетов на соответствие правилам Сизифа
ACL
управление совместной работой над пакетами
git.alt
хостинг git-репозиториев для хранения исходного кода пакетов Сизифа, интерфейс управления ACL, инструмент сборка пакетов в Sisyphus и бранчи
gear
инструмент для хранения исходного кода пакетов в git-репозиториях
Руководство по майнтяинам ALT Linux Team
Новая надежда начинающего мейнтейнера