Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-doc
Path: blob/main/documentation/content/en/books/dev-model/_index.po
18096 views
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR The FreeBSD Project
# This file is distributed under the same license as the FreeBSD Documentation package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: FreeBSD Documentation VERSION\n"
"POT-Creation-Date: 2025-05-01 19:56-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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 ""

#. 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 ""

#. 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 ""

#. 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:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:89
msgid "Bruce A. Mah mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:90
msgid "Dag-Erling Smørgrav mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:91
msgid "Giorgos Keramidas mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:92
msgid ""
"Ingvil Hovig "
"mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:93
msgid "Jesper Holck mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:94
msgid "John Baldwin mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:95
msgid "John Polstra mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:96
msgid "Kirk McKusick mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:97
msgid "Mark Linimon mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:98
msgid "Marleen Devos"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:99
msgid "Niels Jørgenssen mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:100
msgid "Nik Clayton mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:101
msgid "Poul-Henning Kamp mailto:[email protected][[email protected]]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:102
msgid "Simon L. Nielsen mailto:[email protected][[email protected]]"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:163
#, no-wrap
msgid "FreeBSD"
msgstr ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:173
msgid "The FreeBSD Project's structure (in order of descending authority)"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:226
#, no-wrap
msgid "Docs"
msgstr ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:228
#, no-wrap
msgid "45"
msgstr ""

#. 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 ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:234
#, no-wrap
msgid "Total"
msgstr ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:236
#, no-wrap
msgid "374"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Block title
#: documentation/content/en/books/dev-model/_index.adoc:367
#, no-wrap
msgid "The FreeBSD release tree"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:386
#, no-wrap
msgid "4.0 Current (development branch)"
msgstr ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:387
#, no-wrap
msgid "3.1 Release"
msgstr ""

#. 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 ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:390
#, no-wrap
msgid "5.0 Current (development branch)"
msgstr ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:391
#, no-wrap
msgid "4.0 Release"
msgstr ""

#. 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 ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:394
#, no-wrap
msgid "6.0 Current (development branch)"
msgstr ""

#. type: Table
#: documentation/content/en/books/dev-model/_index.adoc:395
#, no-wrap
msgid "5.3 Release"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Title ====
#: documentation/content/en/books/dev-model/_index.adoc:477
#, no-wrap
msgid "Core Team"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:512
msgid ""
"Hat held by: The DocEng team mailto:[email protected][[email protected]].  "
"The https://www.freebsd.org/internal/doceng/[ DocEng Charter]."
msgstr ""

#. type: Title ====
#: documentation/content/en/books/dev-model/_index.adoc:514
#, no-wrap
msgid "Postmaster"
msgstr ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:520
msgid ""
"Hat currently held by: the Postmaster Team "
"mailto:[email protected][[email protected]]."
msgstr ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:538
msgid ""
"Hat held by: the Release Engineering team "
"mailto:[email protected][[email protected]].  The https://www.freebsd.org/releng/"
"charter/[ Release Engineering Charter]."
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:548
msgid "Handle the \"freebsd-advocacy\" mailing list."
msgstr ""

#. 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 ""

#. 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 ""

#. 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:[email protected][security-"
"[email protected]] to help do the work."
msgstr ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:572
msgid ""
"Hat held by: the Source Repository Manager "
"mailto:[email protected][[email protected]]."
msgstr ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:592
msgid ""
"Hat held by: the FreeBSD Webmasters mailto:[email protected][[email protected]]."
msgstr ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:600
msgid ""
"Hat held by: the Ports Management Team "
"mailto:[email protected][[email protected]].  The https://"
"www.freebsd.org/portmgr/charter/[Portmgr charter]."
msgstr ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:607
msgid ""
"Hat currently held by: Garrett Wollman "
"mailto:[email protected][[email protected]]."
msgstr ""

#. type: Title ====
#: documentation/content/en/books/dev-model/_index.adoc:609
#, no-wrap
msgid "Core Secretary"
msgstr ""

#. 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 ""

#. type: Title ====
#: documentation/content/en/books/dev-model/_index.adoc:617
#, no-wrap
msgid "Bugmeister"
msgstr ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:623
msgid ""
"Hat currently held by: the Bugmeister Team "
"mailto:[email protected][[email protected]]."
msgstr ""

#. 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:[email protected][[email protected]].  The https://"
"www.freebsd.org/donations/[ Donations Liaison Charter]."
msgstr ""

#. type: Title ====
#: documentation/content/en/books/dev-model/_index.adoc:633
#, no-wrap
msgid "Admin"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:636
msgid "(Also called \"FreeBSD Cluster Admin\")"
msgstr ""

#. 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:[email protected][[email protected]]."
msgstr ""

#. 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 ""

#. 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 ""

#. type: Title ====
#: documentation/content/en/books/dev-model/_index.adoc:656
#, no-wrap
msgid "Mentor"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 [email protected] to both [email protected], 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:732
msgid "crossref:dev-model[role-mentor, Mentor]"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:785
msgid "crossref:dev-model[role-reviewer, Reviewers]"
msgstr ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:790
#, no-wrap
msgid "Core election"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Target for macro image
#: documentation/content/en/books/dev-model/_index.adoc:816
#, no-wrap
msgid "proc-elections.png"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:955
msgid "crossref:dev-model[role-bugbuster, Bugbuster]"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:957
msgid "[crossref:dev-model[freebsd-handle-pr, FreeBSD, 2002C]]."
msgstr ""

#. 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 ""

#. 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 ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:969
msgid "Committing to a security branch without approval - 2 days"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:970
msgid "Commit wars - 5 days to all participating parties"
msgstr ""

#. type: Plain text
#: documentation/content/en/books/dev-model/_index.adoc:971
msgid "Impolite or inappropriate behavior - 5 days"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:1057
#, no-wrap
msgid "Git"
msgstr ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:1063
#, no-wrap
msgid "Bugzilla"
msgstr ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:1071
#, no-wrap
msgid "Mailman"
msgstr ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:1081
#, no-wrap
msgid "Pretty Good Privacy"
msgstr ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:1088
#, no-wrap
msgid "Secure Shell"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Block title
#: documentation/content/en/books/dev-model/_index.adoc:1107
#, no-wrap
msgid "Number of ports added between 1995 and 2022"
msgstr ""

#. type: Target for macro image
#: documentation/content/en/books/dev-model/_index.adoc:1109
#, no-wrap
msgid "portsstatus.svg"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. type: Title ===
#: documentation/content/en/books/dev-model/_index.adoc:1130
#, no-wrap
msgid "The FreeBSD Documentation Project"
msgstr ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""

#. 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 ""