# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" "PO-Revision-Date: 2026-03-05 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.17\n" #. type: YAML Front Matter: description #: documentation/content/en/books/dev-model/_index.adoc:1 #, no-wrap msgid "A formal study of the organization of the FreeBSD project" msgstr "Формальное исследование организации проекта FreeBSD" #. Copyright (c) 2002-2005 Niklas Saers #. All rights reserved. #. Redistribution and use in source and binary forms, with or without #. modification, are permitted provided that the following conditions #. are met: #. 1. Redistributions of source code must retain the above copyright #. notice, this list of conditions and the following disclaimer. #. 2. Redistributions in binary form must reproduce the above copyright #. notice, this list of conditions and the following disclaimer in the #. documentation and/or other materials provided with the distribution. #. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND #. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE #. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE #. ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE #. FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL #. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS #. OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) #. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT #. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY #. OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF #. SUCH DAMAGE. #. type: Title = #: documentation/content/en/books/dev-model/_index.adoc:1 #: documentation/content/en/books/dev-model/_index.adoc:39 #, no-wrap msgid "A project model for the FreeBSD Project" msgstr "Проектная модель для проекта FreeBSD" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:72 msgid "'''" msgstr "'''" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:78 msgid "Foreword" msgstr "Предисловие" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:84 msgid "" "Up until now, the FreeBSD project has released a number of described " "techniques to do different parts of work. However, a project model " "summarising how the project is structured is needed because of the " "increasing amount of project members. footnote:[This goes hand-in-hand with " "Brooks' law that adding another person to a late project will make it later " "since it will increase the communication needs . A project model is a tool " "to reduce the communication needs.] This paper will provide such a project " "model and is donated to the FreeBSD Documentation project where it can " "evolve together with the project so that it can at any point in time reflect " "the way the project works. It is based on [crossref:dev-model[thesis, " "Saers,2003]]." msgstr "" "До настоящего момента проект FreeBSD выпустил ряд описанных методик для " "выполнения различных частей работы. Однако, из-за растущего числа участников " "проекта, необходима модель проекта, обобщающая его структуру. footnote:[Это " "согласуется с законом Брукса, согласно которому добавление нового человека в " "задерживающийся проект сделает его ещё более задержанным, поскольку увеличит " "потребность в коммуникации. Модель проекта — это инструмент для снижения " "потребности в коммуникации.] Данная статья предоставляет такую модель " "проекта и передаётся в проект документации FreeBSD, где она может " "развиваться вместе с проектом, чтобы в любой момент времени отражать способ " "его работы. Она основана на диссертации [crossref:dev-model[thesis, " "Saers,2003]]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:86 msgid "" "I would like to thank the following people for taking the time to explain " "things that were unclear to me and for proofreading the document." msgstr "" "Я хотел бы поблагодарить следующих людей за то, что они нашли время " "объяснить мне непонятные моменты и проверить документ." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:88 msgid "Andrey A. Chernov mailto:ache@freebsd.org[ache@freebsd.org]" msgstr "Andrey A. Chernov mailto:ache@freebsd.org[ache@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:89 msgid "Bruce A. Mah mailto:bmah@freebsd.org[bmah@freebsd.org]" msgstr "Bruce A. Mah mailto:bmah@freebsd.org[bmah@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:90 msgid "Dag-Erling Smørgrav mailto:des@freebsd.org[des@freebsd.org]" msgstr "Dag-Erling Smørgrav mailto:des@freebsd.org[des@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:91 msgid "Giorgos Keramidas mailto:keramida@freebsd.org[keramida@freebsd.org]" msgstr "Giorgos Keramidas mailto:keramida@freebsd.org[keramida@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:92 msgid "" "Ingvil Hovig " "mailto:ingvil.hovig@skatteetaten.no[ingvil.hovig@skatteetaten.no]" msgstr "" "Ingvil Hovig mailto:ingvil.hovig@skatteetaten.no[ingvil.hovig@skatteetaten." "no]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:93 msgid "Jesper Holck mailto:jeh.inf@cbs.dk[jeh.inf@cbs.dk]" msgstr "Jesper Holck mailto:jeh.inf@cbs.dk[jeh.inf@cbs.dk]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:94 msgid "John Baldwin mailto:jhb@freebsd.org[jhb@freebsd.org]" msgstr "John Baldwin mailto:jhb@freebsd.org[jhb@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:95 msgid "John Polstra mailto:jdp@freebsd.org[jdp@freebsd.org]" msgstr "John Polstra mailto:jdp@freebsd.org[jdp@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:96 msgid "Kirk McKusick mailto:mckusick@freebsd.org[mckusick@freebsd.org]" msgstr "Kirk McKusick mailto:mckusick@freebsd.org[mckusick@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:97 msgid "Mark Linimon mailto:linimon@freebsd.org[linimon@freebsd.org]" msgstr "Mark Linimon mailto:linimon@freebsd.org[linimon@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:98 msgid "Marleen Devos" msgstr "Marleen Devos" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:99 msgid "Niels Jørgenssen mailto:nielsj@ruc.dk[nielsj@ruc.dk]" msgstr "Niels Jørgenssen mailto:nielsj@ruc.dk[nielsj@ruc.dk]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:100 msgid "Nik Clayton mailto:nik@freebsd.org[nik@freebsd.org]" msgstr "Nik Clayton mailto:nik@freebsd.org[nik@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:101 msgid "Poul-Henning Kamp mailto:phk@freebsd.org[phk@freebsd.org]" msgstr "Poul-Henning Kamp mailto:phk@freebsd.org[phk@freebsd.org]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:102 msgid "Simon L. Nielsen mailto:simon@freebsd.org[simon@freebsd.org]" msgstr "Simon L. Nielsen mailto:simon@freebsd.org[simon@freebsd.org]" #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:104 #, no-wrap msgid "Overview" msgstr "Обзор" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:109 msgid "" "A project model is a means to reduce the communications overhead in a " "project. As shown by [crossref:dev-model[brooks, Brooks, 1995]], increasing " "the number of project participants increases the communication in the " "project exponentially. FreeBSD has during the past few years increased both " "its mass of active users and committers, and the communication in the " "project has risen accordingly. This project model will serve to reduce this " "overhead by providing an up-to-date description of the project." msgstr "" "Модель проекта — это способ снижения накладных расходов на коммуникации в " "проекте. Как показано в [crossref:dev-model[brooks, Brooks, 1995]], " "увеличение числа участников проекта приводит к экспоненциальному росту " "коммуникаций в проекте. За последние годы FreeBSD значительно увеличил как " "количество активных пользователей, так и коммиттеров, что соответственно " "привело к росту коммуникаций. Данная модель проекта поможет снизить эти " "накладные расходы за счёт предоставления актуального описания проекта." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:115 msgid "" "During the Core elections in 2002, Mark Murray stated \"I am opposed to a " "long rule-book, as that satisfies lawyer-tendencies, and is counter to the " "technocentricity that the project so badly needs.\" [crossref:dev-model[bsd-" "election2002, FreeBSD, 2002B]]. This project model is not meant to be a " "tool to justify creating impositions for developers, but as a tool to " "facilitate coordination. It is meant as a description of the project, with " "an overview of how the different processes are executed. It is an " "introduction to how the FreeBSD project works." msgstr "" "Во время выборов в Core в 2002 году Марк Мюррей заявил: «Я против длинного " "свода правил, так как это удовлетворяет склонности к юриспруденции и " "противоречит техноцентричности, в которой проект так нуждается.» [crossref" ":dev-model[bsd-election2002, FreeBSD, 2002B]]. Эта модель проекта не " "предназначена для того, чтобы оправдывать создание ограничений для " "разработчиков, а служит инструментом для облегчения координации. Она " "призвана описывать проект, давая обзор того, как выполняются различные " "процессы. Это введение в то, как работает проект FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:118 msgid "" "The FreeBSD project model will be described as of July 1st, 2004. It is " "based on the Niels Jørgensen's paper [crossref:dev-model[jorgensen2001, " "Jørgensen, 2001]], FreeBSD's official documents, discussions on FreeBSD " "mailing lists and interviews with developers." msgstr "" "Модель проекта FreeBSD будет описана по состоянию на 1 июля 2004 года. Она " "основана на работе Нильса Йоргенсена [crossref:dev-model[jorgensen2001, " "Jørgensen, 2001]], официальных документах FreeBSD, обсуждениях в списках " "рассылки FreeBSD и интервью с разработчиками." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:121 msgid "" "After providing definitions of terms used, this document will outline the " "organisational structure (including role descriptions and communication " "lines), discuss the methodology model and after presenting the tools used " "for process control, it will present the defined processes. Finally it will " "outline major sub-projects of the FreeBSD project." msgstr "" "После определения используемых терминов в этом документе будет описана " "организационная структура (включая описания ролей и линии коммуникации), " "рассмотрена модель методологии, а после представления инструментов, " "используемых для контроля процессов, будут описаны определённые процессы. В " "заключение будут представлены основные подпроекты проекта FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:125 msgid "" "[crossref:dev-model[freebsd-developer-handbook, FreeBSD, 2002A]] Section 1.2 " "and 1.3 give the vision and the architectural guidelines for the project. " "The vision is \"To produce the best UNIX-like operating system package " "possible, with due respect to the original software tools ideology as well " "as usability, performance and stability.\" The architectural guidelines help " "determine whether a problem that someone wants to be solved is within the " "scope of the project" msgstr "" "[crossref:dev-model[freebsd-developer-handbook, FreeBSD, 2002A]] Разделы 1.2 " "и 1.3 описывают видение и архитектурные принципы проекта. Видение " "сформулировано как: \"Создать наилучший пакет операционной системы, подобной " "UNIX®, с должным уважением к оригинальной идеологии программных " "инструментов, а также к удобству использования, производительности и " "стабильности.\" Архитектурные принципы помогают определить, находится ли " "проблема, которую кто-то хочет решить, в рамках проекта" #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:127 #, no-wrap msgid "Definitions" msgstr "Определения" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:130 #, no-wrap msgid "Activity" msgstr "Активность" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:136 msgid "" "An \"activity\" is an element of work performed during the course of a " "project [crossref:dev-model[ref-pmbok, PMI, 2000]]. It has an output and " "leads towards an outcome. Such an output can either be an input to another " "activity or a part of the process' delivery." msgstr "" "\"Активность\" — это элемент работы, выполняемый в ходе проекта [crossref" ":dev-model[ref-pmbok, PMI, 2000]]. У неё есть результат, который ведёт к " "достижению цели. Такой результат может быть либо входом для другой " "активности, либо частью поставки процесса." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:138 #, no-wrap msgid "Process" msgstr "Процесс" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:143 msgid "" "A \"process\" is a series of activities that lead towards a particular " "outcome. A process can consist of one or more sub-processes. An example of " "a process is software design." msgstr "" "Процесс — это ряд действий, ведущих к определённому результату. Процесс " "может состоять из одного или нескольких подпроцессов. Примером процесса " "является проектирование программного обеспечения." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:145 #, no-wrap msgid "Hat" msgstr "Роль (hat)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:151 msgid "" "A \"hat\" is synonymous with role. A hat has certain responsibilities in a " "process and for the process outcome. The hat executes activities. It is " "well defined what issues the hat should be contacted about by the project " "members and people outside the project." msgstr "" "\"Hat\" (шляпа) является синонимом роли. Роль имеет определённые обязанности " "в процессе и ответственность за результат процесса. Роль выполняет действия. " "Четко определено, по каким вопросам участники проекта и люди вне проекта " "должны обращаться к ответственному, выполняющему эту роль." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:153 #, no-wrap msgid "Outcome" msgstr "Результат" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:161 msgid "" "An \"outcome\" is the final output of the process. This is synonymous with " "deliverable, that is defined as \"any measurable, tangible, verifiable " "outcome, result or item that must be produced to complete a project or part " "of a project. Often used more narrowly in reference to an external " "deliverable, which is a deliverable that is subject to approval by the " "project sponsor or customer\" by [crossref:dev-model[ref-pmbok, PMI, " "2000]]. Examples of outcomes are a piece of software, a decision made or a " "report written." msgstr "" "«Результат» — это конечный продукт процесса. Это синоним понятия «" "поставляемый результат», который определяется как «любой измеримый, " "осязаемый, проверяемый результат, итог или элемент, который должен быть " "произведён для завершения проекта или его части. Часто используется в более " "узком смысле в отношении внешнего поставляемого результата, который подлежит " "утверждению спонсором проекта или заказчиком» согласно [crossref:dev-model" "[ref-pmbok, PMI, 2000]]. Примерами результатов являются программное " "обеспечение, принятое решение или написанный отчёт." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:163 #, no-wrap msgid "FreeBSD" msgstr "FreeBSD" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:166 msgid "" "When saying \"FreeBSD\" we will mean the BSD derivative UNIX-like operating " "system FreeBSD, whereas when saying \"the FreeBSD Project\" we will mean the " "project organisation." msgstr "" "Говоря \"FreeBSD\", мы подразумеваем UNIX-подобную операционную систему " "FreeBSD, основанную на BSD, тогда как говоря \"Проект FreeBSD\", мы " "подразумеваем организацию проекта." #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:168 #, no-wrap msgid "Organisational structure" msgstr "Организационная структура" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:171 msgid "" "While no-one takes ownership of FreeBSD, the FreeBSD organisation is divided " "into core, committers and contributors and is part of the FreeBSD community " "that lives around it." msgstr "" "Хотя никто не является владельцем FreeBSD, организация FreeBSD разделена на " "ядро, коммиттеров и участников и является частью сообщества FreeBSD, которое " "существует вокруг неё." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:173 msgid "The FreeBSD Project's structure (in order of descending authority)" msgstr "Структура проекта FreeBSD (в порядке убывания полномочий)" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:178 #: documentation/content/en/books/dev-model/_index.adoc:213 #, no-wrap msgid "Group" msgstr "Группа" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:180 #: documentation/content/en/books/dev-model/_index.adoc:216 #, no-wrap msgid "Number of people" msgstr "Количество людей" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:181 #: documentation/content/en/books/dev-model/_index.adoc:217 #, no-wrap msgid "Core members" msgstr "Основные участники" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:183 #: documentation/content/en/books/dev-model/_index.adoc:220 #, no-wrap msgid "9" msgstr "9" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:184 #: documentation/content/en/books/dev-model/_index.adoc:221 #, no-wrap msgid "Committers" msgstr "Коммиттеры" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:186 #, no-wrap msgid "318" msgstr "318" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:187 #: documentation/content/en/books/dev-model/_index.adoc:237 #, no-wrap msgid "Contributors" msgstr "Участники" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:188 #: documentation/content/en/books/dev-model/_index.adoc:239 #, no-wrap msgid "~3000" msgstr "~3000" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:191 msgid "" "Number of committers has been determined by going through CVS logs from " "January 1st, 2004 to December 31st, 2004 and contributors by going through " "the list of contributions and problem reports." msgstr "" "Количество коммиттеров было определено путем анализа журналов CVS с 1 января " "2004 года по 31 декабря 2004 года, а список участников — путем просмотра " "перечня внесенных изменений и отчётов о проблемах." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:196 msgid "" "The main resource in the FreeBSD community is its developers: the committers " "and contributors. It is with their contributions that the project can move " "forward. Regular developers are referred to as contributors. As of January " "1st, 2003, there are an estimated 5500 contributors on the project." msgstr "" "Основной ресурс сообщества FreeBSD — это его разработчики: коммиттеры и " "контрибьюторы. Именно их вклад позволяет проекту развиваться. Обычные " "разработчики называются участниками (контрибьюторами). По состоянию на 1 " "января 2003 года в проекте насчитывается около 5500 контрибьюторов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:200 msgid "" "Committers are developers with the privilege of being able to commit " "changes. These are usually the most active developers who are willing to " "spend their time not only integrating their own code but integrating code " "submitted by the developers who do not have this privilege. They are also " "the developers who elect the core team, and they have access to closed " "discussions." msgstr "" "Коммиттеры — это разработчики, обладающие привилегией вносить изменения. " "Обычно это наиболее активные разработчики, которые готовы тратить своё время " "не только на интеграцию собственного кода, но и на интеграцию кода, " "предоставленного разработчиками без такой привилегии. Они также выбирают " "основную команду и имеют доступ к закрытым обсуждениям." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:204 msgid "" "The project can be grouped into four distinct separate parts, and most " "developers will focus their involvement in one part of FreeBSD. The four " "parts are kernel development, userland development, ports and " "documentation. When referring to the base system, both kernel and userland " "is meant." msgstr "" "Проект можно разделить на четыре отдельные части, и большинство " "разработчиков сосредоточат своё участие на одной из частей FreeBSD. Эти " "четыре части — разработка ядра, разработка пользовательского пространства, " "порты и документация. Под базовой системой подразумеваются как ядро, так и " "пользовательское пространство." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:206 msgid "This split changes our table to look like this:" msgstr "Это разделение изменяет нашу таблицу следующим образом:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:208 msgid "The FreeBSD Project's structure with committers in categories" msgstr "" "Структура проекта FreeBSD с участниками, имеющими права на запись, по " "категориям" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:214 #, no-wrap msgid "Category" msgstr "Категория" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:222 #, no-wrap msgid "Base" msgstr "Базовый" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:224 #, no-wrap msgid "164" msgstr "164" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:226 #, no-wrap msgid "Docs" msgstr "Docs" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:228 #, no-wrap msgid "45" msgstr "45" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:230 #, no-wrap msgid "Ports" msgstr "Порты" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:232 #, no-wrap msgid "166" msgstr "166" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:234 #, no-wrap msgid "Total" msgstr "Total" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:236 #, no-wrap msgid "374" msgstr "374" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:244 msgid "" "Number of committers per area has been determined by going through CVS logs " "from January 1st, 2004 to December 31st, 2004. Note that many committers " "work in multiple areas, making the total number higher than the real number " "of committers. The total number of active unique committers on June 2022 " "was 317." msgstr "" "Количество коммиттеров по областям было определено путем анализа журналов " "CVS с 1 января 2004 года по 31 декабря 2004 года. Обратите внимание, что " "многие коммиттеры работают в нескольких областях, поэтому общее число больше " "реального количества коммиттеров. Общее количество активных уникальных " "коммиттеров на июнь 2022 года составляло 317." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:247 msgid "" "Committers fall into three groups: committers who are only concerned with " "one area of the project (for instance file systems), committers who are " "involved only with one sub-project, and committers who commit to different " "parts of the code, including sub-projects. Because some committers work on " "different parts, the total number in the committers section of the table is " "higher than in the above table." msgstr "" "Коммиттеры делятся на три группы: коммиттеры, занимающиеся только одной " "областью проекта (например, файловыми системами), коммиттеры, участвующие " "только в одном подпроекте, и коммиттеры, вносящие изменения в разные части " "кода, включая подпроекты. Поскольку некоторые коммиттеры работают над " "разными частями, общее количество в разделе коммиттеров таблицы выше, чем в " "предыдущей таблице." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:252 msgid "" "The kernel is the main building block of FreeBSD. While the userland " "applications are protected against faults in other userland applications, " "the entire system is vulnerable to errors in the kernel. This, combined " "with the vast amount of dependencies in the kernel and that it is not easy " "to see all the consequences of a kernel change, demands developers with a " "relative full understanding of the kernel. Multiple development efforts in " "the kernel also require a closer coordination than userland applications do." msgstr "" "Ядро является основным строительным блоком FreeBSD. Хотя пользовательские " "приложения защищены от сбоев в других пользовательских приложениях, вся " "система уязвима от ошибок в ядре. Это, в сочетании с огромным количеством " "зависимостей в ядре и тем, что нелегко увидеть все последствия изменения " "ядра, требует от разработчиков относительно полного понимания ядра. " "Множественные усилия по разработке в ядре также требуют более тесной " "координации, чем пользовательские приложения." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:256 msgid "" "The core utilities, known as userland, provide the interface that identifies " "FreeBSD, both user interface, shared libraries and external interfaces to " "connecting clients. Currently, 162 people are involved in userland " "development and maintenance, many being maintainers for their own part of " "the code. Maintainership will be discussed in the crossref:dev-model[role-" "maintainer, Maintainership] section." msgstr "" "Основные утилиты, известные как пользовательское окружение (userland), " "предоставляют интерфейс, который определяет FreeBSD, включая " "пользовательский интерфейс, общие библиотеки и внешние интерфейсы для " "подключения клиентов. В настоящее время 162 человека участвуют в разработке " "и поддержке пользовательского окружения, многие из которых являются " "сопровождающими (maintainers) для своей части кода. Вопросы сопровождения " "будут рассмотрены в разделе crossref:dev-model[role-" "maintainer,Сопровождение]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:259 msgid "" "Documentation is handled by crossref:dev-model[sub-project-documentation, " "The FreeBSD Documentation Project] and includes all documents surrounding " "the FreeBSD project, including the web pages. There were during 2004 101 " "people making commits to the FreeBSD Documentation Project." msgstr "" "Документация обрабатывается crossref:dev-model[sub-project-documentation, " "Проектом документации FreeBSD] и включает все документы, связанные с " "проектом FreeBSD, включая веб-страницы. В течение 2004 года 101 человек " "внесли изменения в Проект документации FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:267 msgid "" "Ports is the collection of meta-data that is needed to make software " "packages build correctly on FreeBSD. An example of a port is the port for " "the web-browser Mozilla. It contains information about where to fetch the " "source, what patches to apply and how, and how the package should be " "installed on the system. This allows automated tools to fetch, build and " "install the package. As of this writing, there are more than 12600 ports " "available. footnote:[Statistics are generated by counting the number of " "entries in the file fetched by portsdb by April 1st, 2005. portsdb is a part " "of the port sysutils/portupgrade.] , ranging from web servers to games, " "programming languages and most of the application types that are in use on " "modern computers. Ports will be discussed further in the section " "crossref:dev-model[sub-project-ports, The Ports Subproject]." msgstr "" "Порты — это коллекция метаданных, необходимых для корректной сборки " "программных пакетов в FreeBSD. Например, порт для веб-браузера Mozilla " "содержит информацию о том, откуда загружать исходный код, какие патчи " "применять и как, а также как пакет должен быть установлен в системе. Это " "позволяет автоматизированным инструментам загружать, собирать и " "устанавливать пакеты. На момент написания доступно более 12600 портов " "footnote:[Статистика получена подсчётом количества записей в файле, " "загруженном portsdb на 1 апреля 2005 года. portsdb является частью порта " "sysutils/portupgrade.], начиная от веб-серверов и игр до языков " "программирования и большинства типов приложений, используемых на современных " "компьютерах. Порты подробно рассматриваются в разделе crossref:dev-model[sub-" "project-ports, Подпроект Ports]." #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:269 #, no-wrap msgid "Methodology model" msgstr "Методологическая модель" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:272 #, no-wrap msgid "Development model" msgstr "Модель разработки" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:276 msgid "" "There is no defined model for how people write code in FreeBSD. However, " "Niels Jørgenssen has suggested a model of how written code is integrated " "into the project." msgstr "" "Не существует определённой модели того, как люди пишут код в FreeBSD. Однако " "Нильс Йоргенссен предложил модель того, как написанный код интегрируется в " "проект." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:278 #: documentation/content/en/books/dev-model/_index.adoc:877 msgid "Jørgenssen's model for change integration" msgstr "Модель Йоргенссена для интеграции изменений" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:283 #: documentation/content/en/books/dev-model/_index.adoc:882 #, no-wrap msgid "Stage" msgstr "Этап" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:284 #: documentation/content/en/books/dev-model/_index.adoc:883 #, no-wrap msgid "Next if successful" msgstr "Следующий, если успешно" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:286 #: documentation/content/en/books/dev-model/_index.adoc:885 #, no-wrap msgid "Next if unsuccessful" msgstr "Следующий, если неудачно" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:287 #: documentation/content/en/books/dev-model/_index.adoc:294 #: documentation/content/en/books/dev-model/_index.adoc:298 #: documentation/content/en/books/dev-model/_index.adoc:302 #: documentation/content/en/books/dev-model/_index.adoc:306 #: documentation/content/en/books/dev-model/_index.adoc:309 #: documentation/content/en/books/dev-model/_index.adoc:886 #: documentation/content/en/books/dev-model/_index.adoc:893 #: documentation/content/en/books/dev-model/_index.adoc:897 #: documentation/content/en/books/dev-model/_index.adoc:901 #: documentation/content/en/books/dev-model/_index.adoc:905 #: documentation/content/en/books/dev-model/_index.adoc:908 #, no-wrap msgid "code" msgstr "программирование" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:288 #: documentation/content/en/books/dev-model/_index.adoc:291 #: documentation/content/en/books/dev-model/_index.adoc:887 #: documentation/content/en/books/dev-model/_index.adoc:890 #, no-wrap msgid "review" msgstr "рецензирование" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:292 #: documentation/content/en/books/dev-model/_index.adoc:295 #: documentation/content/en/books/dev-model/_index.adoc:891 #: documentation/content/en/books/dev-model/_index.adoc:894 #, no-wrap msgid "pre-commit test" msgstr "предварительная проверка перед коммитом" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:296 #: documentation/content/en/books/dev-model/_index.adoc:299 #: documentation/content/en/books/dev-model/_index.adoc:895 #: documentation/content/en/books/dev-model/_index.adoc:898 #, no-wrap msgid "development release" msgstr "релиз для разработки" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:300 #: documentation/content/en/books/dev-model/_index.adoc:303 #: documentation/content/en/books/dev-model/_index.adoc:899 #: documentation/content/en/books/dev-model/_index.adoc:902 #, no-wrap msgid "parallel debugging" msgstr "параллельная отладка" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:304 #: documentation/content/en/books/dev-model/_index.adoc:307 #: documentation/content/en/books/dev-model/_index.adoc:903 #: documentation/content/en/books/dev-model/_index.adoc:906 #, no-wrap msgid "production release" msgstr "релиз для производства" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:313 msgid "" "The \"development release\" is the FreeBSD-CURRENT (\"-CURRENT\") branch and " "the \"production release\" is the FreeBSD-STABLE branch (\"-STABLE\") " "[crossref:dev-model[jorgensen2001, Jørgensen, 2001]]." msgstr "" "\"Релиз для разработки\" — это ветка FreeBSD-CURRENT (\"-CURRENT\"), а " "\"релиз для производства\" — ветка FreeBSD-STABLE (\"-STABLE\") [crossref" ":dev-model[jorgensen2001, Jørgensen, 2001]]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:319 msgid "" "This is a model for one change, and shows that after coding, developers seek " "community review and try integrating it with their own systems. After " "integrating the change into the development release, called FreeBSD-CURRENT, " "it is tested by many users and developers in the FreeBSD community. After " "it has gone through enough testing, it is merged into the production " "release, called FreeBSD-STABLE. Unless each stage is finished successfully, " "the developer needs to go back and make modifications in the code and " "restart the process. To integrate a change with either -CURRENT or -STABLE " "is called making a commit." msgstr "" "Это модель для одного изменения, которая показывает, что после написания " "кода разработчики ищут рецензирование сообщества и пытаются интегрировать " "это изменение в свои собственные системы. После интеграции изменения в " "версию разработки, называемую FreeBSD-CURRENT, оно тестируется многими " "пользователями и разработчиками сообщества FreeBSD. После достаточного " "тестирования оно объединяется с производственной версией, называемой FreeBSD-" "STABLE. Если каждая стадия не завершена успешно, разработчику необходимо " "вернуться, внести изменения в код и перезапустить процесс. Интеграция " "изменения в -CURRENT или -STABLE называется выполнением коммита." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:322 msgid "" "Jørgensen found that most FreeBSD developers work individually, meaning that " "this model is used in parallel by many developers on the different ongoing " "development efforts. A developer can also be working on multiple changes, " "so that while they are waiting for review or people to test one or more of " "their changes, they may be writing another change." msgstr "" "Йоргенсен обнаружил, что большинство разработчиков FreeBSD работают " "индивидуально, то есть эта модель используется параллельно многими " "разработчиками в различных текущих процессах разработки. Разработчик также " "может работать над несколькими изменениями одновременно, поэтому, ожидая " "рецензирования или тестирования одного или нескольких своих изменений, он " "может писать другое изменение." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:325 msgid "" "As each commit represents an increment, this is a massively incremental " "model. The commits are in fact so frequent that during one year footnote:" "[The period from January 1st, 2004 to December 31st, 2004 was examined to " "find this number.] , 85427 commits were made, making a daily average of 233 " "commits." msgstr "" "Поскольку каждый коммит представляет собой инкрементальное изменение, это " "модель с очень высокой степенью инкрементальности. Коммиты происходят " "настолько часто, что за один год footnote:[Для получения этого числа был " "исследован период с 1 января 2004 года по 31 декабря 2004 года.], было " "сделано 85427 коммитов, что составляет в среднем 233 коммита в день." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:329 msgid "" "Within the \"code\" bracket in Jørgensen's model, each programmer has their " "own working style and follows their own development models. The bracket " "could very well have been called \"development\" as it includes requirements " "gathering and analysis, system and detailed design, implementation and " "verification. However, the only output from these stages is the source code " "or system documentation." msgstr "" "В рамках \"программирования\" в модели Йоргенсена, каждый программист имеет " "свой собственный стиль работы и следует своим собственным моделям " "разработки. Этот этап вполне мог бы называться \"разработкой\", так как он " "включает сбор и анализ требований, системное и детальное проектирование, " "реализацию и проверку. Однако, единственным результатом этих подэтапов " "являются исходный код или документация системы." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:335 msgid "" "From a stepwise model's perspective (such as the waterfall model), the other " "brackets can be seen as further verification and system integration. This " "system integration is also important to see if a change is accepted by the " "community. Up until the code is committed, the developer is free to choose " "how much to communicate about it to the rest of the project. In order for " "-CURRENT to work as a buffer (so that bright ideas that had some " "undiscovered drawbacks can be backed out) the minimum time a commit should " "be in -CURRENT before merging it to -STABLE is 3 days. Such a merge is " "referred to as an MFC (Merge From Current)." msgstr "" "С точки зрения пошаговой модели (такой как каскадная модель), остальные " "этапы можно рассматривать как дальнейшую проверку и интеграцию системы. Эта " "интеграция системы также важна для определения того, будет ли изменение " "принято сообществом. До момента фиксации кода разработчик волен выбирать, " "насколько активно он будет обсуждать его с остальными участниками проекта. " "Чтобы -CURRENT мог выполнять роль буфера (позволяя откатывать идеи, которые " "оказались с невыявленными недостатками), минимальный срок, в течение " "которого изменения должны оставаться в -CURRENT перед слиянием в -STABLE, " "составляет 3 дня. Такое слияние называется MFC (Merge From Current)." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:338 msgid "" "It is important to notice the word \"change\". Most commits do not contain " "radical new features, but are maintenance updates." msgstr "" "Важно обратить внимание на слово \"изменение\". Большинство коммитов не " "содержат радикально новых функций, а представляют собой обновления для " "поддержки." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:341 msgid "" "The only exceptions from this model are security fixes and changes to " "features that are deprecated in the -CURRENT branch. In these cases, " "changes can be committed directly to the -STABLE branch." msgstr "" "Единственными исключениями из этой модели являются исправления безопасности " "и изменения в функциях, объявленных устаревшими в ветке -CURRENT. В этих " "случаях изменения могут быть внесены напрямую в ветку -STABLE." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:346 msgid "" "In addition to many people working on the project, there are many related " "projects to the FreeBSD Project. These are either projects developing brand " "new features, sub-projects or projects whose outcome is incorporated into " "FreeBSD footnote:[For instance, the development of the Bluetooth stack " "started as a sub-project until it was deemed stable enough to be merged into " "the -CURRENT branch. Now it is a part of the core FreeBSD system.]. These " "projects fit into the FreeBSD Project just like regular development efforts: " "they produce code that is integrated with the FreeBSD Project. However, " "some of them (like Ports and Documentation) have the privilege of being " "applicable to both branches or commit directly to both -CURRENT and -STABLE." msgstr "" "В дополнение к множеству людей, работающих над проектом, существует " "множество связанных проектов в рамках FreeBSD. Это могут быть проекты, " "разрабатывающие совершенно новые функции, подпроекты или проекты, результаты " "которых интегрируются в FreeBSD footnote:[Например, разработка стека " "Bluetooth начиналась как подпроект, пока не была признана достаточно " "стабильной для включения в ветку -CURRENT. Теперь это часть основной системы " "FreeBSD.]. Эти проекты вписываются в FreeBSD так же, как и обычные " "разработки: они создают код, который интегрируется с проектом FreeBSD. " "Однако некоторые из них (например, Ports и Documentation) имеют привилегию " "применяться к обеим веткам или коммитить напрямую как в -CURRENT, так и в " "-STABLE." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:353 msgid "" "There is no standards to how design should be done, nor is design collected " "in a centralised repository. The main design is that of 4.4BSD. footnote:" "[According to Kirk McKusick, after 20 years of developing UNIX operating " "systems, the interfaces are for the most part figured out. There is " "therefore no need for much design. However, new applications of the system " "and new hardware leads to some implementations being more beneficial than " "those that used to be preferred. One example is the introduction of web " "browsing that made the normal TCP/IP connection a short burst of data rather " "than a steady stream over a longer period of time.] As design is a part of " "the \"Code\" bracket in Jørgenssen's model, it is up to every developer or " "sub-project how this should be done. Even if the design should be stored in " "a central repository, the output from the design stages would be of limited " "use as the differences of methodologies would make them poorly if at all " "interoperable. For the overall design of the project, the project relies on " "the sub-projects to negotiate fit interfaces between each other rather than " "to dictate interfacing." msgstr "" "Не существует стандартов по выполнению проектирования, также как и " "централизованного репозитория для хранения проектов. Основной дизайн взят из " "4.4BSD. footnote:[По словам Кирка МакКузика, после 20 лет разработки " "операционных систем UNIX, интерфейсы в основном уже определены. Поэтому нет " "необходимости в большом количестве проектирования. Однако новые применения " "системы и новое оборудование приводят к тому, что некоторые реализации " "становятся более выгодными по сравнению с ранее предпочитаемыми. Одним из " "примеров является появление веб-браузинга, который превратил обычное TCP/IP-" "соединение в короткие всплески данных, а не в устойчивый поток за более " "длительный период времени.] Поскольку проектирование является частью этапа " "\"Программирование\" в модели Йоргенсена, каждый разработчик или подпроект " "сам решает, как это должно выполняться. Даже если проектирование должно " "храниться в централизованном репозитории, результаты этапов проектирования " "будут иметь ограниченную полезность, так как различия в методологиях сделают " "их плохо совместимыми, если вообще совместимыми. Для общего проектирования " "проекта, проект полагается на подпроекты, которые договариваются о " "совместимых интерфейсах между собой, а не на диктат интерфейсов." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:355 #, no-wrap msgid "Release branches" msgstr "Ветви релизов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:359 msgid "" "The releases of FreeBSD are best illustrated by a tree with many branches " "where each major branch represents a major version. Minor versions are " "represented by branches of the major branches." msgstr "" "Версии FreeBSD лучше всего иллюстрируются деревом с множеством ветвей, где " "каждая основная ветвь представляет основную версию. Минорные версии " "представлены ветвями основных ветвей." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:366 msgid "" "In the following release tree, arrows that follow one-another in a " "particular direction represent a branch. Boxes with full lines and diamonds " "represent official releases. Boxes with dotted lines represent the " "development branch at that time. Security branches are represented by " "ovals. Diamonds differ from boxes in that they represent a fork, meaning a " "place where a branch splits into two branches where one of the branches " "becomes a sub-branch. For example, at 4.0-RELEASE the 4.0-CURRENT branch " "split into 4-STABLE and 5.0-CURRENT. At 4.5-RELEASE, the branch forked off a " "security branch called RELENG_4_5." msgstr "" "В следующем дереве релизов стрелки, следующие друг за другом в определённом " "направлении, представляют ветку. Прямоугольники со сплошными линиями и ромбы " "обозначают официальные релизы. Прямоугольники с пунктирными линиями " "представляют ветку разработки на тот момент. Ветки безопасности обозначены " "овалами. Ромбы отличаются от прямоугольников тем, что они представляют " "развилку, то есть место, где ветка разделяется на две ветки, одна из которых " "становится подветкой. Например, на 4.0-RELEASE ветка 4.0-CURRENT разделилась " "на 4-STABLE и 5.0-CURRENT. На 4.5-RELEASE ветка разветвилась на ветку " "безопасности под названием RELENG_4_5." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:367 #, no-wrap msgid "The FreeBSD release tree" msgstr "Дерево релизов FreeBSD" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/dev-model/_index.adoc:368 #, no-wrap msgid "Refer to table below for a screen-reader friendly version." msgstr "Обратитесь к таблице ниже для удобной версии для экранных дикторов." #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:368 #, no-wrap msgid "branches.png" msgstr "branches.png" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:374 #, no-wrap msgid "Major release" msgstr "Основные выпуски" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:375 #, no-wrap msgid "Forked from" msgstr "Форк сделан из" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:377 #, no-wrap msgid "Following minor releases" msgstr "Следующие минорные выпуски" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:378 #: documentation/content/en/books/dev-model/_index.adoc:398 #, no-wrap msgid "..." msgstr "..." #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:382 #, no-wrap msgid "3.0 Current (development branch)" msgstr "3.0 Current (ветка разработки)" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:385 #, no-wrap msgid "Releng 3 branches: 3.0 Release to 3.5 Release, leading to 3.5.1 Release and the subsequent 3 Stable branch" msgstr "" "Ветки Releng 3: выпуски с 3.0 Release по 3.5 Release, ведущие к выпуску " "3.5.1 Release и последующей ветке 3 Stable" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:386 #, no-wrap msgid "4.0 Current (development branch)" msgstr "4.0 Current (ветка разработки)" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:387 #, no-wrap msgid "3.1 Release" msgstr "Релиз 3.1" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:389 #, no-wrap msgid "Releng 4 branches: 4.1 Release to 4.6 Release (and 4.6.2 Release), then 4.7 Release to 4.11 Release (all starting at 4.3 Release also leading to a Releng_4_n branch), and the subsequent 4 Release branch" msgstr "" "Ветви Releng 4: релизы с 4.1 по 4.6 (и релиз 4.6.2), затем релизы с 4.7 по " "4.11 (все, начиная с релиза 4.3, также ведущие к ветви Releng_4_n), и " "последующая ветвь релиза 4" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:390 #, no-wrap msgid "5.0 Current (development branch)" msgstr "5.0 Current (ветка разработки)" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:391 #, no-wrap msgid "4.0 Release" msgstr "Релиз 4.0" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:393 #, no-wrap msgid "Releng 5 branches: 5.0 Release to 5.4 Release (all except 5.0 and 5.3 also leading to a Releng_5_n branch), and the subsequent 5 Release branch" msgstr "" "Ветви Releng 5: Релизы с 5.0 до 5.4 (за исключением 5.0 и 5.3, которые также " "ведут к ветке Releng_5_n), и последующая ветка релиза 5" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:394 #, no-wrap msgid "6.0 Current (development branch)" msgstr "6.0 Current (ветка разработки)" #. type: Table #: documentation/content/en/books/dev-model/_index.adoc:395 #, no-wrap msgid "5.3 Release" msgstr "Релиз 5.3" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:405 msgid "" "The latest -CURRENT version is always referred to as -CURRENT, while the " "latest -STABLE release is always referred to as -STABLE. In this figure, " "-STABLE refers to 4-STABLE while -CURRENT refers to 5.0-CURRENT following " "5.0-RELEASE. [crossref:dev-model[freebsd-releng, FreeBSD, 2002E]]" msgstr "" "Последняя версия -CURRENT всегда обозначается как -CURRENT, а последний " "релиз -STABLE всегда обозначается как -STABLE. На этом рисунке -STABLE " "относится к 4-STABLE, а -CURRENT относится к 5.0-CURRENT после 5.0-RELEASE. " "[crossref:dev-model[freebsd-releng, FreeBSD, 2002E]]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:412 msgid "" "A \"major release\" is always made from the -CURRENT branch. However, the " "-CURRENT branch does not need to fork at that point in time, but can focus " "on stabilising. An example of this is that following 3.0-RELEASE, 3.1-" "RELEASE was also a continuation of the -CURRENT-branch, and -CURRENT did not " "become a true development branch until this version was released and the 3-" "STABLE branch was forked. When -CURRENT returns to becoming a development " "branch, it can only be followed by a major release. 5-STABLE is predicted " "to be forked off 5.0-CURRENT at around 5.3-RELEASE. It is not until 5-" "STABLE is forked that the development branch will be branded 6.0-CURRENT." msgstr "" "«Основной выпуск» всегда создаётся из ветки -CURRENT. Однако ветка -CURRENT " "не обязательно должна разветвляться в этот момент, а может сосредоточиться " "на стабилизации. Примером этого является то, что после 3.0-RELEASE, 3.1-" "RELEASE также был продолжением ветки -CURRENT, и -CURRENT не стал настоящей " "веткой разработки до тех пор, пока не был выпущен этот релиз и не была " "создана ветка 3-STABLE. Когда -CURRENT снова становится веткой разработки, " "за ним может следовать только основной выпуск. Ожидается, что ветка 5-STABLE " "будет отделена от 5.0-CURRENT примерно на момент выпуска 5.3-RELEASE. Только " "после отделения 5-STABLE ветка разработки получит название 6.0-CURRENT." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:414 msgid "" "A \"minor release\" is made from the -CURRENT branch following a major " "release, or from the -STABLE branch." msgstr "" "\"Минорный релиз\" создается из ветки -CURRENT после основного релиза или из " "ветки -STABLE." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:417 msgid "" "Following and including, 4.3-RELEASEfootnote:[The first release this " "actually happened for was 4.5-RELEASE, but security branches were at the " "same time created for 4.3-RELEASE and 4.4-RELEASE.], when a minor release " "has been made, it becomes a \"security branch\". This is meant for " "organisations that do not want to follow the -STABLE branch and the " "potential new/changed features it offers, but instead require an absolutely " "stable environment, only updating to implement security updates. footnote:" "[There is a terminology overlap with respect to the word \"stable\", which " "leads to some confusion. The -STABLE branch is still a development branch, " "whose goal is to be useful for most people. If it is never acceptable for a " "system to get changes that are not announced at the time it is deployed, " "that system should run a security branch.]" msgstr "" "Начиная с версии 4.3-RELEASE footnote:[Первым релизом, для которого это " "действительно произошло, был 4.5-RELEASE, но ветки безопасности были созданы " "одновременно для 4.3-RELEASE и 4.4-RELEASE.], когда выпускается минорный " "релиз, он становится «веткой безопасности». Это предназначено для " "организаций, которые не хотят следовать ветке -STABLE и потенциальным новым/" "изменённым функциям, которые она предлагает, но вместо этого требуют " "абсолютно стабильной среды, обновляемой только для внедрения исправлений " "безопасности. footnote:[Здесь вы видите терминологическое пересечение со " "словом «стабильный», что приводит к некоторой путанице. Ветка -STABLE по-" "прежнему является веткой разработки, цель которой — быть полезной для " "большинства пользователей. Если для системы неприемлемо получать изменения, " "которые не были объявлены на момент её развёртывания, такая система должна " "работать на ветке безопасности.]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:422 msgid "" "Each update to a security branch is called a \"patchlevel\". For every " "security enhancement that is done, the patchlevel number is increased, " "making it easy for people tracking the branch to see what security " "enhancements they have implemented. In cases where there have been " "especially serious security flaws, an entire new release can be made from a " "security branch. An example of this is 4.6.2-RELEASE." msgstr "" "Каждое обновление в ветке безопасности называется \"уровнем исправления\" " "(patchlevel). Для каждого выполненного улучшения безопасности номер уровня " "исправления увеличивается, что позволяет легко отслеживать, какие улучшения " "безопасности были реализованы. В случаях особенно серьезных уязвимостей " "безопасности может быть выпущен полностью новый релиз из ветки безопасности. " "Примером этого является 4.6.2-RELEASE." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:424 #, no-wrap msgid "Model summary" msgstr "Сводка модели" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:427 msgid "" "To summarise, the development model of FreeBSD can be seen as the following " "tree:" msgstr "" "Для подведения итогов, модель разработки FreeBSD можно представить в виде " "следующего дерева:" #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:428 #, no-wrap msgid "The overall development model" msgstr "Общая модель разработки" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/dev-model/_index.adoc:429 #: documentation/content/en/books/dev-model/_index.adoc:1109 #, no-wrap msgid "Refer to paragraphs below for a screen-reader friendly version." msgstr "Обратитесь к параграфам ниже для версии, удобной для экранных дикторов." #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:429 #, no-wrap msgid "freebsd-code-model.png" msgstr "freebsd-code-model.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:432 msgid "" "The tree of the FreeBSD development with ongoing development efforts and " "continuous integration." msgstr "" "Дерево разработки FreeBSD с текущими усилиями по разработке и непрерывной " "интеграцией." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:436 msgid "" "The tree symbolises the release versions with major versions spawning new " "main branches and minor versions being versions of the main branch. The top " "branch is the -CURRENT branch where all new development is integrated, and " "the -STABLE branch is the branch directly below it. Below the -STABLE " "branch are old, unsupported versions." msgstr "" "Дерево символизирует версии выпусков, где основные версии порождают новые " "главные ветви, а второстепенные версии являются версиями главной ветви. " "Верхняя ветвь — это ветвь -CURRENT, в которую интегрируется вся новая " "разработка, а ветвь -STABLE находится непосредственно под ней. Под ветвью -" "STABLE находятся старые, неподдерживаемые версии." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:440 msgid "" "Clouds of development efforts hang over the project where developers use the " "development models they see fit. The product of their work is then " "integrated into -CURRENT where it undergoes parallel debugging and is " "finally merged from -CURRENT into -STABLE. Security fixes are merged from " "-STABLE to the security branches." msgstr "" "Проект находится в тумане постоянной разработки, и разработчики выбирают " "модели разработки, которые считают подходящими. Результаты их работы затем " "интегрируются в -CURRENT, где проходят параллельную отладку, и наконец " "объединяются из -CURRENT в -STABLE. Исправления безопасности объединяются из " "-STABLE в ветки безопасности." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:447 msgid "" "Many committers have a special area of responsibility. These roles are " "called hats. These hats can be either project roles, such as public " "relations officer, or maintainer for a certain area of the code. Because " "this is a project where people give voluntarily of their spare time, people " "with assigned hats are not always available. They must therefore appoint a " "deputy that can perform the hat's role in their absence. The other option " "is to have the role held by a group." msgstr "" "Многие коммиттеры имеют специальную область ответственности. Эти роли " "называются \"hats\" (шляпами). Эти роли могут быть либо проектными ролями, " "например, офицер по связям с общественностью, либо сопровождающим " "определённой части кода. Поскольку это проект, где люди добровольно уделяют " "своё свободное время, люди с назначенными ролями не всегда доступны. Поэтому " "они должны назначить заместителя, который может выполнять эту роль в их " "отсутствие. Другой вариант — передать роль группе." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:452 msgid "" "Many of these hats are not formalised. Formalised hats have a charter " "stating the exact purpose of the hat along with its privileges and " "responsibilities. The writing of such charters is a new part of the " "project, and has thus yet to be completed for all hats. These hat " "descriptions are not such a formalisation, rather a summary of the role with " "links to the charter where available and contact addresses." msgstr "" "Многие из этих ролей не формализованы. Формализованные роли имеют устав, в " "котором указаны точные цели, привилегии и обязанности. Написание таких " "уставов — новая часть проекта, поэтому оно ещё не завершено для всех ролей. " "Эти описания ролей не являются формализацией, а скорее представляют собой " "краткое описание роли со ссылками на устав, где он доступен, и контактными " "адресами." #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:454 #, no-wrap msgid "Hats" msgstr "Ответственные" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:457 #, no-wrap msgid "General Hats" msgstr "Стандартные роли" #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:460 #, no-wrap msgid "Contributor" msgstr "Участник (контрибьютор)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:465 msgid "" "A Contributor contributes to the FreeBSD project either as a developer, as " "an author, by sending problem reports, or in other ways contributing to the " "progress of the project. A contributor has no special privileges in the " "FreeBSD project. [crossref:dev-model[freebsd-contributors, FreeBSD, 2002F]]" msgstr "" "Участник вносит вклад в проект FreeBSD в качестве разработчика, автора, " "отправляя отчёты о проблемах или другими способами способствуя прогрессу " "проекта. Участник не имеет особых привилегий в проекте FreeBSD. [crossref" ":dev-model[freebsd-contributors, FreeBSD, 2002F]]" #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:467 #, no-wrap msgid "Committer" msgstr "Коммиттер" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:472 msgid "" "A person who has the required privileges to add their code or documentation " "to the repository. A committer has made a commit within the past 12 " "months. [crossref:dev-model[freebsd-developer-handbook, FreeBSD, 2000A]] An " "active committer is a committer who has made an average of one commit per " "month during that time." msgstr "" "Человек, обладающий необходимыми привилегиями для добавления своего кода или " "документации в репозиторий. Коммиттер совершил коммит в течение последних 12 " "месяцев. [crossref:dev-model[freebsd-developer-handbook, FreeBSD, 2000A]] " "Активный коммиттер — это коммиттер, который в среднем совершал один коммит в " "месяц в течение этого времени." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:475 msgid "" "It is worth noting that there are no technical barriers to prevent someone, " "once having gained commit privileges to the main- or a sub-project, to make " "commits in parts of that project's source the committer did not specifically " "get permission to modify. However, when wanting to make modifications to " "parts a committer has not been involved in before, they should read the logs " "to see what has happened in this area before, and also read the MAINTAINERS " "file to see if the maintainer of this part has any special requests on how " "changes in the code should be made." msgstr "" "Стоит отметить, что нет технических препятствий, которые могли бы помешать " "кому-либо, получившему права на коммиты в основном или подпроекте, делать " "коммиты в частях исходного кода проекта, для которых у коммиттера нет явного " "разрешения на изменение. Однако, при желании внести изменения в части, с " "которыми коммиттер ранее не работал, следует изучить логи, чтобы понять, что " "происходило в этой области ранее, а также прочитать файл MAINTAINERS, чтобы " "узнать, есть ли у сопровождающего этой части какие-либо особые требования к " "внесению изменений в код." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:477 #, no-wrap msgid "Core Team" msgstr "Основная команда (Core Team)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:483 msgid "" "The core team is elected by the committers from the pool of committers and " "serves as the board of directors of the FreeBSD project. It promotes active " "contributors to committers, assigns people to well-defined hats, and is the " "final arbiter of decisions involving which way the project should be " "heading. As of July 1st, 2004, core consisted of 9 members. Elections are " "held every two years." msgstr "" "Основная команда избирается коммиттерами из числа коммиттеров и выполняет " "функции совета директоров проекта FreeBSD. Она повышает активных участников " "до коммиттеров, назначает людей на четко определённые роли (hats) и является " "окончательным арбитром при принятии решений о направлении развития проекта. " "На 1 июля 2004 года в состав основной команды входило 9 членов. Выборы " "проводятся каждые два года." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:485 #, no-wrap msgid "Maintainership" msgstr "Сопровождение" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:489 msgid "" "Maintainership means that the person is responsible for what is allowed to " "go into that area of the code and has the final say should disagreements " "over the code occur. This involves proactive work aimed at stimulating " "contributions and reactive work in reviewing commits." msgstr "" "Сопровождение означает, что человек ответственен за то, что допускается в " "определённую часть кода, и имеет решающее слово в случае разногласий по " "поводу кода. Это включает в себя как активную работу, направленную на " "стимулирование участников (контрибьюторов), так и реактивную работу по " "рецензированию коммитов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:492 msgid "" "With the FreeBSD source comes the MAINTAINERS file that contains a one-line " "summary of how each maintainer would like contributions to be made. Having " "this notice and contact information enables developers to focus on the " "development effort rather than being stuck in a slow correspondence should " "the maintainer be unavailable for some time." msgstr "" "В исходном коде FreeBSD есть файл MAINTAINERS, содержащий краткое описание " "того, как каждый сопровождающий предпочитает получать вклады. Наличие этого " "уведомления и контактной информации позволяет разработчикам сосредоточиться " "на разработке, а не застревать в медленной переписке, если сопровождающий " "будет недоступен в течение некоторого времени." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:495 msgid "" "If the maintainer is unavailable for an unreasonably long period of time, " "and other people do a significant amount of work, maintainership may be " "switched without the maintainer's approval. This is based on the stance " "that maintainership should be demonstrated, not declared." msgstr "" "Если сопровождающий недоступен в течение неоправданно долгого времени, и " "другие люди выполняют значительный объём работы, сопровождение может быть " "передано без согласия сопровождающего. Это основано на позиции, что " "сопровождение должно быть продемонстрировано, а не заявлено." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:497 msgid "" "Maintainership of a particular piece of code is a hat that is not held as a " "group." msgstr "" "Сопровождение определённого участка кода — это роль, которая не " "осуществляется коллективно." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:499 #, no-wrap msgid "Official Hats" msgstr "Официальные роли" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:504 msgid "" "The official hats in the FreeBSD Project are hats that are more or less " "formalised and mainly administrative roles. They have the authority and " "responsibility for their area. The following list shows the responsibility " "lines and gives a description of each hat, including who it is held by." msgstr "" "Официальные роли в проекте FreeBSD — это более или менее формализованные и в " "основном административные должности. Они обладают полномочиями и " "ответственностью в своей области. В следующем списке показаны направления " "ответственности и дано описание каждой роли, включая информацию о том, кто " "её занимает." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:506 #, no-wrap msgid "Documentation project manager" msgstr "Менеджер проекта документации" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:509 msgid "" "crossref:dev-model[sub-project-documentation, The FreeBSD Documentation " "Project] architect is responsible for defining and following up " "documentation goals for the committers in the Documentation project, which " "they supervise." msgstr "" "Архитектор crossref:dev-model[sub-project-documentation, Проекта " "документации FreeBSD] отвечает за определение и контроль целей документации " "для коммиттеров в проекте Документации, за которым они присматривают." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:512 msgid "" "Hat held by: The DocEng team mailto:doceng@FreeBSD.org[doceng@FreeBSD.org]. " "The https://www.freebsd.org/internal/doceng/[ DocEng Charter]." msgstr "" "Роль поддерживается: Командой DocEng mailto:doceng@FreeBSD.org[doceng@FreeBSD" ".org]. https://www.freebsd.org/internal/doceng/[Устав DocEng]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:514 #, no-wrap msgid "Postmaster" msgstr "Postmaster" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:518 msgid "" "The Postmaster is responsible for mail being correctly delivered to the " "committers' email address. They are also responsible for ensuring that the " "mailing lists work and should take measures against possible disruptions of " "mail such as having troll-, spam- and virus-filters." msgstr "" "Postmaster отвечает за корректную доставку почты на адреса электронной почты " "коммиттеров. Также он отвечает за работоспособность почтовых рассылок и " "должен принимать меры против возможных сбоев в работе почты, таких как " "троллинг-, спам- и вирус-фильтры." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:520 msgid "" "Hat currently held by: the Postmaster Team " "mailto:postmaster@FreeBSD.org[postmaster@FreeBSD.org]." msgstr "" "Текущий руководитель: Команда почтовых серверов mailto:postmaster@FreeBSD." "org[postmaster@FreeBSD.org]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:522 #, no-wrap msgid "Release Coordination" msgstr "Координация выпусков" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:525 msgid "The responsibilities of the Release Engineering Team are" msgstr "Обязанности команды выпуска релизов включают" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:527 msgid "" "Setting, publishing and following a release schedule for official releases" msgstr "Установка, публикация и соблюдение графика выпуска официальных релизов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:528 msgid "Documenting and formalising release engineering procedures" msgstr "Документирование и формализация процедур выпуска релизов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:529 msgid "Creation and maintenance of code branches" msgstr "Создание и поддержка веток кода" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:530 msgid "" "Coordinating with the Ports and Documentation teams to have an updated set " "of packages and documentation released with the new releases" msgstr "" "Согласование с командами Ports и Documentation для выпуска обновленного " "набора пакетов и документации вместе с новыми релизами" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:531 msgid "" "Coordinating with the Security team so that pending releases are not " "affected by recently disclosed vulnerabilities." msgstr "" "Координация с командой безопасности для того, чтобы готовящиеся выпуски не " "были затронуты недавно обнаруженными уязвимостями." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:534 msgid "" "Further information about the development process is available in the " "crossref:dev-model[process-release-engineering, Release engineering] section." msgstr "" "Дополнительная информация о процессе разработки доступна в разделе crossref" ":dev-model[process-release-engineering, Выпуск релизов]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:538 msgid "" "Hat held by: the Release Engineering team " "mailto:re@FreeBSD.org[re@FreeBSD.org]. The https://www.freebsd.org/releng/" "charter/[ Release Engineering Charter]." msgstr "" "Роль поддерживается: командой выпуск релизов (Release Engineering) " "mailto:re@FreeBSD.org[re@FreeBSD.org]. https://www.freebsd.org/releng/" "charter/[ Устав Release Engineering]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:540 #, no-wrap msgid "Public Relations & Corporate Liaison" msgstr "Отношения с общественностью и корпоративные связи" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:543 msgid "The Public Relations & Corporate Liaison's responsibilities are:" msgstr "" "Обязанности отдела по связям с общественностью и корпоративным отношениям " "включают:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:545 msgid "" "Making press statements when happenings that are important to the FreeBSD " "Project happen." msgstr "" "Публиковать пресс-релизы при возникновении событий, важных для проекта " "FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:546 msgid "" "Being the official contact person for corporations that are working close " "with the FreeBSD Project." msgstr "" "Быть официальным контактным лицом для корпораций, тесно сотрудничающих с " "проектом FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:547 msgid "" "Take steps to promote FreeBSD within both the Open Source community and the " "corporate world." msgstr "" "Принимать меры для продвижения FreeBSD как в сообществе Open Source, так и в " "корпоративном мире." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:548 msgid "Handle the \"freebsd-advocacy\" mailing list." msgstr "Обрабатывать список рассылки \"freebsd-advocacy\"." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:550 msgid "This hat is currently not occupied." msgstr "Эта роль в настоящее время не занята." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:552 #, no-wrap msgid "Security Officer" msgstr "Ответственный за безопасность (Security Officer)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:556 msgid "" "The Security Officer's main responsibility is to coordinate information " "exchange with others in the security community and in the FreeBSD project. " "The Security Officer is also responsible for taking action when security " "problems are reported and promoting proactive development behavior when it " "comes to security." msgstr "" "Основная обязанность Ответственного за безопасность — координировать обмен " "информацией с сообществом безопасности и проектом FreeBSD. Ответственный за " "безопасность также принимает меры при поступлении сообщений о проблемах " "безопасности и способствует активному развитию в области безопасности." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:562 msgid "" "Because of the fear that information about vulnerabilities may leak out to " "people with malicious intent before a patch is available, only the Security " "Officer, consisting of an officer, a deputy and two crossref:dev-model[role-" "core, Core Team] members, receive sensitive information about security " "issues. However, to create or implement a patch, the Security Officer has " "the Security Officer Team mailto:security-team@FreeBSD.org[security-" "team@FreeBSD.org] to help do the work." msgstr "" "Из-за опасений, что информация об уязвимостях может попасть к " "злоумышленникам до выпуска исправления, только Ответственный за " "безопасность, включающий руководителя, заместителя и двух членов crossref" ":dev-model[role-core, Основной команды (Core Team)], получает " "конфиденциальную информацию о проблемах безопасности. Однако для создания " "или внедрения исправления Ответственный за безопасность может обратиться к " "команде mailto:security-team@FreeBSD.org[security-team@FreeBSD.org] для " "помощи в выполнении работы." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:564 #, no-wrap msgid "Source Repository Manager" msgstr "Менеджер репозитория исходного кода" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:570 msgid "" "The Source Repository Manager is the only one who is allowed to directly " "modify the repository without using the crossref:dev-model[tool-git, Git] " "tool. It is their responsibility to ensure that technical problems that " "arise in the repository are resolved quickly. The source repository manager " "has the authority to back out commits if this is necessary to resolve a Git " "technical problem." msgstr "" "Менеджер репозитория исходного кода — единственный, кому разрешено напрямую " "изменять репозиторий без использования инструмента crossref:dev-model[tool-" "git, Git]. В его обязанности входит оперативное решение технических проблем, " "возникающих в репозитории. Менеджер репозитория исходного кода имеет право " "отменять коммиты, если это необходимо для устранения технических проблем с " "Git." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:572 msgid "" "Hat held by: the Source Repository Manager " "mailto:clusteradm@FreeBSD.org[clusteradm@FreeBSD.org]." msgstr "" "Роль принадлежит: Менеджеру репозитория исходного кода " "mailto:clusteradm@FreeBSD.org[clusteradm@FreeBSD.org]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:574 #, no-wrap msgid "Election Manager" msgstr "Менеджер выборов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:581 msgid "" "The Election Manager is responsible for the crossref:dev-model[process-core-" "election, Core election] process. The manager is responsible for running " "and maintaining the election system, and is the final authority should minor " "unforeseen events happen in the election process. Major unforeseen events " "have to be discussed with the crossref:dev-model[role-core, Core Team]" msgstr "" "Менеджер выборов отвечает за процесс crossref:dev-model[process-core-" "election,выборов Основной команды(Core Team)]. Он отвечает за проведение и " "поддержание системы выборов, а также является окончательной инстанцией в " "случае незначительных непредвиденных событий в процессе выборов. Крупные " "непредвиденные события должны обсуждаться с crossref:dev-model[role-" "core,Основной командой]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:583 msgid "Hat held only during elections." msgstr "Роль выполняется только во время выборов." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:585 #, no-wrap msgid "Web site Management" msgstr "Управление веб-сайтом" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:590 msgid "" "The Web site Management hat is responsible for coordinating the rollout of " "updated web pages on mirrors around the world, for the overall structure of " "the primary web site and the system it is running upon. The management " "needs to coordinate the content with crossref:dev-model[sub-project-" "documentation, The FreeBSD Documentation Project] and acts as maintainer for " "the \"www\" tree." msgstr "" "Роль управления веб-сайтом отвечает за координацию развертывания обновленных " "веб-страниц на зеркалах по всему миру, за общую структуру основного веб-" "сайта и систему, на которой он работает. Управление должно согласовывать " "содержимое с crossref:dev-model[sub-project-documentation, Проектом " "документации FreeBSD] и выступает в роли сопровождающего для дерева \"www\"." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:592 msgid "" "Hat held by: the FreeBSD Webmasters mailto:www@FreeBSD.org[www@FreeBSD.org]." msgstr "" "Роль поддерживается: веб-мастеры FreeBSD mailto:www@FreeBSD.org[www@FreeBSD." "org]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:594 #, no-wrap msgid "Ports Manager" msgstr "Менеджер портов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:597 msgid "" "The Ports Manager acts as a liaison between crossref:dev-model[sub-project-" "ports, The Ports Subproject] and the core project, and all requests from the " "project should go to the ports manager." msgstr "" "Менеджер портов выступает в роли связующего звена между crossref:dev-model" "[sub-project-ports, Подпроектом портов] и основным проектом, и все запросы " "от проекта должны направляться менеджеру портов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:600 msgid "" "Hat held by: the Ports Management Team " "mailto:portmgr@FreeBSD.org[portmgr@FreeBSD.org]. The https://" "www.freebsd.org/portmgr/charter/[Portmgr charter]." msgstr "" "Роль принадлежит: Команде управления портами mailto:portmgr@FreeBSD." "org[portmgr@FreeBSD.org]. https://www.freebsd.org/portmgr/charter/[Устав " "Portmgr]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:602 #, no-wrap msgid "Standards" msgstr "Стандарты" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:605 msgid "" "The Standards hat is responsible for ensuring that FreeBSD complies with the " "standards it is committed to , keeping up to date on the development of " "these standards and notifying FreeBSD developers of important changes that " "allows them to take a proactive role and decrease the time between a " "standards update and FreeBSD's compliancy." msgstr "" "Роль стандартов отвечает за обеспечение соответствия FreeBSD стандартам, " "которым система следует, отслеживает развитие этих стандартов и уведомляет " "разработчиков FreeBSD о важных изменениях. Это позволяет разработчикам " "действовать проактивно и сокращать время между обновлением стандартов и " "достижением соответствия в FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:607 msgid "" "Hat currently held by: Garrett Wollman " "mailto:wollman@FreeBSD.org[wollman@FreeBSD.org]." msgstr "" "Текущий ответственный: Garrett Wollman mailto:wollman@FreeBSD." "org[wollman@FreeBSD.org]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:609 #, no-wrap msgid "Core Secretary" msgstr "Секретарь Основной команды (Core Team)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:613 msgid "" "The Core Secretary's main responsibility is to write drafts to and publish " "the final Core Reports. The secretary also keeps the core agenda, thus " "ensuring that no balls are dropped unresolved." msgstr "" "Основная обязанность Секретаря Основной команды — составление черновиков и " "публикация окончательных отчётов Основной команды. Секретарь также ведёт " "повестку Основной команды, гарантируя, что ни один вопрос не останется без " "решения." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:615 msgid "Hat currently held by: {rene}." msgstr "Ответственный в настоящее время: {rene}." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:617 #, no-wrap msgid "Bugmeister" msgstr "Ответственный за ошибки (Bugmeister)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:621 msgid "" "The Bugmeister is responsible for ensuring that the maintenance database is " "in working order, that the entries are correctly categorised and that there " "are no invalid entries. They supervise bugbusters." msgstr "" "Ответственный за ошибки (Bugmeister) отвечает за поддержание базы данных по " "обслуживанию в рабочем состоянии, за корректную категоризацию записей и " "отсутствие недействительных записей. Они курируют исправителей ошибок " "(bugbusters)." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:623 msgid "" "Hat currently held by: the Bugmeister Team " "mailto:bugmeister@FreeBSD.org[bugmeister@FreeBSD.org]." msgstr "" "Текущий ответственный: команда Bugmeister Team mailto:bugmeister@FreeBSD." "org[bugmeister@FreeBSD.org]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:625 #, no-wrap msgid "Donations Liaison Officer" msgstr "Представитель по привлечению пожертвований" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:628 msgid "" "The task of the donations liaison officer is to match the developers with " "needs with people or organisations willing to make a donation." msgstr "" "Задача представителя по привлечению пожертвований — связывать разработчиков, " "которым что-то нужно, с людьми или организациями, готовыми сделать " "пожертвование." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:631 msgid "" "Hat held by: the Donations Liaison Office " "mailto:donations@FreeBSD.org[donations@FreeBSD.org]. The https://" "www.freebsd.org/donations/[ Donations Liaison Charter]." msgstr "" "Роль поддерживается: Отделом по привлечению пожертвований " "mailto:donations@FreeBSD.org[donations@FreeBSD.org]. https://www.freebsd." "org/donations/[ Устав Отдела по привлечению пожертвований]." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:633 #, no-wrap msgid "Admin" msgstr "Администратор (Admin)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:636 msgid "(Also called \"FreeBSD Cluster Admin\")" msgstr "(Также называется \"Администратор кластера FreeBSD\")" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:639 msgid "" "The admin team consists of the people responsible for administrating the " "computers that the project relies on for its distributed work and " "communication to be synchronised. It consists mainly of those people who " "have physical access to the servers." msgstr "" "Команда администраторов состоит из людей, ответственных за администрирование " "компьютеров, которые проект использует для распределённой работы и " "синхронизации коммуникации. В основном в неё входят те, кто имеет физический " "доступ к серверам." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:641 msgid "" "Hat held by: the Admin team mailto:admin@FreeBSD.org[admin@FreeBSD.org]." msgstr "" "Роль поддерживается: командой администраторов mailto:admin@FreeBSD." "org[admin@FreeBSD.org]." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:643 #, no-wrap msgid "Process dependent hats" msgstr "Процессозависимые роли" #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:646 #, no-wrap msgid "Report originator" msgstr "Инициатор отчёта" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:649 msgid "The person originally responsible for filing a Problem Report." msgstr "Лицо, изначально ответственное за подачу отчёта о проблеме." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:651 #, no-wrap msgid "Bugbuster" msgstr "Исправитель ошибок (Bugbuster)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:654 msgid "" "A person who will either find the right person to solve the problem, or " "close the PR if it is a duplicate or otherwise not an interesting one." msgstr "" "Человек, который либо найдет подходящего специалиста для решения проблемы, " "либо закроет PR, если он является дубликатом или по другим причинам не " "представляет интереса." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:656 #, no-wrap msgid "Mentor" msgstr "Наставник (Mentor)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:659 msgid "" "A mentor is a committer who takes it upon them to introduce a new committer " "to the project, both in terms of ensuring the new committer's setup is " "valid, that the new committer knows the available tools required in their " "work, and that the new committer knows what is expected of them in terms of " "behavior." msgstr "" "Наставник — это коммиттер, который берет на себя задачу ознакомить нового " "коммиттера с проектом. Это включает в себя проверку корректности настройки " "окружения нового коммиттера, обучение доступным инструментам, необходимым " "для работы, а также разъяснение ожидаемого поведения." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:661 #, no-wrap msgid "Vendor" msgstr "Поставщик" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:664 msgid "" "The person(s) or organisation whom external code comes from and whom patches " "are sent to." msgstr "" "Лицо (лица) или организация, от которых поступает внешний код и которым " "отправляются исправления." #. type: Title ==== #: documentation/content/en/books/dev-model/_index.adoc:666 #, no-wrap msgid "Reviewers" msgstr "Рецензенты" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:669 msgid "People on the mailing list where the request for review is posted." msgstr "Люди из списка рассылки, куда отправлен запрос на рецензирование." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:672 msgid "" "The following section will describe the defined project processes. Issues " "that are not handled by these processes happen on an ad-hoc basis based on " "what has been customary to do in similar cases." msgstr "" "Следующий раздел описывает установленные процессы проекта. Вопросы, не " "охваченные этими процессами, решаются по мере возникновения, исходя из " "сложившейся практики в аналогичных случаях." #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:674 #, no-wrap msgid "Processes" msgstr "Процессы" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:677 #, no-wrap msgid "Adding new and removing old committers" msgstr "Добавление новых и удаление старых коммиттеров" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:682 msgid "" "The Core team has the responsibility of giving and removing commit " "privileges to contributors. This can only be done through a vote on the " "core mailing list. The ports and documentation sub-projects can give commit " "privileges to people working on these projects, but have to date not removed " "such privileges." msgstr "" "Основная команда (Core Team) отвечает за предоставление и отзыв прав на " "коммит для участников. Это может быть сделано только через голосование в " "списке рассылки Основной команды. Подпроекты ports и documentation могут " "предоставлять права на коммит людям, работающим над этими проектами, но на " "данный момент не отзывали такие права." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:685 msgid "" "Normally a contributor is recommended to core by a committer. For " "contributors or outsiders to contact core asking to be a committer is not " "well thought of and is usually rejected." msgstr "" "Обычно кандидата в коммиттеры основной команде (Core Team) рекомендуют " "коммиттеры. Для участников или посторонних обращаться в Основную команду с " "просьбой стать коммиттером считается неблагоразумным и такая просьба, как " "правило, отклоняется." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:688 msgid "" "If the area of particular interest for the developer potentially overlaps " "with other committers' area of maintainership, the opinion of those " "maintainers is sought. However, it is frequently this committer that " "recommends the developer." msgstr "" "Если область, представляющая особый интерес для разработчика, потенциально " "пересекается с зоной ответственности других сопровождающих, запрашивается " "мнение этих сопровождающих. Однако часто именно этот сопровождающий " "рекомендует разработчика." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:691 msgid "" "When a contributor is given committer status, they are assigned a mentor. " "The committer who recommended the new committer will, in the general case, " "take it upon themselves to be the new committers mentor." msgstr "" "Когда участнику предоставляется статус коммиттера, ему назначается " "наставник. В общем случае коммиттер, который рекомендовал нового коммиттера, " "берет на себя обязанности наставника для нового коммиттера." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:699 msgid "" "When a contributor is given their commit bit, a crossref:dev-model[tool-pgp, " "Pretty Good Privacy]-signed email is sent from either crossref:dev-" "model[role-core-secretary, Core Secretary], crossref:dev-model[role-ports-" "manager, Ports Manager], or nik@freebsd.org to both admins@freebsd.org, the " "assigned mentor, the new committer, and core confirming the approval of a " "new account. The mentor then gathers a password line, crossref:dev-" "model[tool-ssh2, Secure Shell] public key, and PGP key from the new " "committer and sends them to crossref:dev-model[role-admin, Admin]. When the " "new account is created, the mentor activates the commit bit and guides the " "new committer through the rest of the initial process." msgstr "" "Когда участнику предоставляется право коммита (commit bit), отправляется " "подписанное с помощью crossref:dev-model[tool-pgp, Pretty Good Privacy] " "письмо от crossref:dev-model[role-core-secretary, Секретаря Основной команды]" ", crossref:dev-model[role-ports-manager, Менеджера портов] или nik@" "freebsd.org на адреса admins@freebsd.org, назначенного наставника, нового " "коммиттера и Основной команды, подтверждая одобрение новой учётной записи. " "Затем наставник собирает строку пароля, crossref:dev-model[tool-ssh2, Secure " "Shell] открытый ключ и PGP-ключ от нового коммиттера и отправляет их crossref" ":dev-model[role-admin, Администратору]. Когда новая учётная запись создана, " "наставник активирует право коммита и проводит нового коммиттера через " "остальные этапы начального процесса." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:700 #, no-wrap msgid "Process summary: adding a new committer" msgstr "Процесс вкратце: добавление нового коммиттера" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/dev-model/_index.adoc:701 #: documentation/content/en/books/dev-model/_index.adoc:717 #: documentation/content/en/books/dev-model/_index.adoc:764 #: documentation/content/en/books/dev-model/_index.adoc:816 #: documentation/content/en/books/dev-model/_index.adoc:943 #, no-wrap msgid "Refer to paragraph below for a screen-reader friendly version." msgstr "" "Обратитесь к абзацу ниже для версии, совместимой с программами чтения с " "экрана." #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:701 #, no-wrap msgid "proc-add-committer.png" msgstr "proc-add-committer.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:708 msgid "" "When a contributor sends a piece of code, the receiving committer may choose " "to recommend that the contributor is given commit privileges. If they " "recommend this to core, core will vote on this recommendation. If the vote " "is in favour, a mentor is assigned the new committer and the new committer " "has to email their details to the administrators for an account to be " "created. After this, the new committer is all set to make their first " "commit. By tradition, this is by adding their name to the committers list." msgstr "" "Когда участник отправляет фрагмент кода, принимающий коммиттер может " "предложить предоставить этому участнику права на коммит. Если он рекомендует " "это основной команде (Core Team), команда проводит голосование по этой " "рекомендации. Если голосование завершается в пользу предложения, новому " "коммиттеру назначается наставник, и новый коммиттер должен отправить свои " "данные администраторам для создания учётной записи. После этого новый " "коммиттер готов сделать свой первый коммит. По традиции, это делается путём " "добавления своего имени в список коммиттеров." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:711 msgid "" "Recall that a committer is considered to be someone who has committed code " "during the past 12 months. However, it is not until after 18 months of " "inactivity have passed that commit privileges are eligible to be revoked." msgstr "" "Напомним, что коммиттером считается тот, кто за последние 12 месяцев внёс " "изменения в код. Однако право на коммиты может быть отозвано только после 18 " "месяцев неактивности." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:715 msgid "" "There are, however, no automatic procedures for doing this. For reactions " "concerning commit privileges not triggered by time, see crossref:dev-" "model[process-reactions,section 1.5.8]." msgstr "" "Однако не существует автоматических процедур для этого. Для действий, " "связанных с привилегиями коммитов, не вызванных временем, см. crossref:dev-" "model[process-reactions,раздел 1.5.8]." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:716 #, no-wrap msgid "Process summary: removing a committer" msgstr "Процесс: удаление коммиттера" #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:717 #, no-wrap msgid "proc-rm-committer.png" msgstr "proc-rm-committer.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:721 msgid "" "When Core decides to clean up the committers list, they check who has not " "made a commit for the past 18 months. Committers who have not done so have " "their commit bits revoked and their account removed by the administrators." msgstr "" "Когда Основная команда (Core Team) принимает решение очистить список " "коммиттеров, они проверяют, кто не делал коммитов за последние 18 месяцев. " "Коммиттеры, которые этого не сделали, лишаются прав на коммит, и их учётные " "записи удаляются администраторами." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:724 msgid "" "It is also possible for committers to request that their commit bit be " "retired if for some reason they are no longer going to be actively " "committing to the project. In this case, it can also be restored at a later " "time by core, should the committer ask." msgstr "" "Также возможно для коммиттеров запросить отзыв их права на коммит, если по " "какой-то причине они больше не будут активно участвовать в проекте. В этом " "случае, право может быть восстановлено позже по запросу коммиттера." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:726 msgid "Roles in this process:" msgstr "Роли в этом процессе:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:728 #: documentation/content/en/books/dev-model/_index.adoc:825 #: documentation/content/en/books/dev-model/_index.adoc:985 msgid "crossref:dev-model[role-core, Core Team]" msgstr "crossref:dev-model[role-core, Основная команда (Core Team)]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:729 #: documentation/content/en/books/dev-model/_index.adoc:783 msgid "crossref:dev-model[role-contributor, Contributor]" msgstr "crossref:dev-model[role-contributor, Участник (контрибьютор)]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:730 #: documentation/content/en/books/dev-model/_index.adoc:782 #: documentation/content/en/books/dev-model/_index.adoc:826 #: documentation/content/en/books/dev-model/_index.adoc:986 msgid "crossref:dev-model[role-committer, Committer]" msgstr "crossref:dev-model[role-committer, Коммиттер]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:731 #: documentation/content/en/books/dev-model/_index.adoc:954 msgid "crossref:dev-model[role-maintainer, Maintainership]" msgstr "crossref:dev-model[role-maintainer, Сопровождение]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:732 msgid "crossref:dev-model[role-mentor, Mentor]" msgstr "crossref:dev-model[role-mentor, Наставник (Mentor)]" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:738 #, no-wrap msgid "Committing code" msgstr "Коммит кода" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:744 msgid "" "The committing of new or modified code is one of the most frequent processes " "in the FreeBSD project and will usually happen many times a day. Committing " "of code can only be done by a \"committer\". Committers commit either code " "written by themselves, code submitted to them, or code submitted through a " "crossref:dev-model[model-pr,problem report]." msgstr "" "Добавление нового или изменённого кода — один из наиболее частых процессов в " "проекте FreeBSD и обычно происходит несколько раз в день. Фиксация кода " "может быть выполнена только \"коммиттером\". Коммиттеры фиксируют либо код, " "написанный ими самими, либо код, переданный им, либо код, отправленный через " "crossref:dev-model[model-pr,отчёт о проблеме]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:750 msgid "" "When code is written by the developer that is non-trivial, they should seek " "a code review from the community. This is done by sending mail to the " "relevant list asking for review. Before submitting the code for review, " "they should ensure it compiles correctly with the entire tree and that all " "relevant tests run. This is called \"pre-commit test\". When contributed " "code is received, it should be reviewed by the committer and tested the same " "way." msgstr "" "Когда разработчик пишет нетривиальный код, он должен запросить " "рецензирование кода у сообщества. Это делается путём отправки письма в " "соответствующий список рассылки с просьбой о рецензировании. Перед отправкой " "кода на проверку разработчик должен убедиться, что он корректно " "компилируется со всем деревом исходного кода и что все соответствующие тесты " "выполняются. Это называется \"предварительной проверкой перед коммитом\". " "Когда получен вклад в виде кода, коммиттер должен просмотреть его и " "протестировать таким же образом." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:754 msgid "" "When a change is committed to a part of the source that has been contributed " "from an outside crossref:dev-model[role-vendor, Vendor], the maintainer " "should ensure that the patch is contributed back to the vendor. This is in " "line with the open source philosophy and makes it easier to stay in sync " "with outside projects as the patches do not have to be reapplied every time " "a new release is made." msgstr "" "Когда изменение фиксируется в части исходного кода, которая была получена от " "внешнего crossref:dev-model[role-vendor,поставщика], сопровождающий должен " "убедиться, что патч передан обратно поставщику. Это соответствует философии " "открытого исходного кода и упрощает синхронизацию с внешними проектами, так " "как патчи не придётся применять заново при каждом новом выпуске." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:759 msgid "" "After the code has been available for review and no further changes are " "necessary, the code is committed into the development branch, -CURRENT. If " "the change applies for the -STABLE branch or the other branches as well, a " "\"Merge From Current\" (\"MFC\") countdown is set by the committer. After " "the number of days the committer chose when setting the MFC have passed, an " "email will automatically be sent to the committer reminding them to commit " "it to the -STABLE branch (and possibly security branches as well). Only " "security critical changes should be merged to security branches." msgstr "" "После того как код был доступен для рецензирования и дальнейшие изменения не " "требуются, код вносится в ветку разработки -CURRENT. Если изменение " "применимо и для ветки -STABLE, или других веток, коммиттер устанавливает " "отсчёт времени для \"слияния из текущей\" (\"MFC\"). После того как пройдёт " "количество дней, выбранное коммиттером при установке MFC, автоматически " "будет отправлено письмо коммиттеру с напоминанием внести изменения в ветку -" "STABLE (а также, возможно, в ветки безопасности). В ветки безопасности " "следует сливать только критические изменения, связанные с безопасностью." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:762 msgid "" "Delaying the commit to -STABLE and other branches allows for \"parallel " "debugging\" where the committed code is tested on a wide range of " "configurations. This makes changes to -STABLE to contain fewer faults and " "thus giving the branch its name." msgstr "" "Откладывание коммита в -STABLE и другие ветки позволяет проводить " "\"параллельную отладку\", когда закоммиченный код тестируется на широком " "спектре конфигураций. Это приводит к тому, что изменения в -STABLE содержат " "меньше ошибок, что и даёт ветке её название." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:763 #, no-wrap msgid "Process summary: A committer commits code" msgstr "Процесс вкратце: коммиттер делает коммит кода" #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:764 #, no-wrap msgid "proc-commit.png" msgstr "proc-commit.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:772 msgid "" "When a committer has written a piece of code and wants to commit it, they " "first need to determine if it is trivial enough to go in without prior " "review or if it should first be reviewed by the developer community. If the " "code is trivial or has been reviewed and the committer is not the " "maintainer, they should consult the maintainer before proceeding. If the " "code is contributed by an outside vendor, the maintainer should create a " "patch that is sent back to the vendor. The code is then committed and then " "deployed by the users. Should they find problems with the code, this will " "be reported and the committer can go back to writing a patch. If a vendor " "is affected, they can choose to implement or ignore the patch." msgstr "" "Когда коммиттер написал часть кода и хочет его закоммитить, он сначала " "должен определить, достаточно ли он тривиален, чтобы попасть в репозиторий " "без предварительной рецензии, или ему сначала следует сделать рецензию в " "сообществе разработчиков. Если код тривиален или был отрецензирован, и " "коммиттер не является сопровождающим, он должен проконсультироваться с " "сопровождающим перед тем, как продолжить. Если код предоставлен внешним " "поставщиком, сопровождающий должен создать патч, который отправляется " "обратно поставщику. Затем код коммитится и развертывается пользователями. " "Если они обнаружат проблемы с кодом, это будет сообщено, и коммиттер может " "вернуться к написанию патча. Если затронут поставщик, он может выбрать " "реализацию или игнорирование патча." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:773 #, no-wrap msgid "Process summary: A contributor commits code" msgstr "Процесс вкратце: Участник делает коммит кода" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/dev-model/_index.adoc:774 #, no-wrap msgid "Refer to paragraphs below and above for a screen-reader friendly version." msgstr "" "Обратитесь к абзацам выше и ниже для версии, совместимой с программами " "чтения с экрана." #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:774 #, no-wrap msgid "proc-contrib.png" msgstr "proc-contrib.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:778 msgid "" "The difference when a contributor makes a code contribution is that they " "submit the code through the Bugzilla interface. This report is picked up by " "the maintainer who reviews the code and commits it." msgstr "" "Разница, когда участник вносит код, заключается в том, что он отправляет код " "через интерфейс Bugzilla. Этот отчёт забирает сопровождающий, который " "просматривает код и делает ему коммит." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:780 msgid "Hats included in this process are:" msgstr "Роли, задействованные в этом процессе:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:784 msgid "crossref:dev-model[role-vendor, Vendor]" msgstr "crossref:dev-model[role-vendor, Поставщик]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:785 msgid "crossref:dev-model[role-reviewer, Reviewers]" msgstr "crossref:dev-model[role-reviewer, Рецензенты]" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:790 #, no-wrap msgid "Core election" msgstr "Выборы основной команды (Core Team)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:795 msgid "" "Core elections are held at least every two years. footnote:[The first Core " "election was held September 2000] Nine core members are elected. New " "elections are held if the number of core members drops below seven. New " "elections can also be held should at least 1/3 of the active committers " "demand this." msgstr "" "Выборы Основной команды проводятся не реже чем раз в два года. footnote:[" "Первые выборы Основной команды состоялись в сентябре 2000 года] Избираются " "девять участников Основной команды. Новые выборы проводятся, если количество " "участников Основной команды становится меньше семи. Новые выборы также могут " "быть проведены, если этого потребуют как минимум 1/3 активных коммиттеров." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:797 msgid "" "When an election is to take place, core announces this at least 6 weeks in " "advance, and appoints an election manager to run the elections." msgstr "" "Когда должны состояться выборы, Основная команда объявляет об этом как " "минимум за 6 недель и назначает менеджера выборов для их проведения." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:802 msgid "" "Only committers can be elected into core. The candidates need to submit " "their candidacy at least one week before the election starts, but can refine " "their statements until the voting starts. They are presented in the http://" "election.uk.freebsd.org/candidates.html[candidates list]. When writing " "their election statements, the candidates must answer a few standard " "questions submitted by the election manager." msgstr "" "Только коммиттеры могут быть избраны в состав основной команды (Core Team). " "Кандидаты должны подать свои заявки как минимум за одну неделю до начала " "выборов, но могут уточнять свои заявления до начала голосования. Они " "представлены в http://election.uk.freebsd.org/candidates.html[списке " "кандидатов]. При составлении своих предвыборных заявлений кандидаты должны " "ответить на несколько стандартных вопросов, предоставленных организатором " "выборов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:805 msgid "" "During elections, the rule that a committer must have committed during the " "12 past months is followed strictly. Only these committers are eligible to " "vote." msgstr "" "Во время выборов строго соблюдается правило, что коммиттер должен был " "сделать коммит в течение последних 12 месяцев. Только эти коммиттеры имеют " "право голосовать." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:808 msgid "" "When voting, the committer may vote once in support of up to nine nominees. " "The voting is done over a period of four weeks with reminders being posted " "on \"developers\" mailing list that is available to all committers." msgstr "" "При голосовании коммиттер может проголосовать один раз в поддержку до девяти " "номинантов. Голосование проводится в течение четырёх недель, с " "напоминаниями, публикуемыми в рассылке \"developers\", доступной всем " "коммиттерам." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:810 msgid "" "The election results are released one week after the election ends, and the " "new core team takes office one week after the results have been posted." msgstr "" "Результаты выборов публикуются через неделю после их окончания, а новая " "основная команда вступает в должность через неделю после публикации " "результатов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:812 msgid "" "Should there be a voting tie, this will be resolved by the new, " "unambiguously elected core members." msgstr "" "В случае ничьей при голосовании, это будет разрешено новыми, однозначно " "избранными членами ядра." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:814 msgid "" "Votes and candidate statements are archived, but the archives are not " "publicly available." msgstr "" "Голоса и заявления кандидатов архивируются, но архивы не являются " "общедоступными." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:815 #, no-wrap msgid "Process summary: Core elections" msgstr "Процесс вкратце: Выборы основной команды (Core Team)" #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:816 #, no-wrap msgid "proc-elections.png" msgstr "proc-elections.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:821 msgid "" "Core announces the election and selects an election manager who prepares the " "elections, and when ready, candidates can announce their candidacies through " "submitting their statements. The committers then vote. After the vote is " "over, the election results are announced and the new core team takes office." msgstr "" "Основная команда объявляет выборы и назначает руководителя выборов, который " "подготавливает процесс. Когда всё готово, кандидаты могут объявить о своей " "кандидатуре, представив заявления. Затем коммиттеры голосуют. После " "завершения голосования результаты выборов объявляются, и новая основная " "команда вступает в должность." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:823 msgid "Hats in core elections are:" msgstr "Ответственный за выборы Основной команды:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:827 msgid "crossref:dev-model[role-election-manager, Election Manager]" msgstr "crossref:dev-model[role-election-manager, Менеджер выборов]" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:833 #, no-wrap msgid "Development of new features" msgstr "Разработка новых функций" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:841 msgid "" "Within the project there are sub-projects that are working on new features. " "These projects are generally done by one person [crossref:dev-" "model[jorgensen2001, Jørgensen, 2001]]. Every project is free to organise " "development as it sees fit. However, when the project is merged to the " "-CURRENT branch it must follow the project guidelines. When the code has " "been well tested in the -CURRENT branch and deemed stable enough and " "relevant to the -STABLE branch, it is merged to the -STABLE branch." msgstr "" "В рамках проекта существуют подпроекты, работающие над новыми функциями. Эти " "проекты обычно выполняются одним человеком [crossref:dev-model[" "jorgensen2001, Йоргенсен, 2001]]. Каждый проект волен организовывать " "разработку так, как считает нужным. Однако, когда проект объединяется с " "ветвью -CURRENT, он должен следовать руководствам проекта. Когда код хорошо " "протестирован в ветви -CURRENT и признан достаточно стабильным и актуальным " "для ветви -STABLE, он объединяется с ветвью -STABLE." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:848 msgid "" "The requirements of the project are given by developer wishes, requests from " "the community in terms of direct requests by mail, Problem Reports, " "commercial funding for the development of features, or contributions by the " "scientific community. The wishes that come within the responsibility of a " "developer are given to that developer who prioritises their time between the " "request and their wishes. A common way to do this is maintain a TODO-list " "maintained by the project. Items that do not come within someone's " "responsibility are collected on TODO-lists unless someone volunteers to take " "the responsibility. All requests, their distribution and follow-up are " "handled by the crossref:dev-model[tool-bugzilla, Bugzilla] tool." msgstr "" "Требования проекта определяются пожеланиями разработчиков, запросами " "сообщества в виде прямых обращений по почте, отчётов о проблемах (Problem " "Reports), коммерческим финансированием разработки функциональности или " "вкладами научного сообщества. Пожелания, которые входят в зону " "ответственности разработчика, передаются этому разработчику, который " "расставляет приоритеты между запросом и своими собственными пожеланиями. " "Распространенный способ организации этого процесса — ведение списка задач " "(TODO-list), поддерживаемого проектом. Задачи, не входящие в чью-либо зону " "ответственности, собираются в списках TODO, пока кто-нибудь не возьмет на " "себя ответственность за их выполнение. Все запросы, их распределение и " "отслеживание обрабатываются с помощью инструмента crossref:dev-model[tool-" "bugzilla, Bugzilla]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:853 msgid "" "Requirements analysis happens in two ways. The requests that come in are " "discussed on mailing lists, both within the main project and in the sub-" "project that the request belongs to or is spawned by the request. " "Furthermore, individual developers on the sub-project will evaluate the " "feasibility of the requests and determine the prioritisation between them. " "Other than archives of the discussions that have taken place, no outcome is " "created by this phase that is merged into the main project." msgstr "" "Анализ требований происходит двумя способами. Поступившие запросы " "обсуждаются в почтовых рассылках, как в основном проекте, так и в " "подпроекте, к которому относится запрос или который создается этим запросом. " "Кроме того, отдельные разработчики подпроекта оценивают осуществимость " "запросов и определяют приоритеты между ними. Помимо архивов обсуждений, на " "этом этапе не создается никаких результатов, которые включаются в основной " "проект." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:856 msgid "" "As the requests are prioritised by the individual developers on the basis of " "doing what they find interesting, necessary, or are funded to do, there is " "no overall strategy or prioritisation of what requests to regard as " "requirements and following up their correct implementation. However, most " "developers have some shared vision of what issues are more important, and " "they can ask for guidelines from the release engineering team." msgstr "" "Поскольку запросы приоритизируются отдельными разработчиками на основе того, " "что они считают интересным, необходимым или за что им платят, отсутствует " "общая стратегия или приоритезация того, какие запросы считать требованиями, " "и как контролировать их корректную реализацию. Однако большинство " "разработчиков разделяют общее видение того, какие вопросы являются более " "важными, и они могут запросить рекомендации у команды инженеров по выпуску " "релизов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:863 msgid "" "The verification phase of the project is two-fold. Before committing code " "to the current-branch, developers request their code to be reviewed by their " "peers. This review is for the most part done by functional testing, but " "also code review is important. When the code is committed to the branch, a " "broader functional testing will happen, that may trigger further code review " "and debugging should the code not behave as expected. This second " "verification form may be regarded as structural verification. Although the " "sub-projects themselves may write formal tests such as unit tests, these are " "usually not collected by the main project and are usually removed before the " "code is committed to the current branch. footnote:[More and more tests are " "however performed when building the system (make world). These tests are " "however a very new addition and no systematic framework for these tests have " "yet been created.]" msgstr "" "Фаза проверки проекта состоит из двух этапов. Перед внесением кода в текущую " "ветку разработчики запрашивают рецензирование своего кода коллегами. Это " "рецензирование в основном проводится с помощью функционального тестирования, " "но также важна проверка кода. Когда код внесён в ветку, проводится более " "широкое функциональное тестирование, которое может привести к дополнительной " "проверке кода и отладке, если код ведёт себя не так, как ожидалось. Эта " "вторая форма проверки может рассматриваться как структурная верификация. " "Хотя сами подпроекты могут писать формальные тесты, такие как модульные " "тесты, они обычно не собираются основным проектом и чаще всего удаляются " "перед внесением кода в текущую ветку. footnote:[Однако всё больше тестов " "выполняется при сборке системы (make world). Эти тесты являются очень новым " "дополнением, и систематическая структура для них ещё не создана.]" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:865 #, no-wrap msgid "Maintenance" msgstr "Сопровождение" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:872 msgid "" "It is an advantage to the project to for each area of the source have at " "least one person that knows this area well. Some parts of the code have " "designated maintainers. Others have de-facto maintainers, and some parts of " "the system do not have maintainers. The maintainer is usually a person from " "the sub-project that wrote and integrated the code, or someone who has " "ported it from the platform it was written for. footnote:[sendmail and " "named are examples of code that has been merged from other platforms.] The " "maintainer's job is to make sure the code is in sync with the project the " "code comes from if it is contributed code, and apply patches submitted by " "the community or write fixes to issues that are discovered." msgstr "" "Для проекта полезно, чтобы за каждую область исходного кода отвечал хотя бы " "один человек, который хорошо её знает. Некоторые части кода имеют " "назначенных сопровождающих. Другие имеют фактических сопровождающих, а " "некоторые части системы не имеют сопровождающих. Сопровождающий обычно " "является участником подпроекта, который написал и интегрировал код, или тем, " "кто портировал его с платформы, для которой он был написан. footnote:[" "sendmail и named — примеры кода, который был объединён с других платформ.] " "Задача сопровождающего — убедиться, что код синхронизирован с проектом, из " "которого он получен, если это сторонний код, а также применять патчи, " "предоставленные сообществом, или исправлять обнаруженные проблемы." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:875 msgid "" "The main bulk of work that is put into the FreeBSD project is maintenance. " "[crossref:dev-model[jorgensen2001, Jørgensen, 2001]] has made a figure " "showing the life cycle of changes." msgstr "" "Основной объём работы, вкладываемый в проект FreeBSD, связан с " "сопровождением. [crossref:dev-model[jorgensen2001, Jørgensen, 2001]] " "предоставляет схему, показывающую жизненный цикл изменений." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:913 msgid "" "Here \"development release\" refers to the -CURRENT branch while " "\"production release\" refers to the -STABLE branch. The \"pre-commit " "test\" is the functional testing by peer developers when asked to do so or " "trying out the code to determine the status of the sub-project. \"Parallel " "debugging\" is the functional testing that can trigger more review, and " "debugging when the code is included in the -CURRENT branch." msgstr "" "Здесь \"релиз для разработки\" относится к ветке -CURRENT, а \"релиз для " "производства\" — к ветке -STABLE. \"Предварительная проверка перед коммитом\"" " — это функциональное тестирование, проводимое коллегами-разработчиками по " "запросу или для проверки кода с целью определения состояния подпроекта. " "\"Параллельная отладка\" — это функциональное тестирование, которое может " "вызвать дополнительный обзор и отладку, когда код включён в ветку -CURRENT." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:920 msgid "" "As of this writing, there were 269 committers in the project. When they " "commit a change to a branch, that constitutes a new release. It is very " "common for users in the community to track a particular branch. The " "immediate existence of a new release makes the changes widely available " "right away and allows for rapid feedback from the community. This also " "gives the community the response time they expect on issues that are of " "importance to them. This makes the community more engaged, and thus allows " "for more and better feedback that again spurs more maintenance and " "ultimately should create a better product." msgstr "" "На момент написания этого документа в проекте было 269 коммиттеров. Когда " "они вносят изменения в ветку, это создает новый выпуск. Очень часто " "пользователи в сообществе отслеживают определённую ветку. Мгновенное " "появление нового выпуска делает изменения широко доступными сразу же и " "позволяет быстро получать отзывы от сообщества. Это также даёт сообществу " "ожидаемое время реакции на проблемы, которые важны для них. Это делает " "сообщество более вовлеченным, что, в свою очередь, позволяет получать больше " "и лучше отзывов, что снова стимулирует больше сопровождения и в конечном " "итоге должно создать лучший продукт." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:922 msgid "" "Before making changes to code in parts of the tree that has a history " "unknown to the committer, the committer is required to read the commit logs " "to see why certain features are implemented the way they are in order not to " "make mistakes that have previously either been thought through or resolved." msgstr "" "Прежде чем вносить изменения в код в частях дерева, история которых " "неизвестна коммиттеру, коммиттер обязан прочитать журналы коммитов, чтобы " "понять, почему определённые функции реализованы именно так, и избежать " "ошибок, которые уже были обдуманы или исправлены ранее." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:924 #, no-wrap msgid "Problem reporting" msgstr "Сообщение о проблеме" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:929 msgid "" "Before FreeBSD 10, FreeBSD included a problem reporting tool called `send-" "pr`. Problems include bug reports, feature requests, feature enhancements " "and notices of new versions of external software that are included in the " "project. Although `send-pr` is available, users and developers are " "encouraged to submit issues using our https://bugs.freebsd.org/submit/" "[ problem report form]." msgstr "" "До FreeBSD 10 в FreeBSD входил инструмент для отправки отчётов о проблемах " "под названием `send-pr`. Проблемы включают отчёты об ошибках, запросы " "функций, улучшения функций и уведомления о новых версиях внешнего " "программного обеспечения, включённого в проект. Хотя `send-pr` доступен, " "пользователям и разработчикам рекомендуется отправлять проблемы, используя " "нашу https://bugs.freebsd.org/submit/[форму отчёта о проблемах]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:941 msgid "" "Problem reports are sent to an email address where it is inserted into the " "Problem Reports maintenance database. A crossref:dev-model[role-bugbuster, " "Bugbuster] classifies the problem and sends it to the correct group or " "maintainer within the project. After someone has taken responsibility for " "the report, the report is being analysed. This analysis includes verifying " "the problem and thinking out a solution for the problem. Often feedback is " "required from the report originator or even from the FreeBSD community. " "Once a patch for the problem is made, the originator may be asked to try it " "out. Finally, the working patch is integrated into the project, and " "documented if applicable. It there goes through the regular maintenance " "cycle as described in section crossref:dev-model[model-maintenance, " "Maintenance]. These are the states a problem report can be in: open, " "analyzed, feedback, patched, suspended and closed. The suspended state is " "for when further progress is not possible due to the lack of information or " "for when the task would require so much work that nobody is working on it at " "the moment." msgstr "" "Отчёты о проблемах отправляются на электронный адрес, откуда они попадают в " "базу данных сопровождения отчётов о проблемах. crossref:dev-model[role-" "bugbuster, Исправитель ошибок (Bugbuster)] классифицирует проблему и " "направляет её соответствующей группе или сопровождающему в рамках проекта. " "После того, как кто-то берёт ответственность за отчёт, он анализируется. " "Этот анализ включает проверку проблемы и разработку решения. Часто " "требуется обратная связь от автора отчёта или даже от сообщества FreeBSD. " "Как только создаётся патч для устранения проблемы, автора отчёта могут " "попросить его протестировать. В итоге рабочий патч интегрируется в проект " "и, если необходимо, документируется. Затем он проходит стандартный цикл " "сопровождения, как описано в разделе crossref:dev-model[model-maintenance, " "Сопровождение]. Отчёт о проблеме может находиться в следующих состояниях: " "открыт, анализируется, ожидает обратной связи, исправлен патчем, отложен и " "закрыт. Состояние \"отложен\" используется, когда дальнейшее продвижение " "невозможно из-за недостатка информации или когда задача требует столько " "работы, что в данный момент никто над ней не работает." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:942 #, no-wrap msgid "Process summary: problem reporting" msgstr "Сводка процесса: сообщение о проблеме" #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:943 #, no-wrap msgid "proc-pr.png" msgstr "proc-pr.png" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:949 msgid "" "A problem is reported by the report originator. It is then classified by a " "bugbuster and handed to the correct maintainer. They verify the problem and " "discuss the problem with the originator until they have enough information " "to create a working patch. This patch is then committed and the problem " "report is closed." msgstr "" "Проблема сообщается автором отчёта. Затем она классифицируется ответственным " "за обработку ошибок и передаётся соответствующему сопровождающему. Он " "проверяет проблему и обсуждает её с автором отчёта до тех пор, пока не будет " "собрано достаточно информации для создания рабочего исправления. Это " "исправление затем фиксируется, и отчёт о проблеме закрывается." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:951 msgid "The roles included in this process are:" msgstr "Роли, включенные в этот процесс:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:953 msgid "crossref:dev-model[role-problem-originator, Report originator]" msgstr "crossref:dev-model[role-problem-originator, Инициатор отчёта]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:955 msgid "crossref:dev-model[role-bugbuster, Bugbuster]" msgstr "crossref:dev-model[role-bugbuster, Исправитель ошибок (Bugbuster)]" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:957 msgid "[crossref:dev-model[freebsd-handle-pr, FreeBSD, 2002C]]." msgstr "[crossref:dev-model[freebsd-handle-pr, FreeBSD, 2002C]]." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:960 #, no-wrap msgid "Reacting to misbehavior" msgstr "Реагирование на неправильное поведение" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:966 msgid "" "[crossref:dev-model[freebsd-committer, FreeBSD, 2001]] has a number of rules " "that committers should follow. However, it happens that these rules are " "broken. The following rules exist in order to be able to react to " "misbehavior. They specify what actions will result in how long a suspension " "of the committer's commit privileges." msgstr "" "[crossref:dev-model[freebsd-committer, FreeBSD, 2001]] содержит ряд правил, " "которым должны следовать коммиттеры. Однако случается, что эти правила " "нарушаются. Следующие правила существуют для того, чтобы можно было " "реагировать на неподобающее поведение. Они определяют, какие действия " "приведут к приостановке привилегий коммиттера на тот или иной срок." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:968 msgid "" "Committing during code freezes without the approval of the Release " "Engineering team - 2 days" msgstr "" "Совершение коммитов во время заморозки кода без одобрения команды Release " "Engineering — 2 дня" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:969 msgid "Committing to a security branch without approval - 2 days" msgstr "Коммит изменений в ветку безопасности без одобрения - 2 дня" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:970 msgid "Commit wars - 5 days to all participating parties" msgstr "Войны коммитов — 5 дней для всех участвующих сторон" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:971 msgid "Impolite or inappropriate behavior - 5 days" msgstr "Невежливое или неподобающее поведение — 5 дней" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:978 msgid "" "For the suspensions to be efficient, any single core member can implement a " "suspension before discussing it on the \"core\" mailing list. Repeat " "offenders can, with a 2/3 vote by core, receive harsher penalties, including " "permanent removal of commit privileges. (However, the latter is always " "viewed as a last resort, due to its inherent tendency to create " "controversy.) All suspensions are posted to the \"developers\" mailing " "list, a list available to committers only." msgstr "" "Для эффективности приостановок любой член основной команды (Core Team) может " "применить приостановку до обсуждения на почтовой рассылке \"core\". " "Повторные нарушители могут, при 2/3 голосов от основной команды, получить " "более строгие наказания, включая постоянное лишение прав на коммиты. (Однако " "последнее всегда рассматривается как крайняя мера из-за присущей ему " "склонности вызывать споры.) Все приостановки публикуются в почтовой рассылке " "\"developers\", доступной только коммиттерам." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:981 msgid "" "It is important that you cannot be suspended for making technical errors. " "All penalties come from breaking social etiquette." msgstr "" "Важно, что вас не могут приостановить за технические ошибки. Все наказания " "связаны с нарушением социального этикета." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:983 msgid "Hats involved in this process:" msgstr "Роли, участвующие в этом процессе:" #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:988 #, no-wrap msgid "Release engineering" msgstr "Выпуск релизов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:994 msgid "" "The FreeBSD project has a Release Engineering team with a principal release " "engineer that is responsible for creating releases of FreeBSD that can be " "brought out to the user community via the net or sold in retail outlets. " "Since FreeBSD is available on multiple platforms and releases for the " "different architectures are made available at the same time, the team has " "one person in charge of each architecture. Also, there are roles in the " "team responsible for coordinating quality assurance efforts, building a " "package set and for having an updated set of documents. When referring to " "the release engineer, a representative for the release engineering team is " "meant." msgstr "" "Проект FreeBSD имеет команду инженеров по выпуску релизов с главным " "инженером, который отвечает за создание релизов FreeBSD для распространения " "среди пользователей через интернет или продажи в розничных магазинах. " "Поскольку FreeBSD доступна на нескольких платформах, а релизы для различных " "архитектур выпускаются одновременно, в команде есть ответственный за каждую " "архитектуру. Также в команде есть роли, отвечающие за координацию усилий по " "обеспечению качества, сборку набора пакетов и актуализацию документации. Под " "инженером по выпуску релизов подразумевается представитель команды инженеров " "по выпуску релизов." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1001 msgid "" "When a release is coming, the FreeBSD project changes shape somewhat. A " "release schedule is made containing feature- and code-freezes, release of " "interim releases and the final release. A feature-freeze means no new " "features are allowed to be committed to the branch without the release " "engineers' explicit consent. Code-freeze means no changes to the code (like " "bugs-fixes) are allowed to be committed without the release engineers' " "explicit consent. This feature- and code-freeze is known as stabilising. " "During the release process, the release engineer has the full authority to " "revert to older versions of code and thus \"back out\" changes should they " "find that the changes are not suitable to be included in the release." msgstr "" "Когда готовится выпуск релиза, проект FreeBSD несколько меняет свою " "структуру. Составляется график выпуска, включающий заморозку " "функциональности и кода, выпуск промежуточных релизов и финального релиза. " "Заморозка функциональности означает, что новые функции не могут быть " "добавлены в ветку без явного согласия инженеров релиза. Заморозка кода " "означает, что изменения в коде (например, исправления ошибок) не могут быть " "добавлены без явного согласия инженеров релиза. Этот процесс заморозки " "функциональности и кода известен как стабилизация. В процессе выпуска релиза " "инженер релиза имеет полномочия откатываться к более старым версиям кода и, " "таким образом, \"отменять\" изменения, если они сочтут, что эти изменения не " "подходят для включения в релиз." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1003 msgid "There are three different kinds of releases:" msgstr "Существует три различных вида выпусков:" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1005 msgid "" ".0 releases are the first release of a major version. These are branched of " "the -CURRENT branch and have a significantly longer release engineering " "cycle due to the unstable nature of the -CURRENT branch" msgstr "" ".0 выпуски являются первым релизом основной версии. Они ветвятся от ветки -" "CURRENT и имеют значительно более длительный цикл разработки из-за " "нестабильного характера ветки -CURRENT" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1006 msgid "" ".X releases are releases of the -STABLE branch. They are scheduled to come " "out every 4 months." msgstr "" ".X релизы — это релизы ветки -STABLE. Они запланированы к выходу каждые 4 " "месяца." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1007 msgid "" ".X.Y releases are security releases that follow the .X branch. These come " "out only when sufficient security fixes have been merged since the last " "release on that branch. New features are rarely included, and the security " "team is far more involved in these than in regular releases." msgstr "" ".X.Y — это выпуски с исправлениями уязвимостей, следующие за веткой .X. Они " "выходят только тогда, когда с момента последнего выпуска в этой ветке было " "объединено достаточное количество исправлений уязвимостей. Новые функции " "включаются редко, а команда безопасности участвует в этих выпусках гораздо " "активнее, чем в обычных." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1017 msgid "" "For releases of the -STABLE-branch, the release process starts 45 days " "before the anticipated release date. During the first phase, the first 15 " "days, the developers merge what changes they have had in -CURRENT that they " "want to have in the release to the release branch. When this period is " "over, the code enters a 15 day code freeze in which only bug fixes, " "documentation updates, security-related fixes and minor device driver " "changes are allowed. These changes must be approved by the release engineer " "in advance. At the beginning of the last 15 day period a release candidate " "is created for widespread testing. Updates are less likely to be allowed " "during this period, except for important bug fixes and security updates. In " "this final period, all releases are considered release candidates. At the " "end of the release process, a release is created with the new version " "number, including binary distributions on web sites and the creation of CD-" "ROM images. However, the release is not considered \"really released\" " "until a crossref:dev-model[tool-pgp, Pretty Good Privacy]-signed message " "stating exactly that, is sent to the mailing list freebsd-announce; anything " "labelled as a \"release\" before that may well be in-process and subject to " "change before the PGP-signed message is sent. footnote:[Many commercial " "vendors use these images to create CD-ROMs that are sold in retail outlets.]." msgstr "" "Для выпусков ветки -STABLE процесс выпуска начинается за 45 дней до " "предполагаемой даты релиза. В течение первой фазы, первых 15 дней, " "разработчики переносят изменения из -CURRENT, которые они хотят включить в " "релиз, в ветку выпуска. По окончании этого периода код входит в 15-дневный " "период заморозки, в течение которого допускаются только исправления ошибок, " "обновления документации, исправления, связанные с безопасностью, и " "незначительные изменения драйверов устройств. Эти изменения должны быть " "предварительно одобрены инженером выпуска. В начале последнего 15-дневного " "периода создается кандидат на выпуск для широкого тестирования. В этот " "период вероятность внесения изменений снижается, за исключением важных " "исправлений ошибок и обновлений безопасности. В этот заключительный период " "все выпуски считаются кандидатами на выпуск. По завершении процесса выпуска " "создается релиз с новым номером версии, включая бинарные дистрибутивы на веб-" "сайтах и создание образов CD-ROM. Однако релиз не считается «действительно " "выпущенным» до тех пор, пока на список рассылки freebsd-announce не будет " "отправлено сообщение, подписанное с помощью crossref:dev-model[tool-pgp, " "Pretty Good Privacy], в котором явно указано, что релиз состоялся; все, что " "обозначено как «релиз» до этого момента, может находиться в процессе " "доработки и изменяться до отправки PGP-подписанного сообщения. footnote:[" "Многие коммерческие поставщики используют эти образы для создания CD-ROM, " "которые продаются в розничных магазинах.]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1026 msgid "" "The releases of the -CURRENT-branch (that is, all releases that end with " "\".0\") are very similar, but with twice as long timeframe. It starts 8 " "weeks prior to the release with announcement of the release time line. Two " "weeks into the release process, the feature freeze is initiated and " "performance tweaks should be kept to a minimum. Four weeks prior to the " "release, an official beta version is made available. Two weeks prior to " "release, the code is officially branched into a new version. This version " "is given release candidate status, and as with the release engineering of " "-STABLE, the code freeze of the release candidate is hardened. However, " "development on the main development branch can continue. Other than these " "differences, the release engineering processes are alike." msgstr "" "Версии ветки -CURRENT (то есть все версии, оканчивающиеся на \".0\"), очень " "похожи, но с вдвое большим временным промежутком. Процесс начинается за 8 " "недель до выпуска с объявления графика релиза. Через две недели после начала " "процесса выпуска вводится заморозка функциональности, и оптимизация " "производительности должна быть сведена к минимуму. За четыре недели до " "выпуска становится доступна официальная бета-версия. За две недели до " "выпуска код официально ветвится в новую версию. Этой версии присваивается " "статус релиз-кандидата, и, как и в случае с разработкой -STABLE, заморозка " "кода релиз-кандидата ужесточается. Однако разработка на основной ветке " "разработки может продолжаться. За исключением этих различий, процессы " "разработки релизов схожи." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1030 #, no-wrap msgid "" "*.0 releases go into their own branch and are aimed mainly at early adopters.\n" "The branch then goes through a period of stabilisation, and it is not until the\n" "crossref:dev-model[role-releng, Release Engineering Team] decides the demands to stability have been satisfied that the branch becomes -STABLE and -CURRENT targets the next major version. While this for the majority has been with *.1 versions, this is not a demand.\n" msgstr "" "*.0 выпуски выделяются в отдельную ветку и ориентированы в основном на " "ранних последователей.\n" "Затем ветка проходит период стабилизации, и только после того, как\n" "crossref:dev-model[role-releng, Команда разработки релизов] решит, что " "требования к стабильности выполнены, ветка становится -STABLE, а -CURRENT " "переключается на следующую мажорную версию. Хотя в большинстве случаев это " "происходило с версиями *.1, это не является обязательным требованием.\n" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1035 msgid "" "Most releases are made when a given date that has been deemed a long enough " "time since the previous release comes. A target is set for having major " "releases every 18 months and minor releases every 4 months. The user " "community has made it very clear that security and stability cannot be " "sacrificed by self-imposed deadlines and target release dates. For slips of " "time not to become too long with regards to security and stability issues, " "extra discipline is required when committing changes to -STABLE." msgstr "" "Большинство выпусков происходит по достижении даты, которая считается " "достаточно отдалённой от предыдущего выпуска. Установлена цель выпускать " "основные версии каждые 18 месяцев, а промежуточные — каждые 4 месяца. " "Сообщество пользователей чётко дало понять, что безопасность и стабильность " "не могут быть принесены в жертву из-за самостоятельно установленных сроков и " "целевых дат выпуска. Чтобы задержки не становились слишком длинными в " "вопросах безопасности и стабильности, требуется дополнительная дисциплина " "при внесении изменений в -STABLE." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1037 msgid "Make release schedule" msgstr "Сделать график выпуска релизов" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1038 msgid "Feature freeze" msgstr "Заморозить функциональность" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1039 msgid "Code freeze" msgstr "Заморозка кода" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1040 msgid "Make branch" msgstr "Создать ветку" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1041 msgid "Release candidate" msgstr "Кандидат на выпуск" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1042 msgid "" "Stabilize release (loop back to previous step as many times as necessary; " "when release is considered stable, proceed with next step)" msgstr "" "Стабилизировать выпуск (при необходимости вернуться к предыдущему шагу; " "когда выпуск считается стабильным, перейти к следующему шагу)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1043 msgid "Build packages" msgstr "Собрать пакеты" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1044 msgid "Warn mirrors" msgstr "Предупредить сайты-зеркала" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1045 msgid "Publish release" msgstr "Опубликовать выпуск" #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:1051 #, no-wrap msgid "Tools" msgstr "Инструменты" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1055 msgid "" "The major support tools for supporting the development process are Bugzilla, " "Mailman, and OpenSSH. These are externally developed tools and are commonly " "used in the open source world." msgstr "" "Основные инструменты поддержки процесса разработки — это Bugzilla, Mailman и " "OpenSSH. Это инструменты, разработанные сторонними организациями, которые " "широко используются в мире открытого исходного кода." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1057 #, no-wrap msgid "Git" msgstr "Git" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1061 msgid "" "Git is a system to handle multiple versions of text files and tracking who " "committed what changes and why. A project lives within a \"repository\" and " "different versions are considered different \"branches\"." msgstr "" "Git — это система для управления несколькими версиями текстовых файлов, " "отслеживания внесённых изменений, их авторов и причин. Проект хранится в " "«репозитории», а разные версии считаются разными «ветками»." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1063 #, no-wrap msgid "Bugzilla" msgstr "Bugzilla" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1069 msgid "" "Bugzilla is a maintenance database consisting of a set of tools to track " "bugs at a central site. It supports the bug tracking process for sending " "and handling bugs as well as querying and updating the database and editing " "bug reports. The project uses its web interface to send \"Problem Reports\" " "to the project's central Bugzilla server. The committers also have web and " "command-line clients." msgstr "" "Bugzilla — это база данных для сопровождения, состоящая из набора " "инструментов для отслеживания ошибок на центральном сайте. Она поддерживает " "процесс отслеживания ошибок, включая отправку и обработку ошибок, а также " "запросы и обновление базы данных, а также редактирование отчётов об ошибках. " "Проект использует веб-интерфейс для отправки \"Отчётов о проблемах\" на " "центральный сервер Bugzilla проекта. У коммиттеров также есть веб- и " "командные клиенты." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1071 #, no-wrap msgid "Mailman" msgstr "Mailman" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1079 msgid "" "Mailman is a program that automates the management of mailing lists. The " "FreeBSD Project uses it to run 16 general lists, 60 technical lists, 4 " "limited lists and 5 lists with Git commit logs. It is also used for many " "mailing lists set up and used by other people and projects in the FreeBSD " "community. General lists are lists for the general public, technical lists " "are mainly for the development of specific areas of interest, and closed " "lists are for internal communication not intended for the general public. " "The majority of all the communication in the project goes through these 85 " "lists [crossref:dev-model[ref-bsd-handbook, FreeBSD, 2003A], Appendix C]." msgstr "" "Mailman - это программа, которая автоматизирует управление почтовыми " "рассылками. Проект FreeBSD использует её для ведения 16 общих рассылок, 60 " "технических рассылок, 4 ограниченных рассылок и 5 рассылок с логами коммитов " "Git. Она также используется для многих почтовых рассылок, созданных и " "используемых другими людьми и проектами в сообществе FreeBSD. Общие рассылки " "предназначены для широкой публики, технические рассылки в основном " "предназначены для разработки определённых областей интересов, а закрытые " "рассылки используются для внутренней коммуникации, не предназначенной для " "широкой публики. Большая часть всей коммуникации в проекте проходит через " "эти 85 рассылок [crossref:dev-model[ref-bsd-handbook, FreeBSD, 2003A], " "Приложение C]." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1081 #, no-wrap msgid "Pretty Good Privacy" msgstr "Pretty Good Privacy" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1086 msgid "" "Pretty Good Privacy, better known as PGP, is a cryptosystem using a public " "key architecture to allow people to digitally sign and/or encrypt " "information in order to ensure secure communication between two parties. A " "signature is used when sending information out to many recipients, enabling " "them to verify that the information has not been tampered with before they " "received it. In the FreeBSD Project this is the primary means of ensuring " "that information has been written by the person who claims to have written " "it, and not altered in transit." msgstr "" "Pretty Good Privacy, более известный как PGP, — это криптосистема, " "использующая архитектуру открытого ключа, чтобы позволить пользователям " "подписывать и/или шифровать информацию цифровой подписью для обеспечения " "безопасной связи между двумя сторонами. Подпись используется при отправке " "информации множеству получателей, позволяя им убедиться, что информация не " "была изменена до того, как они её получили. В проекте FreeBSD это основной " "способ убедиться, что информация была написана тем, кто утверждает, что её " "создал, и не была изменена в процессе передачи." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1088 #, no-wrap msgid "Secure Shell" msgstr "Secure Shell (SSH)" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1095 msgid "" "Secure Shell is a standard for securely logging into a remote system and for " "executing commands on the remote system. It allows other connections, " "called tunnels, to be established and protected between the two involved " "systems. This standard exists in two primary versions, and only version two " "is used for the FreeBSD Project. The most common implementation of the " "standard is OpenSSH that is a part of the project's main distribution. " "Since its source is updated more often than FreeBSD releases, the latest " "version is also available in the ports tree." msgstr "" "Secure Shell - это стандарт безопасного входа в удалённую систему и " "выполнения команд на ней. Он позволяет устанавливать и защищать другие " "соединения, называемые туннелями, между двумя взаимодействующими системами. " "Этот стандарт существует в двух основных версиях, и только версия два " "используется в проекте FreeBSD. Наиболее распространённая реализация " "стандарта - OpenSSH, которая входит в основную дистрибуцию проекта. " "Поскольку её исходный код обновляется чаще, чем выпуски FreeBSD, последняя " "версия также доступна в дереве портов." #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:1097 #, no-wrap msgid "Sub-projects" msgstr "Подпроекты" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1100 msgid "" "Sub-projects are formed to reduce the amount of communication needed to " "coordinate the group of developers. When a problem area is sufficiently " "isolated, most communication would be within the group focusing on the " "problem, requiring less communication with the groups they communicate with " "than were the group not isolated." msgstr "" "Подпроекты создаются для уменьшения объёма коммуникации, необходимой для " "координации группы разработчиков. Когда проблемная область достаточно " "изолирована, большая часть коммуникации происходит внутри группы, " "сосредоточенной на проблеме, что требует меньше общения с другими группами " "по сравнению с ситуацией, когда группа не изолирована." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1102 #, no-wrap msgid "The Ports Subproject" msgstr "Подпроект Ports" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1106 msgid "" "A \"port\" is a set of meta-data and patches that are needed to fetch, " "compile and install correctly an external piece of software on a FreeBSD " "system. The amount of ports has grown at a tremendous rate, as shown by the " "following figure." msgstr "" "\"Порт\" — это набор метаданных и патчей, необходимых для загрузки, " "компиляции и корректной установки внешнего программного обеспечения в " "системе FreeBSD. Количество портов растёт с огромной скоростью, как показано " "на следующем рисунке." #. type: Block title #: documentation/content/en/books/dev-model/_index.adoc:1107 #, no-wrap msgid "Number of ports added between 1995 and 2022" msgstr "Количество портов, добавленных между 1995 и 2022 годами" #. type: Target for macro image #: documentation/content/en/books/dev-model/_index.adoc:1109 #, no-wrap msgid "portsstatus.svg" msgstr "portsstatus.svg" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1113 msgid "" "crossref:dev-model[fig-ports,image::portsstatus.svg] shows the number of " "ports available to FreeBSD in the period 1995 to 2022. It looks like the " "curve has first grown exponentially, and then from the middle of 2001 to the " "middle of 2007 grown linearly at a rate of about 2000 ports/year, before its " "growth rate gets lower." msgstr "" "crossref:dev-model[fig-ports,image::portsstatus.svg] показывает количество " "портов, доступных для FreeBSD в период с 1995 по 2022 год. Похоже, что " "кривая сначала росла экспоненциально, а затем с середины 2001 до середины " "2007 года росла линейно со скоростью около 2000 портов/год, после чего " "скорость роста снизилась." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1116 msgid "" "As the external software described by the port often is under continued " "development, the amount of work required to maintain the ports is already " "large, and increasing. This has led to the ports part of the FreeBSD " "project gaining a more empowered structure, and is more and more becoming a " "sub-project of the FreeBSD project." msgstr "" "Поскольку внешнее программное обеспечение, описываемое портом, часто " "находится в стадии активной разработки, объём работы, необходимой для " "поддержки портов, уже велик и продолжает расти. Это привело к тому, что " "часть проекта FreeBSD, связанная с портами, получила более самостоятельную " "структуру и все больше становится подпроектом проекта FreeBSD." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1119 msgid "" "Ports has its own core team with the crossref:dev-model[role-ports-manager, " "Ports Manager] as its leader, and this team can appoint committers without " "FreeBSD Core's approval. Unlike in the FreeBSD Project, where a lot of " "maintenance frequently is rewarded with a commit bit, the ports sub-project " "contains many active maintainers that are not committers." msgstr "" "Порты имеют свою собственную основную команду с crossref:dev-model[role-" "ports-manager, Менеджером Портов] во главе, и эта команда может назначать " "коммиттеров без одобрения Основной команды FreeBSD (Core Team). В отличие от " "проекта FreeBSD, где активное сопровождение часто вознаграждается правом " "коммита, подпроект портов включает множество активных сопровождающих, не " "являющихся коммиттерами." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1123 msgid "" "Unlike the main project, the ports tree is not branched. Every release of " "FreeBSD follows the current ports collection and has thus available updated " "information on where to find programs and how to build them. This, however, " "means that a port that makes dependencies on the system may need to have " "variations depending on what version of FreeBSD it runs on." msgstr "" "В отличие от основного проекта, дерево портов не разветвляется. Каждый " "выпуск FreeBSD следует текущей коллекции портов, что обеспечивает доступ к " "обновлённой информации о том, где найти программы и как их собрать. Однако " "это означает, что порт, зависящий от системы, может требовать изменений в " "зависимости от версии FreeBSD, на которой он запущен." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1126 msgid "" "With an unbranched ports repository it is not possible to guarantee that any " "port will run on anything other than -CURRENT and -STABLE, in particular " "older, minor releases. There is neither the infrastructure nor volunteer " "time needed to guarantee this." msgstr "" "С неразветвлённым репозиторием портов невозможно гарантировать, что любой " "порт будет работать на чём-либо, кроме -CURRENT и -STABLE, в частности на " "старых, минорных выпусках. Для этого нет ни инфраструктуры, ни времени " "волонтёров." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1128 msgid "" "For efficiency of communication, teams depending on Ports, such as the " "release engineering team, have their own ports liaisons." msgstr "" "Команды, зависящие от Ports, такие как команда выпуска релизов, для " "эффективности коммуникации имеют своих собственных представителей по портам." #. type: Title === #: documentation/content/en/books/dev-model/_index.adoc:1130 #, no-wrap msgid "The FreeBSD Documentation Project" msgstr "Проект документации FreeBSD" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1135 msgid "" "The FreeBSD Documentation project was started January 1995. From the " "initial group of a project leader, four team leaders and 16 members, they " "are now a total of 44 committers. The documentation mailing list has just " "under 300 members, indicating that there is quite a large community around " "it." msgstr "" "Проект документации FreeBSD был начат в январе 1995 года. От первоначальной " "группы, состоявшей из руководителя проекта, четырёх руководителей команд и " "16 участников, сейчас общее число коммиттеров достигло 44. Список рассылки " "документации насчитывает чуть менее 300 участников, что указывает на " "довольно большое сообщество вокруг него." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1137 msgid "" "The goal of the Documentation project is to provide good and useful " "documentation of the FreeBSD project, thus making it easier for new users to " "get familiar with the system and detailing advanced features for the users." msgstr "" "Цель проекта Документации — предоставить качественную и полезную " "документацию проекта FreeBSD, чтобы новые пользователи могли легче освоить " "систему, а также подробно описать расширенные функции для пользователей." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1139 msgid "" "The main tasks in the Documentation project are to work on current projects " "in the \"FreeBSD Documentation Set\", and translate the documentation to " "other languages." msgstr "" "Основные задачи проекта Documentation — работа над текущими проектами в " "\"Наборе документации FreeBSD\" и перевод документации на другие языки." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1143 msgid "" "Like the FreeBSD Project, documentation is split in the same branches. This " "is done so that there is always an updated version of the documentation for " "each version. Only documentation errors are corrected in the security " "branches." msgstr "" "Как и проект FreeBSD, документация разделена на те же ветви. Это сделано для " "того, чтобы для каждой версии всегда была обновлённая документация. В ветвях " "безопасности исправляются только ошибки в документации." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1147 msgid "" "Like the ports sub-project, the Documentation project can appoint " "documentation committers without FreeBSD Core's approval. [crossref:dev-" "model[freebsd-doceng-charter, FreeBSD, 2003B]]." msgstr "" "Как и подпроект ports, проект Documentation может назначать коммиттеров " "документации без одобрения основной команды FreeBSD (Core Team). [crossref" ":dev-model[freebsd-doceng-charter, FreeBSD, 2003B]]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1150 msgid "" "The Documentation project has extref:{fdp-primer}[a primer]. This is used " "both to introduce new project members to the standard tools and syntaxes and " "to act as a reference when working on the project." msgstr "" "Проект документации включает в себя extref:{fdp-primer}[вводное руководство]" ". Оно используется как для ознакомления новых участников проекта со " "стандартными инструментами и синтаксисом, так и в качестве справочника при " "работе над проектом." #. type: Title == #: documentation/content/en/books/dev-model/_index.adoc:1155 #, no-wrap msgid "References" msgstr "Список литературы" #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1159 msgid "" "[Brooks, 1995] Frederick P. Brooks. Copyright © 1975, 1995 Pearson Education " "Limited. 0201835959. Addison-Wesley Pub Co. The Mythical Man-Month. Essays " "on Software Engineering, Anniversary Edition (2nd Edition)." msgstr "" "[Brooks, 1995] Фредерик П. Брукс. Авторское право © 1975, 1995 Pearson " "Education Limited. 0201835959. Addison-Wesley Pub Co. Мифический " "человекомесяц. Эссе о программной инженерии, юбилейное издание (2-е издание)." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1162 msgid "" "[Saers, 2003] Niklas Saers. Copyright © 2003. A project model for the " "FreeBSD Project. Candidatus Scientiarum thesis. http://niklas.saers.com/" "thesis." msgstr "" "[Saers, 2003] Никлас Саерс. Авторское право © 2003. Модель проекта для " "FreeBSD. Кандидатская диссертация. http://niklas.saers.com/thesis." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1165 msgid "" "[Jørgensen, 2001] Niels Jørgensen. Copyright © 2001. Putting it All in the " "Trunk. Incremental Software Development in the FreeBSD Open Source Project. " "http://www.dat.ruc.dk/~nielsj/research/papers/freebsd.pdf." msgstr "" "[Йоргенсен, 2001] Нильс Йоргенсен. Copyright © 2001. _Putting it All in the " "Trunk. Incremental Software Development in the FreeBSD Open Source Project_. " "http://www.dat.ruc.dk/~nielsj/research/papers/freebsd.pdf." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1168 msgid "" "[PMI, 2000] Project Management Institute. Copyright © 1996, 2000 Project " "Management Institute. 1-880410-23-0. Project Management Institute. Newtown " "Square Pennsylvania USA . PMBOK Guide. A Guide to the Project Management " "Body of Knowledge, 2000 Edition." msgstr "" "[PMI, 2000] Институт управления проектами. Copyright © 1996, 2000 Институт " "управления проектами. 1-880410-23-0. Институт управления проектами. Ньютаун " "Сквер, Пенсильвания, США. PMBOK Guide. A Guide to the Project Management " "Body of Knowledge (Руководство PMBOK. Руководство к своду знаний по " "управлению проектами), издание 2000 года." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1171 msgid "" "[FreeBSD, 2000A] Copyright © 2002 The FreeBSD Project. Core Bylaws. https://" "www.freebsd.org/internal/bylaws/." msgstr "" "[FreeBSD, 2000A] Copyright © 2002 The FreeBSD Project. Core Bylaws. " "https://www.freebsd.org/internal/bylaws/." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1174 msgid "" "[FreeBSD, 2002A] Copyright © 2002 The FreeBSD Documentation Project. FreeBSD " "Developer's Handbook. extref:{developers-handbook}[Developers Handbook]." msgstr "" "[FreeBSD, 2002A] Copyright © 2002 The FreeBSD Documentation Project. " "Руководство FreeBSD для разработчиков. extref:{developers-handbook}[" "Руководство FreeBSD для разработчиков]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1177 msgid "" "[FreeBSD, 2002B] Copyright © 2002 The FreeBSD Project. Core team election " "2002. http://election.uk.freebsd.org/candidates.html." msgstr "" "[FreeBSD, 2002B] Copyright © 2002 Проект FreeBSD. Выборы состава основной " "команды (Core Team) 2002. http://election.uk.freebsd.org/candidates.html." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1180 msgid "" "[FreeBSD, 2002C] Dag-Erling Smørgrav and Hiten Pandya. Copyright © 2002 The " "FreeBSD Documentation Project. The FreeBSD Documentation Project. Problem " "Report Handling Guidelines. extref:{pr-guidelines}[Problem Report Handling " "Guidelines]." msgstr "" "[FreeBSD, 2002C] Даг-Эрлинг Смёрграв и Хитен Пандья. Copyright © 2002 The " "FreeBSD Documentation Project. The FreeBSD Documentation Project. " "Рекомендации по работе с сообщениями о проблемах. extref:{pr-guidelines}[" "Рекомендации по работе с сообщениями о проблемах]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1183 msgid "" "[FreeBSD, 2002D] Dag-Erling Smørgrav. Copyright © 2002 The FreeBSD " "Documentation Project. The FreeBSD Documentation Project. Writing FreeBSD " "Problem Reports. extref:{problem-reports}[Writing FreeBSD Problem Reports]." msgstr "" "[FreeBSD, 2002D] Даг-Эрлинг Смёрграв. Copyright © 2002 Проект документации " "FreeBSD. Проект документации FreeBSD. Составление сообщений о проблеме во " "FreeBSD. extref:{problem-reports}[Составление сообщений о проблеме во " "FreeBSD]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1186 msgid "" "[FreeBSD, 2001] Copyright © 2001 The FreeBSD Documentation Project. The " "FreeBSD Documentation Project. Committers Guide. extref:{committers-guide}" "[Committer's Guide]." msgstr "" "[FreeBSD, 2001] Copyright © 2001 The FreeBSD Documentation Project. The " "FreeBSD Documentation Project. Справочник коммиттера. extref:{committers-" "guide}[Справочник коммиттера]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1189 msgid "" "[FreeBSD, 2002E] Murray Stokely. Copyright © 2002 The FreeBSD Documentation " "Project. The FreeBSD Documentation Project. FreeBSD Release Engineering. " "extref:{releng}[FreeBSD Release Engineering]." msgstr "" "[FreeBSD, 2002E] Мюррей Стокли. Copyright © 2002 The FreeBSD Documentation " "Project. Проект документации FreeBSD. Подготовка релизов FreeBSD. " "extref:{releng}[Подготовка релизов FreeBSD]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1192 msgid "" "[FreeBSD, 2003A] The FreeBSD Documentation Project. FreeBSD Handbook. extref:" "{handbook}[FreeBSD Handbook]." msgstr "" "[FreeBSD, 2003A] Проект документации FreeBSD. Руководство FreeBSD. " "extref:{handbook}[Руководство FreeBSD]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1195 msgid "" "[FreeBSD, 2002F] Copyright © 2002 The FreeBSD Documentation Project. The " "FreeBSD Documentation Project. Contributors to FreeBSD. extref:{contributors}" "[Contributors to FreeBSD]." msgstr "" "[FreeBSD, 2002F] Copyright © 2002 The FreeBSD Documentation Project. Проект " "документации FreeBSD. Участники проекта FreeBSD. extref:{contributors}[" "Участники проекта FreeBSD]." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1198 msgid "" "[FreeBSD, 2002G] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. " "Core team elections 2002. http://election.uk.freebsd.org." msgstr "" "[FreeBSD, 2002G] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. " "Выборы состава основной команды (Core Team) 2002. http://election.uk.freebsd." "org." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1201 msgid "" "[FreeBSD, 2002H] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. " "Commit Bit Expiration Policy. 2002/04/06 15:35:30. https://www.freebsd.org/" "internal/expire-bits/." msgstr "" "[FreeBSD, 2002H] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. " "Политика истечения срока действия битов коммитов. 2002/04/06 15:35:30. " "https://www.freebsd.org/internal/expire-bits/." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1204 msgid "" "[FreeBSD, 2002I] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. " "New Account Creation Procedure. 2002/08/19 17:11:27. https://www.freebsd.org/" "internal/new-account/." msgstr "" "[FreeBSD, 2002I] Copyright © 2002 The FreeBSD Project. The FreeBSD Project. " "Процедура создания нового аккаунта. 2002/08/19 17:11:27. https://www.freebsd." "org/internal/new-account/." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1207 msgid "" "[FreeBSD, 2003B] Copyright © 2002 The FreeBSD Documentation Project. The " "FreeBSD Documentation Project. FreeBSD DocEng Team Charter. 2003/03/16 " "12:17. https://www.freebsd.org/internal/doceng/." msgstr "" "[FreeBSD, 2003B] Copyright © 2002 The FreeBSD Documentation Project. The " "FreeBSD Documentation Project. Устав команды разработчиков документации " "FreeBSD. 2003/03/16 12:17. https://www.freebsd.org/internal/doceng/." #. type: Plain text #: documentation/content/en/books/dev-model/_index.adoc:1209 msgid "" "[Lehey, 2002] Greg Lehey. Copyright © 2002 Greg Lehey. Greg Lehey. Two years " "in the trenches. The evolution of a software project. http://www.lemis.com/" "grog/In-the-trenches.pdf." msgstr "" "[Lehey, 2002] Грег Лехи. Copyright © 2002 Грег Лехи. Грег Лехи. Two years in " "the trenches. The evolution of a software project (Два года в окопах. " "Эволюция программного проекта). http://www.lemis.com/grog/In-the-trenches." "pdf."