diff options
Diffstat (limited to 'website/content/ru/portmgr')
| -rw-r--r-- | website/content/ru/portmgr/_index.adoc | 44 | ||||
| -rw-r--r-- | website/content/ru/portmgr/charter.adoc | 28 | ||||
| -rw-r--r-- | website/content/ru/portmgr/policies.adoc | 87 | ||||
| -rw-r--r-- | website/content/ru/portmgr/qa.adoc | 53 |
4 files changed, 212 insertions, 0 deletions
diff --git a/website/content/ru/portmgr/_index.adoc b/website/content/ru/portmgr/_index.adoc new file mode 100644 index 0000000000..5893777e08 --- /dev/null +++ b/website/content/ru/portmgr/_index.adoc @@ -0,0 +1,44 @@ +--- +title: "Группа управления портами" +sidenav: about +--- + +include::shared/ru/urls.adoc[] +include::shared/authors.adoc[] + += Группа управления портами + +Группа управления портами FreeBSD (которую также называют кратко `portmgr` из-за соответствующего адреса электронной почты) отвечает за вопросы, имеющие отношение к http://www.FreeBSD.org/ports[Коллекции Портов FreeBSD]. + +== link:charter[Устав] + +Описаны цели, права и ответственность этой группы. Содержание этого документа согласовано с Управляющим советом FreeBSD. + +== link:policies[Правила] + +Описаны текущие правила, которым следует группа для реализации своих задач. + +== link:qa[Работы по контролю качества] + +Взгляд изнутри на те усилия, которые предпринимаются для обеспечения максимально качественной работы Коллекции Портов. + +== Участники группы + +portmgr@FreeBSD.org: {portmgr-members} + +Секретарь: {erwin} + +== Документация, имеющая отношение к делу + +* link:{porters-handbook}[Руководство по созданию портов FreeBSD] + +Общее руководство для коммиттеров портов FreeBSD, в котором присутствует как техническая информация, так и рекомендации по организации работ. +* http://pointyhat.FreeBSD.org[Кластер построения портов FreeBSD] + +Эти машины постоянно строят пакаджи для всех возможных комбинаций релизов ОС и процессорных архитектур (по нашей терминологии, `сред построения`) и генерируют протоколы ошибок, отражающие проблемы, которые встретились в процессе построения. +* Процедуры построения пакаджей FreeBSD + +Описывает техническую организацию кластера построения. +* Подготовка релизов FreeBSD для пакаджей сторонних разработчиков + +Описывает подходы, используемые группой подготовки релизов FreeBSD для создания высококачественного набора пакаджей, подходящего для размещения на носителях с официальными релизами. Особое внимание уделено тому, как подготовить пакаджи для размещения на носителях и как проверить целостность набора пакаджей. +* {committers-guide}[Руководство коммиттера FreeBSD] + +Включает описание правил и проблем, которые представляют особый интерес для коммиттеров, занимающихся деревом портов. +* link:{pr-guidelines}[Рекомендации по работе с сообщениями о проблемах] + +Хотя этот документ в первую очередь адресован коммиттерам FreeBSD, он должен быть прочитан пользователями, интересующимися тем, как эффективнее всего привлечь внимание к своим PR. diff --git a/website/content/ru/portmgr/charter.adoc b/website/content/ru/portmgr/charter.adoc new file mode 100644 index 0000000000..43e43db0ad --- /dev/null +++ b/website/content/ru/portmgr/charter.adoc @@ -0,0 +1,28 @@ +--- +title: "Устав Группы управления портами" +sidenav: about +--- + += Устав Группы управления портами + +Коллекция Портов FreeBSD является продуктом, предназначенным в большей степени и в первую очередь конечным пользователям FreeBSD. Команда управления портами (portmgr) представляет собой группу, отвечающую за ведение разработок в этой области. Её сотрудники назначаются Управляющим советом FreeBSD (core). + +В основном группа portmgr отвечает за то, чтобы в результате работы сообщества разработчиков портов FreeBSD имеющаяся коллекция портов была функциональной, стабильной, актуальной и обладала полным набором возможностей. Её второй задачей является координация работ коммиттеров и разработчиков, работающих над системой портов. + +Группа управления портами исполняет следующие обязанности: + +* Обеспечивает целостность Коллекции Портов, управляя изменениями, вносимыми в раздел `ports` CVS-хранилища FreeBSD. Сюда включается прямое управление определёнными ключевыми файлами, проведение тестовых построений в случае планирования больших изменениях и исполнение роли арбитра по отношению к другим изменениям. +* Поддержка автоматизированного http://pointyhat.FreeBSD.org[кластера построения пакаджей] и организация доступности для сгрузки получающихся пакаджей пользователями FreeBSD. +* Работает совместно с группой информационной безопасности FreeBSD для гарантии того, что проблемы в защите обнаружены и устраняются своевременно. +* Работает с коммиттерами портов и документации FreeBSD над актуализацией соответствующей документации. +* В той мере, которая вообще возможна в рамках добровольного проекта, обеспечение соблюдения прав авторов, чьи работы помещены в Коллекцию Портов. +* Выступать в роли ведущего арбитра в обсуждениях между членами сообщества FreeBSD, такими как мэйнтейнеры и коммиттеры. +* Управление доступом на выполнение изменений в CVS в дереве портов. Все утверждения новых коммиттеров должны посылаться на адрес admins@ с копией для core@; они должны быть подписаны PGP-ключом. +* Разработка руководящих указаний и политик, отражающих права и обязанности мэйнтейнеров и коммиттеров портов. +* Помощь в приоритетизации будущих направлений развития Коллекции Портов. + +Кроме своих обязанностей, Группа управления портами может предпринимать любые действия, которые, по мнению Группы, пойдут на пользу управления коллекцией портов. + +Пожалуйста, обратитесь к link:../policies[Своду правил группы портов] для выяснения полного списка текущих правил, которые предназначены для реализации этих задач. + +Этот Устав контролируется Управляющим Советом FreeBSD. Он действует, пока не будет модифицирован или отменён Правлением; любые изменения в этот Устав должны согласовываться с Правлением. diff --git a/website/content/ru/portmgr/policies.adoc b/website/content/ru/portmgr/policies.adoc new file mode 100644 index 0000000000..7df6c42775 --- /dev/null +++ b/website/content/ru/portmgr/policies.adoc @@ -0,0 +1,87 @@ +--- +title: "Политики работы Группы управления портами" +sidenav: about +--- + +include::shared/ru/urls.adoc[] + += Политики работы Группы управления портами + +В соответствии со своим link:../charter[Уставом], Команда управления портами применяет определённые политики для достижения каждой из стоящих перед ней целей. + +== Обеспечение целостности Коллекции Портов + +Для того, чтобы добиться целостности Коллекции Портов, portmgr выступает в роли единственного коммиттера для определённых файлов, которые связывают всё воедино, в частности, `bsd.port.mk`. Так как дерево портов не делится на ветки (в отличие от других проектов BSD), любая фатальная ошибка в этих файлах быстро отразится на многих пользователях, выполняющих автоматическое обновление своих портов. + +portmgr также выполняет периодическое построение больших изменений в Коллекции Портов в отдельной области автоматизированного http://pointyhat.FreeBSD.org[кластера построения портов]. В качестве примеров изменений, которые должны тестироваться до их вступления в силу, можно привести следующие: + +* изменения в `bsd.port.mk` +* изменения в пакаджах со многими зависимостями, в том числе серверы X11, GNOME, KDE, пакеты из серии autotools и так далее +* исправления, которые изменяют "рекомендуемый порядок" для make-файлов портов, в частности, определения или использование распространённых make-переменных (`Makevar`). (к примеру, объединение различных реализаций USE_*, WITH_* и так далее) +* большие объёмы прямых изменений в хранилище (например, при разделении существующей категории портов) + +И снова, из-за отсутствия веток в дереве CVS, любые крупные сбои, которые могут быть вызваны любым из вышеописанных действий, должны быть выявлены до того, как они смогут затронуть большое количество пользователей. + +portmgr оставляет за собой право выступать в качестве последнего арбитра для коммитов других разработчиков в отдельных нестандартных ситуациях, в частности: коммиты, которые, по их мнению, дестабилизируют Коллекцию Портов; нарушения POLA (принципа наименьшего изменения) для пользователей FreeBSD, а также случаи разногласий между коммиттерами, которые не могут быть решены ими самостоятельно. + +== Поддержка автоматизированного http://pointyhat.FreeBSD.org[кластера построения портов] + +portmgr поддерживает набор машин, которые автоматически строят пакаджи для разных комбинаций деревьев исходных текстов FreeBSD и архитектур центральных процессоров (в нашей терминологии, `сред построения` или `buildenv`). Если позволяют лицензионные соглашения, то получающиеся пакаджи регулярно записываются на главное зеркало FTP в качестве "новых последних пакаджей", так что они становятся доступными для сгрузки пользователями FreeBSD. Ошибки при построении портов направляются ответственным мэйнтейнерам и/или коммиттерам для принятия мер по исправлению ситуации. + +В некоторых случаях порты могут перестать работать из-за изменений в базовой системе FreeBSD (дерево src/). В таком случае Группа управления портами полагает, что ответственный системный коммиттер разработает исправления для затронутых портов вместе с соответствующими мэйнтейнерами портов. + +== Работа с Группой информационной безопасности FreeBSD + +== Работа с коммиттерами портов и документации FreeBSD + +portmgr будет помогать в поддержании link:{porters-handbook}[Руководства по созданию портов FreeBSD] в актуальном состоянии в том духе, который, по их мнению, являются "наилучшей практикой" для отдельных портов. + +(Целью является не только определение 'правил', но и объяснение того, 'почему в make-файлах сделаны определённые вещи, которые мы считаем правильными'. В частности, существует ряд "частных случаев", для работы с которыми в файлах `bsd.*.mk` присутствует хитроумный код -- например, для обеспечения установки портов с CDROM, по NFS и так далее -- и непонимание этих вопросов может привести к тому, что используемые мэйнтейнерами упрощённые подходы не будут работать в этих крайних случаях.) + +portmgr не является единственным хозяином Руководства по созданию портов, так как оно размещено в дереве `doc/`. Мы рады присылаемым сообщениям об ошибках и приветствуем работу коммиттеров `doc` над добавлением документации, которая помогает описать существующую практику. Однако мы хотели бы запросить, в качестве жеста вежливости, право на пересмотр любых изменений, которые могли бы отразиться на существующих рекомендациях. + +Кроме того, недавно возникла идея создания документа "Права и ответственности мэйнтейнеров портов FreeBSD и коммиттеров". portmgr поддерживает эти усилия и рассмотрит любые предварительные версии документа. + +portmgr также отвечает за некоторую другую документацию, в частности, разделы Руководства коммиттера, касающиеся портов. + +== Уважение юридических прав авторов, чьи работы устанавливаются через Коллекцию Портов + +В той мере, что возможна в рамках добровольного проекта, portmgr будет работать над соблюдением прав тех авторов, чьи работы устанавливаются через Коллекцию Портов. Сюда включается добавление соответствующих записей в файл `ports/LEGAL` и изменение `make-переменных`, управляющих построением пакаджей и, вследствие этого, автоматизированным распространением бинарных файлов. + +В редких случаях по требованию автора при этом также может потребоваться удалить порт и все дистрибутивные и двоичные файлы. + +portmgr просит наших добровольных коммиттеров тщательно соблюдать лицензионные ограничения, накладываемые авторами, при добавлении новых портов, так как для членов portmgr самим сделать это невозможно из-за огромного количества портов. + +== Выполнение роли первого лица при решении споров между такими участниками сообщества FreeBSD, как мэйнтейнеры и коммиттеры + +portmgr призывает участников сообщества FreeBSD работать вместе в согласии в соответствии с принципами, описанными в Руководстве коммиттера. В случае разногласий мы оставляем за собой роль арбитра, что может быть пересмотрено Правлением. + +== Управление доступом с CVS для выполнения коммитов в дерево портов + +Управляющий совет FreeBSD делегировал portmgr ответственность за управление доступом к CVS для выполнения изменений в дереве `ports/`. Правление рассматривает выдачу и лишение прав на выполнение изменений и является последней инстанцией в вопросам, касающихся CVS-хранилища FreeBSD. + +Новые коммиттеры портов выдвигаются действующим коммиттером портов, который хочет выступать в роли наставника. Представление должно включать краткое описание вклада, который внёс представляемый новый коммиттер, в частности, количество присланных сообщений об ошибках, количество портов, поддерживаемых им на данный момент, а также наличие прав на выполнение коммитов в других деревьях, если они есть. + +При голосовании группа будет рассматривать эту историю наравне со всеми прочими имеющими отношение к делу факторами. Результаты голосования доводятся до сведения сообщества разработчиков FreeBSD. + +В соответствии с практикой, применяемой в проекте в целом, неактивные коммиттеры портов периодически опрашиваются на предмет выяснения их состояния и интереса к продолжению работы над деревом портов. Коммиттеры, которые не отвечают на подобные электронные послания, или отвечают негативно, теряют свои права на выполнение коммитов. В настоящее время этот период равен одному году. + +В исключительных случаях может появиться необходимость в удалении коммиттеров портов и по другим причинам. Это будет выполняться после серьёзного обдумывания и является предметом рассмотрения Правлением. + +== Разработка руководств и политик, описывающих права и обязанности коммиттеров и мэйнтейнеров портов + +portmgr отвечает за разработку руководств и политик, описывающих права и обязанности коммиттеров портов и их мэйнтейнеров, такие как предполагаемые стандарты на поддержку порта, условия, при которых мэйнтейнеры могут быть удалены или заменены, а также другие правила. + +Для обеспечения своевременной обработки сообщений об ошибках, касающихся портов, portmgr разработал руководство о том, как долго PR, назначенная коммиттеру, может оставаться открытой до момента, когда её сможет решить другой коммиттер через "тайм-аут от мэйнтейнера". На данный момент этот срок установлен в две недели (не считая заморозок портов и общепринятые праздничные дни.) + +Кроме того, чтобы обеспечить своевременную поддержку портов, portmgr разработал руководство относительно того, как долго мэйнтейнер порта может быть неактивным без лишения его прав на статус мэйнтейнера. "Неактивность" понимается здесь не в буквальном смысле, однако предназначена для контроля таких вещей, как нерешённые открытые PR, выполнение коммитов другими людьми при молчании мэйнтейнера, а также нерешённые проблемы построения. на данный момент этот период определён в три месяца. + +Целью таких правил не является определение наказания или вины, но они должны отражать тот факт, что программное обеспечение, установленное через Коллекцию Портов, быстро развивается без контроля FreeBSD. Частью забот, которую несёт мэйнтейнер порта, является поддержание порта в работоспособном и обновлённом состоянии, насколько это возможно. Было бы несправедливо по отношению к нашим пользователям относиться к решению проблем с прохладцей и позволять использовать старые версии. Однако мы также понимаем, что все наши мэйнтейнеры и коммиттеры являются такими же добровольцами, как и мы, поэтому, как и в любом добровольном проекте, легко перегрузить себя работой или потерять интерес к некоторому порту. + +Мэйнтейнеры и коммиттеры, которые чувствуют, что на них легла слишком большая нагрузка, или которые потеряли интерес к определённому порту, должны свободно просить нового добровольца и/или возвращения порта в общий пул. Это поможет не только поддерживать Коллекцию Портов в актуальном состоянии, но и, как мы надеемся, избежать излишней нагрузки на добровольцев. + +== Приоритетизация будущих направлений развития Коллекции Портов в целом + +portmgr осознаёт, что разработка и развитие Коллекции Портов в первую очередь ведётся руками участников сообщества. Однако, из-за отсутствия веток в Коллекции Портов, иногда необходимо координировать и даже делать выбор между предлагаемыми изменениями. + +В некотором смысле это подразумевается выбор того, какие именно патчи будут приняты для тестирования в кластере построения, а также выработка консенсуса между разными архитектурными подходами, создание списка "интересных проектов" и так далее. diff --git a/website/content/ru/portmgr/qa.adoc b/website/content/ru/portmgr/qa.adoc new file mode 100644 index 0000000000..7413014625 --- /dev/null +++ b/website/content/ru/portmgr/qa.adoc @@ -0,0 +1,53 @@ +--- +title: "Задачи контроля качества для Группы управления портами" +sidenav: about +--- + += Задачи контроля качества для Группы управления портами + +Имеется ряд задач, которые выполняет Группа управления портами в целях улучшения качества Коллекции Портов. Они делятся на две большие категории: <<qa-before-release,мероприятия во время цикла подготовки релиза>> и <<qa-between-releases,мероприятия между циклами подготовки релизов>>. + +[[qa-before-release]] +== Мероприятия во время цикла подготовки релиза + +* Работа с link:{releng}[Группой подготовки релизов] по координации графика выпуска релиза. +* Работа с группой RE по определению того, какие предварительной построенные пакеты могут быть по умолчанию размещены на установочные ISO-образы. +* Управление коммитами в дерево CVS в целях построения пакетов, что подразумевает выполнение следующих шагов: +. Объявление о приостановке работ и генерации пакетов для всех соответствующих архитектур. Часто этот процесс повторяется, потому что либо в разных портах обнаруживаются ошибки, либо изменения в дереве исходных текстов системы создают определённые риски, которые могут привести к тому, что уже построенные пакеты не будут работать после внесения этих изменений. ++ +Для обеспечения целостности и корректности сборки пакетов _все_ коммиты должны быть согласованы с группой управления портами. Обычно разрешаются следующие изменения: +** исправления, влияющие на успешность построения пакета; +** исправления, касающиеся информационной безопасности критических для работы пакетов; +** обнаруженные проблемы с лицензионными соглашениями. +К сожалению, из-за невероятного размера Коллекции Портов и скорости разработки приложений, к моменту выпуска релиза исправить все ошибки невозможно. +. После этого дерево блокируется для любых изменений и помечается CVS-меткой. +. Затем дерево разблокировывается и объявляется о `полировке`. Это состояние нужно для того, чтобы вносить в Коллекцию Портов обычные изменения, но с тем, что они не появятся на ISO с релизом. В коммитах необходимо избегать следующих вещей: +** обновления портов со многими зависимостями, в частности, серверы X11, KDE и GNOME; +** прямые копирования в хранилище многих портов; +** и так далее. ++ +Причина, по которой мы хотим избежать таких коммитов, заключается в том, что если будет найдена какая-то настолько серьёзная проблема (связанная с безопасностью или вопросами лицензирования), что нам придётся делать изменения, которую могут быть перенесены на ISO c релизом, то ко всему прочему нам будет нужно проставлять CVS-метку на эти изменённые файлы. Если мы разрешим абсолютно все виды изменений, то высок риск, что любое такое изменение приведёт к необходимости повторного построения пакетов снова и снова, и в результате процесс подготовки релиза будет бесконечным. ++ +Как только команда RE и portmgr останутся довольными итоговым состоянием ISO с релизом, дерево портов будет снова полностью доступно для коммитов. + +[[qa-between-releases]] +== Мероприятия между циклами подготовки релизов + +* Управление машинами http://pointyhat.FreeBSD.org[кластера построения портов]. Они постоянно строят пакеты для всех возможных комбинаций релизов ОС и архитектур ЦП (по нашей терминологии `сред построения`.) ++ +В процессе этих построений также генерируются протоколы ошибок для пакетов, которые строятся некорректно (обратитесь по URL-адресу выше). Периодически группа помечает эти порты как нерабочие (BROKEN), чтобы это могли увидеть мэйнтейнеры. (Смотрите далее.) ++ +Успешно построенные пакеты (по крайней мере, те, что распространяются свободно) также копируются на главный FTP-сервер и таким образом становятся по умолчанию "самыми последними пакетами" для выполнения установки при помощи пакетов, а не портов. +* Оповещение сообщества FreeBSD о проблемах в Коллекции Портов, чтобы они не были пропущены. Для этого существует некоторое количество отчётов, отправляемых по электронной почте. Те, что отмечены как `общедоступные`, публикуются во freebsd-ports. +** общедоступный перечень портов, удалённых из-за проблем с безопасностью, ошибок построения или общей устарелости, если до этого ситуация не будут исправлена. +** частные письма всем мэйнтейнерам затронутых портов (включая порты, зависящие от указанных выше). +** частные письма всем мэйнтейнерам портов, которые уже помечены как нерабочие (BROKEN) и/или запрещённые (FORBIDDEN). +** частные письма мэйнтейнерам, не являющимся коммиттерами, которые направили PR о собственных портах (для отметки PR, которые могли не направляться им через Cc:). +** сообщение всем о коммитах портов, которые нарушают построение файла INDEX. +** оповещение всех о коммитах портов, в которых мета-данные о версиях меняются в обратную сторону (и таким образом вводят в заблуждение такие инструменты, как portupgrade). +** общедоступный перечень всех портов, которые имеют по крайней мере один файл, который невозможно сгрузить с любого главного сайта, не относящегося к FreeBSD. Полный список результатов проверки доступности всех файлов со всех своих главный сайтов можно найти в http://people.FreeBSD.org/~fenner/portsurvey/[тесте портов Билла Феннера]. +** частные письма мэйнтейнерам затронутых портов, если порт будет помечаться как нерабочий (BROKEN), копия через Cc: направляется последнему коммиттеру порта. (Эта почта не автоматизируется, но она должна посылаться как жест вежливости.) +** список портов, которые не устанавливают NO_LATEST_LINK. (Порты, у которых есть и стабильная версия, и версия в процессе разработки, обычно устанавливают номер версии в разработки на большее значение. Если желательно, чтобы из пакетов пользователи устанавливали стабильную версию, а не версию в разработке, то нужно задать этот параметр; в противном случае по умолчанию пользователи получат последнюю версию.) +* Удаление устаревших портов. Порты, которые уже помечены как BROKEN какой-то период времени, помечаются как DEPRECATED (с установкой EXPIRATION_DATE), а затем удаляются, если за истекшее время никто их не исправил. Целью такого порядка является обеспечение того, что если пользователь установил порт, то он должен иметь максимальные шансы на восстановление работоспособность. ++ +В других случаях порты помечаются как DEPRECATED, если они заменяются на более современные версии, а старые больше автором не поддерживаются. Обычно при этом должна задаваться EXPIRATION_DATE не менее чем в два будущих месяца, что даёт достаточно времени, чтобы произвести обновление. |
