View | Details | Raw Unified | Return to bug 241814
Collapse All | Expand All

(-)en_US.ISO8859-1/books/dev-model/Makefile (-5 lines)
Lines 15-24 Link Here
15
15
16
IMAGES_EN= branches.png
16
IMAGES_EN= branches.png
17
IMAGES_EN+= freebsd-code-model.png
17
IMAGES_EN+= freebsd-code-model.png
18
IMAGES_EN+= hats-overview.png
19
IMAGES_EN+= maintenance.png
20
IMAGES_EN+= orghierarchy.png
21
IMAGES_EN+= orghierarchy2.png
22
IMAGES_EN+= portsstatus.png
18
IMAGES_EN+= portsstatus.png
23
IMAGES_EN+= proc-add-committer.png
19
IMAGES_EN+= proc-add-committer.png
24
IMAGES_EN+= proc-commit.png
20
IMAGES_EN+= proc-commit.png
Lines 25-31 Link Here
25
IMAGES_EN+= proc-contrib.png
21
IMAGES_EN+= proc-contrib.png
26
IMAGES_EN+= proc-elections.png
22
IMAGES_EN+= proc-elections.png
27
IMAGES_EN+= proc-pr.png
23
IMAGES_EN+= proc-pr.png
28
IMAGES_EN+= proc-releng.png
29
IMAGES_EN+= proc-rm-committer.png
24
IMAGES_EN+= proc-rm-committer.png
30
25
31
DOC_PREFIX?= ${.CURDIR}/../../..
26
DOC_PREFIX?= ${.CURDIR}/../../..
(-)en_US.ISO8859-1/books/dev-model/book.xml (-124 / +528 lines)
Lines 41-46 Link Here
41
        </copyright>
41
        </copyright>
42
	<revhistory>
42
	<revhistory>
43
	  <revision>
43
	  <revision>
44
	    <revnumber>1.6</revnumber>
45
	    <date>November, 2019</date>
46
	    <revremark>Style revisions, accessibility enhancements,
47
	      and statistics updates throughout the book.</revremark>
48
	  </revision>
49
	  <revision>
44
	    <revnumber>1.5</revnumber>
50
	    <revnumber>1.5</revnumber>
45
	    <date>October, 2014</date>
51
	    <date>October, 2014</date>
46
	    <revremark>Remove mention of GNATS which is no longer
52
	    <revremark>Remove mention of GNATS which is no longer
Lines 289-298 Link Here
289
295
290
            </para>
296
            </para>
291
            <para>
297
            <para>
292
                <figure>
298
                The FreeBSD Project's structure (in order of descending authority)
293
                    <title>The FreeBSD Project's structure</title>
299
                <informaltable pgwide="1">
294
                    <mediaobject><imageobject><imagedata fileref="orghierarchy"/></imageobject></mediaobject>
300
                    <tgroup cols="2">
295
                </figure>
301
                        <thead>
302
                            <row>
303
                                <entry>Group</entry>
304
                                <entry>Number of people</entry>
305
                            </row>
306
                        </thead>
307
308
                        <tbody>
309
                            <row>
310
                                <entry>Core members</entry>
311
                                <entry>9</entry>
312
                            </row>
313
314
                            <row>
315
                                <entry>Committers</entry>
316
                                <entry>269</entry>
317
                            </row>
318
319
                            <row>
320
                                <entry>Contributors</entry>
321
                                <entry>~3000</entry>
322
                            </row>
323
                        </tbody>
324
                    </tgroup>
325
                </informaltable>
296
            </para>
326
            </para>
297
327
298
            <para>
328
            <para>
Lines 306-312 Link Here
306
                The main resource in the FreeBSD community is its developers: the
336
                The main resource in the FreeBSD community is its developers: the
307
                committers and contributors. It is with their contributions that the
337
                committers and contributors. It is with their contributions that the
308
                project can move forward. Regular developers are referred to as contributors.
338
                project can move forward. Regular developers are referred to as contributors.
309
                As by January 1st, 2003, there are an estimated 5500
339
                As of January 1st, 2003, there are an estimated 5500
310
                contributors on the project.
340
                contributors on the project.
311
		<!--
341
		<!--
312
		  Contributors = people submitting PRs + people submitting code - overlap.
342
		  Contributors = people submitting PRs + people submitting code - overlap.
Lines 344-356 Link Here
344
            </para>
374
            </para>
345
375
346
            <para>
376
            <para>
347
                This split changes our triangle to look like this:
377
                This split changes our table to look like this:
348
            </para>
378
            </para>
349
            <para>
379
            <para>
350
                <figure>
380
                The FreeBSD Project's structure with committers in categories
351
                    <title>The FreeBSD Project's structure with committers in categories</title>
381
                <informaltable pgwide="1">
352
                    <mediaobject><imageobject><imagedata fileref="orghierarchy2"/></imageobject></mediaobject>
382
                    <tgroup cols="3">
353
                </figure>
383
                        <thead>
384
                            <row>
385
                                <entry>Group</entry>
386
                                <entry>Category</entry>
387
                                <entry>Number of people</entry>
388
                            </row>
389
                        </thead>
390
391
                        <tbody>
392
                            <row>
393
                                <entry>Core members</entry>
394
                                <entry></entry>
395
                                <entry>9</entry>
396
                            </row>
397
398
                            <row>
399
                                <entry>Committers</entry>
400
                                <entry>Kernel</entry>
401
                                <entry>56</entry>
402
                            </row>
403
404
                            <row>
405
                                <entry></entry>
406
                                <entry>Userland</entry>
407
                                <entry>50</entry>
408
                            </row>
409
410
                            <row>
411
                                <entry></entry>
412
                                <entry>Docs</entry>
413
                                <entry>9</entry>
414
                            </row>
415
416
                            <row>
417
                                <entry></entry>
418
                                <entry>Ports</entry>
419
                                <entry>120</entry>
420
                            </row>
421
422
                            <row>
423
                                <entry></entry>
424
                                <entry>Total</entry>
425
                                <entry>269</entry>
426
                            </row>
427
428
                            <row>
429
                                <entry>Contributors</entry>
430
                                <entry></entry>
431
                                <entry>~3000</entry>
432
                            </row>
433
                        </tbody>
434
                    </tgroup>
435
                </informaltable>
354
            </para>
436
            </para>
355
            <para>
437
            <para>
356
                Number of committers per area has been determined by going through
438
                Number of committers per area has been determined by going through
Lines 365-376 Link Here
365
                Committers fall into three
447
                Committers fall into three
366
                groups: committers who are only concerned with one area of
448
                groups: committers who are only concerned with one area of
367
                the project (for instance file systems), committers who
449
                the project (for instance file systems), committers who
368
                are involved only with one sub-project
450
                are involved only with one sub-project,
369
                and committers who commit to different parts
451
                and committers who commit to different parts
370
                of the code, including sub-projects.
452
                of the code, including sub-projects.
371
                Because some committers work on different parts, the total
453
                Because some committers work on different parts, the total
372
                number in the committers section of the triangle is higher than
454
                number in the committers section of the table is higher than
373
                in the above triangle.
455
                in the above table.
374
            </para>
456
            </para>
375
457
376
            <para>
458
            <para>
Lines 382-388 Link Here
382
                see all the consequences of a kernel change, demands
464
                see all the consequences of a kernel change, demands
383
                developers with a relative full understanding of the
465
                developers with a relative full understanding of the
384
                kernel. Multiple development efforts in the kernel also
466
                kernel. Multiple development efforts in the kernel also
385
                requires a closer coordination than userland applications do.
467
                require a closer coordination than userland applications do.
386
            </para>
468
            </para>
387
469
388
            <para>
470
            <para>
Lines 441-450 Link Here
441
                </para>
523
                </para>
442
524
443
                <para>
525
                <para>
444
                    <figure>
526
                    J&oslash;rgenssen's model for change integration
445
                        <title>J&oslash;rgenssen's model for change integration</title>
527
                    <informaltable pgwide="1">
446
                        <mediaobject><imageobject><imagedata fileref="maintenance"/></imageobject></mediaobject>
528
                        <tgroup cols="3">
447
                    </figure>
529
                            <thead>
530
                                <row>
531
                                    <entry>Stage</entry>
532
                                    <entry>Next if successful</entry>
533
                                    <entry>Next if unsuccessful</entry>
534
                                </row>
535
                            </thead>
536
                            <tbody>
537
                                <row>
538
                                    <entry>code</entry>
539
                                    <entry>review</entry>
540
                                    <entry></entry>
541
                                </row>
542
543
                                <row>
544
                                    <entry>review</entry>
545
                                    <entry>pre-commit test</entry>
546
                                    <entry>code</entry>
547
                                </row>
548
549
                                <row>
550
                                    <entry>pre-commit test</entry>
551
                                    <entry>development release</entry>
552
                                    <entry>code</entry>
553
                                </row>
554
555
                                <row>
556
                                    <entry>development release</entry>
557
                                    <entry>parallel debugging</entry>
558
                                    <entry>code</entry>
559
                                </row>
560
561
                                <row>
562
                                    <entry>parallel debugging</entry>
563
                                    <entry>production release</entry>
564
                                    <entry>code</entry>
565
                                </row>
566
567
                                <row>
568
                                    <entry>production release</entry>
569
                                    <entry></entry>
570
                                    <entry>code</entry>
571
                                </row>
572
                            </tbody>
573
                        </tgroup>
574
                    </informaltable>
448
                </para>
575
                </para>
449
576
450
                <para>
577
                <para>
Lines 472-479 Link Here
472
                    individually, meaning that this model is used in parallel by
599
                    individually, meaning that this model is used in parallel by
473
                    many developers on the different ongoing development efforts. A
600
                    many developers on the different ongoing development efforts. A
474
                    developer can also be working on multiple changes, so that while
601
                    developer can also be working on multiple changes, so that while
475
                    he is waiting for review or people to test one or more of his
602
                    they are waiting for review or people to test one or more of their
476
                    changes, he may be writing another change.
603
                    changes, they may be writing another change.
477
                </para>
604
                </para>
478
605
479
                <para>
606
                <para>
Lines 492-498 Link Here
492
619
493
                <para>
620
                <para>
494
                    Within the <quote>code</quote> bracket in J&oslash;rgensen's
621
                    Within the <quote>code</quote> bracket in J&oslash;rgensen's
495
                    figure, each programmer has his own working style and follows his
622
                    model, each programmer has their own working style and follows their
496
                    own development models. The bracket could very well have been
623
                    own development models. The bracket could very well have been
497
                    called <quote>development</quote> as it includes requirements
624
                    called <quote>development</quote> as it includes requirements
498
                    gathering and analysis, system and detailed design,
625
                    gathering and analysis, system and detailed design,
Lines 584-590 Link Here
584
                <title>Release branches</title>
711
                <title>Release branches</title>
585
712
586
                <para>
713
                <para>
587
                    The releases of FreeBSD is best illustrated by a tree with many
714
                    The releases of FreeBSD are best illustrated by a tree with many
588
                    branches where each major branch represents a major
715
                    branches where each major branch represents a major
589
                    version. Minor versions are represented by branches of the
716
                    version. Minor versions are represented by branches of the
590
                    major branches.
717
                    major branches.
Lines 607-617 Link Here
607
734
608
                <para>
735
                <para>
609
                    <figure>
736
                    <figure>
610
                        <title>The FreeBSD release tree</title>
737
                        <title>The FreeBSD release tree (refer to table below
738
                            for a screenreader-friendly version)</title>
611
                        <mediaobject><imageobject><imagedata fileref="branches"/></imageobject></mediaobject>
739
                        <mediaobject><imageobject><imagedata fileref="branches"/></imageobject></mediaobject>
612
                    </figure>
740
                    </figure>
613
                </para>
741
                </para>
742
614
                <para>
743
                <para>
744
                    <informaltable pgwide="1">
745
                        <tgroup cols="3">
746
                            <thead>
747
                                <row>
748
                                    <entry>Major release</entry>
749
                                    <entry>Forked from</entry>
750
                                    <entry>Following minor releases</entry>
751
                                </row>
752
                            </thead>
753
754
                            <tbody>
755
                                <row>
756
                                    <entry>&hellip;</entry>
757
                                    <entry></entry>
758
                                    <entry></entry>
759
                                </row>
760
761
                                <row>
762
                                    <entry>3.0 Current (development branch)</entry>
763
                                    <entry></entry>
764
                                    <entry>Releng 3 branches: 3.0 Release to
765
                                        3.5 Release, leading to 3.5.1 Release
766
                                        and the subsequent 3 Stable branch
767
                                    </entry>
768
                                </row>
769
770
                                <row>
771
                                    <entry>4.0 Current (development branch)</entry>
772
                                    <entry>3.1 Release</entry>
773
                                    <entry>Releng 4 branches: 4.1 Release to
774
                                        4.6 Release (and 4.6.2 Release), then
775
                                        4.7 Release to 4.11 Release (all
776
                                        starting at 4.3 Release also leading to
777
                                        a Releng_4_n branch), and the
778
                                        subsequent 4 Release branch
779
                                    </entry>
780
                                </row>
781
782
                                <row>
783
                                    <entry>5.0 Current (development branch)</entry>
784
                                    <entry>4.0 Release</entry>
785
                                    <entry>Releng 5 branches: 5.0 Release to
786
                                        5.4 Release (all except 5.0 and 5.3
787
                                        also leading to a Releng_5_n branch),
788
                                        and the subsequent 5 Release branch
789
                                   </entry>
790
                                </row>
791
792
                                <row>
793
                                    <entry>6.0 Current (development branch)</entry>
794
                                    <entry>5.3 Release</entry>
795
                                </row>
796
797
                                <row>
798
                                    <entry>&hellip;</entry>
799
                                    <entry></entry>
800
                                    <entry></entry>
801
                                </row>
802
                            </tbody>
803
                        </tgroup>
804
                    </informaltable>
805
                </para>
806
807
                <para>
615
                    The latest -CURRENT version
808
                    The latest -CURRENT version
616
                    is always referred to as -CURRENT, while the latest -STABLE
809
                    is always referred to as -CURRENT, while the latest -STABLE
617
                    release is always referred to as -STABLE. In this figure,
810
                    release is always referred to as -STABLE. In this figure,
Lines 688-694 Link Here
688
881
689
                <para>
882
                <para>
690
                    <figure>
883
                    <figure>
691
                        <title>The overall development model</title>
884
                        <title>The overall development model (refer to
885
                            paragraphs below for a screenreader-friendly
886
                            version)</title>
692
                        <mediaobject><imageobject><imagedata fileref="freebsd-code-model"/></imageobject></mediaobject>
887
                        <mediaobject><imageobject><imagedata fileref="freebsd-code-model"/></imageobject></mediaobject>
693
                    </figure>
888
                    </figure>
694
                </para>
889
                </para>
Lines 703-709 Link Here
703
                    spawning new main branches and minor versions being versions of
898
                    spawning new main branches and minor versions being versions of
704
                    the main branch. The top branch is the -CURRENT branch where all
899
                    the main branch. The top branch is the -CURRENT branch where all
705
                    new development is integrated, and the -STABLE branch is the
900
                    new development is integrated, and the -STABLE branch is the
706
                    branch directly below it.
901
                    branch directly below it. Below the -STABLE branch are old,
902
                    unsupported versions.
707
                </para>
903
                </para>
708
904
709
                <para>
905
                <para>
Lines 730-736 Link Here
730
                code. Because this is a project where people give voluntarily of
926
                code. Because this is a project where people give voluntarily of
731
                their spare time, people with assigned hats are not always
927
                their spare time, people with assigned hats are not always
732
                available. They must therefore appoint a deputy that can perform
928
                available. They must therefore appoint a deputy that can perform
733
                the hat's role in his or her absence. The other option is to have
929
                the hat's role in their absence. The other option is to have
734
                the role held by a group.
930
                the role held by a group.
735
            </para>
931
            </para>
736
932
Lines 763-769 Link Here
763
                <section xml:id="role-committer" xreflabel="Committer">
959
                <section xml:id="role-committer" xreflabel="Committer">
764
                    <title>Committer</title>
960
                    <title>Committer</title>
765
                    <para>
961
                    <para>
766
                        A person who has the required privileges to add his code or documentation to the
962
                        A person who has the required privileges to add their code or documentation to the
767
                        repository.
963
                        repository.
768
                        <!--
964
                        <!--
769
                        Note that there are people with commit privileges that used
965
                        Note that there are people with commit privileges that used
Lines 782-798 Link Here
782
                        parts of that project's source the committer did not specifically get
978
                        parts of that project's source the committer did not specifically get
783
                        permission to modify. However, when wanting to make
979
                        permission to modify. However, when wanting to make
784
                        modifications to parts a committer has not been involved in
980
                        modifications to parts a committer has not been involved in
785
                        before, he/she should read the logs to see what has happened
981
                        before, they should read the logs to see what has happened
786
                        in this area before, and also read the MAINTAINER file to see if
982
                        in this area before, and also read the MAINTAINERS file to see if
787
                        the maintainer of this part has any special requests on how
983
                        the maintainer of this part has any special requests on how
788
                        changes in the code should be made
984
                        changes in the code should be made.
789
                        <!--
985
                        <!--
790
                        Also, since
986
                        Also, since
791
                        <xref linkend="sub-project-ports"/> is allowed to give commit
987
                        <xref linkend="sub-project-ports"/> is allowed to give commit
792
                        privileges without approval from core, a committer who has
988
                        privileges without approval from core, a committer who has
793
                        gained his privileges through contributing to the ports
989
                        gained their privileges through contributing to the ports
794
                        sub-project should be careful and
990
                        sub-project should be careful and
795
                        have his changes approved before committing anything outside
991
                        have their changes approved before committing anything outside
796
                        the ports tree.
992
                        the ports tree.
797
                        -->
993
                        -->
798
                    </para>
994
                    </para>
Lines 809-815 Link Here
809
                        well-defined hats, and is the final arbiter of decisions involving
1005
                        well-defined hats, and is the final arbiter of decisions involving
810
                        which way the project should be heading.
1006
                        which way the project should be heading.
811
1007
812
                        As by July 1st, 2004, core consisted of 9 members.
1008
                        As of July 1st, 2004, core consisted of 9 members.
813
                        Elections are held every two years.
1009
                        Elections are held every two years.
814
                    </para>
1010
                    </para>
815
1011
Lines 862-887 Link Here
862
                    The official hats in the FreeBSD Project are hats that are more
1058
                    The official hats in the FreeBSD Project are hats that are more
863
                    or less formalised and mainly administrative roles. They have
1059
                    or less formalised and mainly administrative roles. They have
864
                    the authority and responsibility for their area. The following
1060
                    the authority and responsibility for their area. The following
865
                    illustration shows the responsibility lines. After this follows
1061
                    list shows the responsibility lines and gives
866
                    a description of each hat, including who it is held by.
1062
                    a description of each hat, including who it is held by.
867
                </para>
1063
                </para>
868
1064
869
                <para>
870
                    <figure>
871
                        <title>Overview of official hats</title>
872
                        <mediaobject><imageobject><imagedata fileref="hats-overview"/></imageobject></mediaobject>
873
                    </figure>
874
                </para>
875
1065
876
                <para>
877
                    All boxes consist of groups of committers, except for the
878
                    dotted boxes where the holders are not necessarily committers. The
879
                    flattened circles are sub-projects and consist of both
880
                    committers and non-committers of the main project.
881
                </para>
882
1066
883
884
885
                <section xml:id="role-doc-manager" xreflabel="Documentation                     project architect">
1067
                <section xml:id="role-doc-manager" xreflabel="Documentation                     project architect">
886
                    <title>Documentation project manager</title>
1068
                    <title>Documentation project manager</title>
887
                    <para>
1069
                    <para>
Lines 888-894 Link Here
888
                        <xref linkend="sub-project-documentation"/>
1070
                        <xref linkend="sub-project-documentation"/>
889
                        architect is responsible for
1071
                        architect is responsible for
890
                        defining and following up documentation goals for the
1072
                        defining and following up documentation goals for the
891
                        committers in the Documentation project.
1073
                        committers in the Documentation project, which they
1074
                        supervise.
892
                    </para>
1075
                    </para>
893
1076
894
                    <para>
1077
                    <para>
Lines 904-910 Link Here
904
                    <title>Postmaster</title>
1087
                    <title>Postmaster</title>
905
                    <para>
1088
                    <para>
906
                        The Postmaster is responsible for mail being correctly
1089
                        The Postmaster is responsible for mail being correctly
907
                        delivered to the committers' email address. He is also
1090
                        delivered to the committers' email address. They are also
908
                        responsible for ensuring that the mailing lists work and
1091
                        responsible for ensuring that the mailing lists work and
909
                        should take measures against possible disruptions of mail
1092
                        should take measures against possible disruptions of mail
910
                        such as having troll-, spam- and virus-filters.
1093
                        such as having troll-, spam- and virus-filters.
Lines 1014-1020 Link Here
1014
                        The Source Repository Manager is the only one who is allowed
1197
                        The Source Repository Manager is the only one who is allowed
1015
                        to directly modify the repository without using the
1198
                        to directly modify the repository without using the
1016
                        <xref linkend="tool-svn"/> tool.
1199
                        <xref linkend="tool-svn"/> tool.
1017
                        It is his/her
1200
                        It is their
1018
                        responsibility to ensure that technical problems that arise in the
1201
                        responsibility to ensure that technical problems that arise in the
1019
                        repository are resolved quickly. The source repository
1202
                        repository are resolved quickly. The source repository
1020
                        manager has the authority to back out commits if this is
1203
                        manager has the authority to back out commits if this is
Lines 1114-1120 Link Here
1114
                    <para>
1297
                    <para>
1115
                        The Bugmeister is responsible for ensuring that the
1298
                        The Bugmeister is responsible for ensuring that the
1116
                        maintenance database is in working order, that the entries
1299
                        maintenance database is in working order, that the entries
1117
                        are correctly categorised and that there are no invalid entries.
1300
                        are correctly categorised and that there are no invalid entries. They supervise bugbusters.
1118
                    </para>
1301
                    </para>
1119
                    <para>
1302
                    <para>
1120
                        Hat currently held by:
1303
                        Hat currently held by:
Lines 1129-1141 Link Here
1129
                        the donations liaison officer is to match
1312
                        the donations liaison officer is to match
1130
                        the developers with needs with people or
1313
                        the developers with needs with people or
1131
                        organisations willing to make a
1314
                        organisations willing to make a
1132
                        donation. The Donations Liaison Charter is
1315
                        donation.
1133
                        available
1134
                        <link xlink:href="https://www.freebsd.org/donations/">here</link>
1135
                    </para>
1316
                    </para>
1136
                    <para>
1317
                    <para>
1137
                        Hat held by:
1318
                        Hat held by:
1138
                        the Donations Liaison Office <email>donations@FreeBSD.org</email>.
1319
                        the Donations Liaison Office <email>donations@FreeBSD.org</email>.
1320
                        The
1321
                        <link xlink:href="https://www.freebsd.org/donations/">
1322
                            Donations Liaison Charter</link>.
1139
                    </para>
1323
                    </para>
1140
                </section>
1324
                </section>
1141
1325
Lines 1191-1202 Link Here
1191
                <section xml:id="role-mentor" xreflabel="Mentor">
1375
                <section xml:id="role-mentor" xreflabel="Mentor">
1192
                    <title>Mentor</title>
1376
                    <title>Mentor</title>
1193
                    <para>
1377
                    <para>
1194
                        A mentor is a committer who takes it upon him/her to
1378
                        A mentor is a committer who takes it upon them to
1195
                        introduce a new committer to the project, both in terms of
1379
                        introduce a new committer to the project, both in terms of
1196
                        ensuring the new committers setup is valid,
1380
                        ensuring the new committer's setup is valid,
1197
                        that the new committer knows the available tools required in
1381
                        that the new committer knows the available tools required in
1198
                        his/her work and that the
1382
                        their work, and that the
1199
                        new committer knows what is expected of him/her in terms of
1383
                        new committer knows what is expected of them in terms of
1200
                        behavior.
1384
                        behavior.
1201
                    </para>
1385
                    </para>
1202
                </section>
1386
                </section>
Lines 1260-1279 Link Here
1260
                </para>
1444
                </para>
1261
1445
1262
                <para>
1446
                <para>
1263
                    When a contributor is given committer status, he is
1447
                    When a contributor is given committer status, they are
1264
                    assigned a mentor. The committer who recommended the
1448
                    assigned a mentor. The committer who recommended the
1265
                    new committer will, in the general case, take it upon
1449
                    new committer will, in the general case, take it upon
1266
                    himself to be the new committers mentor.
1450
                    themselves to be the new committers mentor.
1267
1451
1268
                </para>
1452
                </para>
1269
1453
1270
                <para>
1454
                <para>
1271
                    When a contributor is given his commit bit, a <xref linkend="tool-pgp"/>-signed email is sent
1455
                    When a contributor is given their commit bit, a <xref linkend="tool-pgp"/>-signed email is sent
1272
                    from either <xref linkend="role-core-secretary"/>,
1456
                    from either <xref linkend="role-core-secretary"/>,
1273
                    <xref linkend="role-ports-manager"/> or nik@freebsd.org to both
1457
                    <xref linkend="role-ports-manager"/>, or nik@freebsd.org to both
1274
                    admins@freebsd.org, the assigned mentor, the new committer and
1458
                    admins@freebsd.org, the assigned mentor, the new committer, and
1275
                    core confirming the approval of a new account. The mentor then
1459
                    core confirming the approval of a new account. The mentor then
1276
                    gathers a password line, <xref linkend="tool-ssh2"/> public key and PGP key from the
1460
                    gathers a password line, <xref linkend="tool-ssh2"/> public key, and PGP key from the
1277
                    new committer and sends them to <xref linkend="role-admin"/>. When the new account is created, the
1461
                    new committer and sends them to <xref linkend="role-admin"/>. When the new account is created, the
1278
                    mentor activates the commit bit and guides the new committer
1462
                    mentor activates the commit bit and guides the new committer
1279
                    through the rest of the initial process.
1463
                    through the rest of the initial process.
Lines 1281-1287 Link Here
1281
1465
1282
                <para>
1466
                <para>
1283
                    <figure>
1467
                    <figure>
1284
                        <title>Process summary: adding a new committer</title>
1468
                        <title>Process summary: adding a new committer (refer
1469
                            to paragraph below for a screenreader-friendly
1470
                            version)</title>
1285
                        <mediaobject><imageobject><imagedata fileref="proc-add-committer"/></imageobject></mediaobject>
1471
                        <mediaobject><imageobject><imagedata fileref="proc-add-committer"/></imageobject></mediaobject>
1286
                    </figure>
1472
                    </figure>
1287
                </para>
1473
                </para>
Lines 1289-1301 Link Here
1289
                <para>
1475
                <para>
1290
                    When a contributor sends a piece of code, the receiving
1476
                    When a contributor sends a piece of code, the receiving
1291
                    committer may choose to recommend that the contributor is
1477
                    committer may choose to recommend that the contributor is
1292
                    given commit privileges. If he recommends this to core,
1478
                    given commit privileges. If they recommend this to core,
1293
                    they will vote on this recommendation. If they vote in
1479
                    core will vote on this recommendation. If the vote is in
1294
                    favour, a mentor is assigned the new committer and the new
1480
                    favour, a mentor is assigned the new committer and the new
1295
                    committer has to email his details to the administrators
1481
                    committer has to email their details to the administrators
1296
                    for an account to be created. After this, the new
1482
                    for an account to be created. After this, the new
1297
                    committer is all set to make his first commit.  By
1483
                    committer is all set to make their first commit.  By
1298
                    tradition, this is by adding his name to the committers list.
1484
                    tradition, this is by adding their name to the committers list.
1299
                </para>
1485
                </para>
1300
1486
1301
                <para>
1487
                <para>
Lines 1313-1319 Link Here
1313
1499
1314
                <para>
1500
                <para>
1315
                    <figure>
1501
                    <figure>
1316
                        <title>Process summary: removing a committer</title>
1502
                        <title>Process summary: removing a committer (refer to
1503
                           paragraph below for a screenreader-friendly
1504
                           version)</title>
1317
                        <mediaobject><imageobject><imagedata fileref="proc-rm-committer"/></imageobject></mediaobject>
1505
                        <mediaobject><imageobject><imagedata fileref="proc-rm-committer"/></imageobject></mediaobject>
1318
                    </figure>
1506
                    </figure>
1319
                </para>
1507
                </para>
Lines 1322-1328 Link Here
1322
                    When Core decides to clean up the committers list, they
1510
                    When Core decides to clean up the committers list, they
1323
                    check who has not made a commit for the past 18 months.
1511
                    check who has not made a commit for the past 18 months.
1324
                    Committers who have not done so have their commit
1512
                    Committers who have not done so have their commit
1325
                    bits revoked.
1513
                    bits revoked and their account removed by the
1514
                    administrators.
1326
                </para>
1515
                </para>
1327
1516
1328
                <para>
1517
                <para>
Lines 1370-1385 Link Here
1370
                    frequent processes in the FreeBSD project and will usually
1559
                    frequent processes in the FreeBSD project and will usually
1371
                    happen many times a day. Committing of code can only be done
1560
                    happen many times a day. Committing of code can only be done
1372
                    by a <quote>committer</quote>. Committers commit either code
1561
                    by a <quote>committer</quote>. Committers commit either code
1373
                    written by themselves, code submitted to them or code
1562
                    written by themselves, code submitted to them, or code
1374
                    submitted through a <link linkend="model-pr">problem
1563
                    submitted through a <link linkend="model-pr">problem
1375
                    report</link>.
1564
                    report</link>.
1376
                </para>
1565
                </para>
1377
1566
1378
                <para>
1567
                <para>
1379
                    When code is written by the developer that is non-trivial, he
1568
                    When code is written by the developer that is non-trivial, they
1380
                    should seek a code review from the community. This
1569
                    should seek a code review from the community. This
1381
                    is done by sending mail to the relevant list asking for
1570
                    is done by sending mail to the relevant list asking for
1382
                    review. Before submitting the code for review, he should
1571
                    review. Before submitting the code for review, they should
1383
                    ensure it compiles correctly with the entire tree and that all
1572
                    ensure it compiles correctly with the entire tree and that all
1384
                    relevant tests run. This is called <quote>pre-commit
1573
                    relevant tests run. This is called <quote>pre-commit
1385
                    test</quote>. When contributed code is received, it should be
1574
                    test</quote>. When contributed code is received, it should be
Lines 1409-1415 Link Here
1409
                    set by the committer. After the number of days the
1598
                    set by the committer. After the number of days the
1410
                    committer chose when setting the MFC have passed, an email
1599
                    committer chose when setting the MFC have passed, an email
1411
                    will automatically be
1600
                    will automatically be
1412
                    sent to the committer reminding him to commit it to the -STABLE
1601
                    sent to the committer reminding them to commit it to the -STABLE
1413
                    branch (and possibly security branches as well). Only security
1602
                    branch (and possibly security branches as well). Only security
1414
                    critical changes should be merged to security branches.
1603
                    critical changes should be merged to security branches.
1415
                </para>
1604
                </para>
Lines 1424-1430 Link Here
1424
1613
1425
                <para>
1614
                <para>
1426
                    <figure>
1615
                    <figure>
1427
                        <title>Process summary: A committer commits code</title>
1616
                        <title>Process summary: A committer commits code (refer
1617
                            to paragraph below for a screenreader-friendly
1618
                            version)</title>
1428
                        <mediaobject><imageobject><imagedata fileref="proc-commit"/></imageobject></mediaobject>
1619
                        <mediaobject><imageobject><imagedata fileref="proc-commit"/></imageobject></mediaobject>
1429
                    </figure>
1620
                    </figure>
1430
                </para>
1621
                </para>
Lines 1431-1454 Link Here
1431
1622
1432
                <para>
1623
                <para>
1433
                    When a committer has written a piece of code and
1624
                    When a committer has written a piece of code and
1434
                    wants to commit it, he first needs to determine if it is
1625
                    wants to commit it, they first need to determine if it is
1435
                    trivial enough to go in without prior review or if it should
1626
                    trivial enough to go in without prior review or if it should
1436
                    first be reviewed by the developer community. If the code is
1627
                    first be reviewed by the developer community. If the code is
1437
                    trivial or has been reviewed and the committer is not the
1628
                    trivial or has been reviewed and the committer is not the
1438
                    maintainer, he should consult the maintainer before
1629
                    maintainer, they should consult the maintainer before
1439
                    proceeding.
1630
                    proceeding.
1440
                    If the code is contributed by an outside vendor, the
1631
                    If the code is contributed by an outside vendor, the
1441
                    maintainer should create a patch that is sent back to the
1632
                    maintainer should create a patch that is sent back to the
1442
                    vendor. The code is then committed and the deployed by
1633
                    vendor. The code is then committed and then deployed by
1443
                    the users. Should they find problems with the code, this
1634
                    the users. Should they find problems with the code, this
1444
                    will be reported and the committer can go back to writing
1635
                    will be reported and the committer can go back to writing
1445
                    a patch. If a vendor is affected, he can choose to
1636
                    a patch. If a vendor is affected, they can choose to
1446
                    implement or ignore the patch.
1637
                    implement or ignore the patch.
1447
                </para>
1638
                </para>
1448
1639
1449
                <para>
1640
                <para>
1450
                    <figure>
1641
                    <figure>
1451
                        <title>Process summary: A contributor commits code</title>
1642
                        <title>Process summary: A contributor commits code
1643
                            (refer to paragraphs below and above for a
1644
                            screenreader-friendly version)</title>
1452
                        <mediaobject><imageobject><imagedata fileref="proc-contrib"/></imageobject></mediaobject>
1645
                        <mediaobject><imageobject><imagedata fileref="proc-contrib"/></imageobject></mediaobject>
1453
                    </figure>
1646
                    </figure>
1454
                </para>
1647
                </para>
Lines 1455-1461 Link Here
1455
1648
1456
                <para>
1649
                <para>
1457
                    The difference when a contributor makes a code contribution is
1650
                    The difference when a contributor makes a code contribution is
1458
                    that he submits the code through the Bugzilla
1651
                    that they submit the code through the Bugzilla
1459
                    interface. This report is picked up by the maintainer who
1652
                    interface. This report is picked up by the maintainer who
1460
                    reviews the code and commits it.
1653
                    reviews the code and commits it.
1461
                </para>
1654
                </para>
Lines 1547-1553 Link Here
1547
1740
1548
                <para>
1741
                <para>
1549
                    <figure>
1742
                    <figure>
1550
                        <title>Process summary: Core elections</title>
1743
                        <title>Process summary: Core elections (refer to
1744
                           paragraph below for a screenreader-friendly
1745
                           version)</title>
1551
                        <mediaobject><imageobject><imagedata fileref="proc-elections"/></imageobject></mediaobject>
1746
                        <mediaobject><imageobject><imagedata fileref="proc-elections"/></imageobject></mediaobject>
1552
                    </figure>
1747
                    </figure>
1553
                </para>
1748
                </para>
Lines 1554-1560 Link Here
1554
1749
1555
                <para>
1750
                <para>
1556
                    Core announces the election and selects an election
1751
                    Core announces the election and selects an election
1557
                    manager. He prepares the elections, and when ready,
1752
                    manager who prepares the elections, and when ready,
1558
                    candidates can announce their candidacies through
1753
                    candidates can announce their candidacies through
1559
                    submitting their statements. The committers then vote.
1754
                    submitting their statements. The committers then vote.
1560
                    After the vote is over, the election results are
1755
                    After the vote is over, the election results are
Lines 1607-1614 Link Here
1607
                    requests by mail, Problem Reports, commercial funding for the development
1802
                    requests by mail, Problem Reports, commercial funding for the development
1608
                    of features, or contributions by the scientific community.
1803
                    of features, or contributions by the scientific community.
1609
                    The wishes that come within the responsibility of a developer
1804
                    The wishes that come within the responsibility of a developer
1610
                    are given to that developer who prioritises his time between
1805
                    are given to that developer who prioritises their time between
1611
                    the request and his wishes. A common way to do this is maintain
1806
                    the request and their wishes. A common way to do this is maintain
1612
                    a TODO-list maintained by the project. Items that do not come within
1807
                    a TODO-list maintained by the project. Items that do not come within
1613
                    someone's responsibility are collected on TODO-lists unless someone
1808
                    someone's responsibility are collected on TODO-lists unless someone
1614
                    volunteers to take the responsibility. All
1809
                    volunteers to take the responsibility. All
Lines 1629-1635 Link Here
1629
1824
1630
                <para>
1825
                <para>
1631
                    As the requests are prioritised by the individual developers on
1826
                    As the requests are prioritised by the individual developers on
1632
                    the basis of doing what they find interesting, necessary or are
1827
                    the basis of doing what they find interesting, necessary, or are
1633
                    funded to do, there is no overall strategy or prioritisation of
1828
                    funded to do, there is no overall strategy or prioritisation of
1634
                    what requests to regard as requirements and following up their
1829
                    what requests to regard as requirements and following up their
1635
                    correct implementation. However, most developers have some
1830
                    correct implementation. However, most developers have some
Lines 1707-1716 Link Here
1707
                </para>
1902
                </para>
1708
1903
1709
                <para>
1904
                <para>
1710
                    <figure>
1905
                    J&oslash;rgenssen's model for change integration
1711
                        <title>J&oslash;rgenssen's model for change integration</title>
1906
                    <informaltable pgwide="1">
1712
                        <mediaobject><imageobject><imagedata fileref="maintenance"/></imageobject></mediaobject>
1907
                        <tgroup cols="3">
1713
                    </figure>
1908
                            <thead>
1909
                                <row>
1910
                                    <entry>Stage</entry>
1911
                                    <entry>Next if successful</entry>
1912
                                    <entry>Next if unsuccessful</entry>
1913
                                </row>
1914
                            </thead>
1915
                            <tbody>
1916
                                <row>
1917
                                    <entry>code</entry>
1918
                                    <entry>review</entry>
1919
                                    <entry></entry>
1920
                                </row>
1921
1922
                                <row>
1923
                                    <entry>review</entry>
1924
                                    <entry>pre-commit test</entry>
1925
                                    <entry>code</entry>
1926
                                </row>
1927
1928
                                <row>
1929
                                    <entry>pre-commit test</entry>
1930
                                    <entry>development release</entry>
1931
                                    <entry>code</entry>
1932
                                </row>
1933
1934
                                <row>
1935
                                    <entry>development release</entry>
1936
                                    <entry>parallel debugging</entry>
1937
                                    <entry>code</entry>
1938
                                </row>
1939
1940
                                <row>
1941
                                    <entry>parallel debugging</entry>
1942
                                    <entry>production release</entry>
1943
                                    <entry>code</entry>
1944
                                </row>
1945
1946
                                <row>
1947
                                    <entry>production release</entry>
1948
                                    <entry></entry>
1949
                                    <entry>code</entry>
1950
                                </row>
1951
                            </tbody>
1952
                        </tgroup>
1953
                    </informaltable>
1714
                </para>
1954
                </para>
1715
1955
1716
                <para>
1956
                <para>
Lines 1788-1794 Link Here
1788
2028
1789
                <para>
2029
                <para>
1790
                    <figure>
2030
                    <figure>
1791
                        <title>Process summary: problem reporting</title>
2031
                        <title>Process summary: problem reporting (refer to
2032
                            paragraph below for a screenreader-friendly
2033
                            version)</title>
1792
                        <mediaobject><imageobject><imagedata fileref="proc-pr"/></imageobject></mediaobject>
2034
                        <mediaobject><imageobject><imagedata fileref="proc-pr"/></imageobject></mediaobject>
1793
                    </figure>
2035
                    </figure>
1794
                </para>
2036
                </para>
Lines 1796-1803 Link Here
1796
                <para>
2038
                <para>
1797
                    A problem is reported by the report originator. It is
2039
                    A problem is reported by the report originator. It is
1798
                    then classified by a bugbuster and handed to the correct
2040
                    then classified by a bugbuster and handed to the correct
1799
                    maintainer. He verifies the problem and discusses the
2041
                    maintainer. They verify the problem and discuss the
1800
                    problem with the originator until he has enough
2042
                    problem with the originator until they have enough
1801
                    information to create a working patch. This patch is then
2043
                    information to create a working patch. This patch is then
1802
                    committed and the problem report is closed.
2044
                    committed and the problem report is closed.
1803
                </para>
2045
                </para>
Lines 1833-1839 Link Here
1833
                    number of rules that committers should follow. However, it
2075
                    number of rules that committers should follow. However, it
1834
                    happens that these rules are broken. The following rules exist
2076
                    happens that these rules are broken. The following rules exist
1835
                    in order to be able to react to misbehavior. They specify what
2077
                    in order to be able to react to misbehavior. They specify what
1836
                    actions will result in how long a suspension the committer's
2078
                    actions will result in how long a suspension of the committer's
1837
                    commit privileges.
2079
                    commit privileges.
1838
2080
1839
                    <itemizedlist>
2081
                    <itemizedlist>
Lines 1861-1867 Link Here
1861
                    mailing list. Repeat offenders can, with a 2/3 vote by core,
2103
                    mailing list. Repeat offenders can, with a 2/3 vote by core,
1862
                    receive harsher penalties, including permanent removal of
2104
                    receive harsher penalties, including permanent removal of
1863
                    commit privileges. (However, the latter is always viewed as a last
2105
                    commit privileges. (However, the latter is always viewed as a last
1864
                    resort, due to its inherent tendency to create controversy).  All
2106
                    resort, due to its inherent tendency to create controversy.)  All
1865
                    suspensions are posted to the
2107
                    suspensions are posted to the
1866
                    <quote>developers</quote>
2108
                    <quote>developers</quote>
1867
                    mailing list, a list available to committers only.
2109
                    mailing list, a list available to committers only.
Lines 1912-1921 Link Here
1912
                    be committed to the branch without the release engineers'
2154
                    be committed to the branch without the release engineers'
1913
                    explicit consent. Code-freeze means no changes to the code (like
2155
                    explicit consent. Code-freeze means no changes to the code (like
1914
                    bugs-fixes) are allowed to be committed without the release
2156
                    bugs-fixes) are allowed to be committed without the release
1915
                    engineers explicit consent. This feature- and code-freeze is
2157
                    engineers' explicit consent. This feature- and code-freeze is
1916
                    known as stabilising. During the release process, the release
2158
                    known as stabilising. During the release process, the release
1917
                    engineer has the full authority to revert to older versions of
2159
                    engineer has the full authority to revert to older versions of
1918
                    code and thus "back out" changes should he find that the changes
2160
                    code and thus "back out" changes should they find that the changes
1919
                    are not suitable to be included in the release.
2161
                    are not suitable to be included in the release.
1920
                </para>
2162
                </para>
1921
2163
Lines 1962-1968 Link Here
1962
                    releases are considered release candidates. At the end of the
2204
                    releases are considered release candidates. At the end of the
1963
                    release process, a release is created with the new version
2205
                    release process, a release is created with the new version
1964
                    number, including binary distributions on web sites and the
2206
                    number, including binary distributions on web sites and the
1965
                    creation of a CD-ROM images.  However, the release is not
2207
                    creation of CD-ROM images.  However, the release is not
1966
                    considered "really released" until a <xref linkend="tool-pgp"/>-signed message stating
2208
                    considered "really released" until a <xref linkend="tool-pgp"/>-signed message stating
1967
                    exactly that, is sent to the mailing list freebsd-announce; anything
2209
                    exactly that, is sent to the mailing list freebsd-announce; anything
1968
                    labelled as a "release" before that may well be in-process and
2210
                    labelled as a "release" before that may well be in-process and
Lines 2024-2042 Link Here
2024
2266
2025
2267
2026
                <para>
2268
                <para>
2027
                    <figure>
2269
                    <orderedlist>
2028
                        <title>Process summary: release engineering</title>
2270
                        <listitem><para>Make release schedule</para></listitem>
2029
                        <mediaobject><imageobject><imagedata fileref="proc-releng"/></imageobject></mediaobject>
2271
                        <listitem><para>Feature freeze</para></listitem>
2030
                    </figure>
2272
                        <listitem><para>Code freeze</para></listitem>
2273
                        <listitem><para>Make branch</para></listitem>
2274
                        <listitem><para>Release candidate</para></listitem>
2275
                        <listitem><para>Stabilize release (loop back to
2276
                            previous step as many times as necessary; when
2277
                            release is considered stable, proceed with next
2278
                            step)
2279
                        </para></listitem>
2280
                        <listitem><para>Build packages</para></listitem>
2281
                        <listitem><para>Warn mirrors</para></listitem>
2282
                        <listitem><para>Publish release</para></listitem>
2283
                    </orderedlist>
2031
                </para>
2284
                </para>
2032
2285
2033
                <para>
2034
                    These are the stages in the release engineering
2035
                    process. Multiple release candidates may be created until
2036
                    the release is deemed stable enough to be released.
2037
                </para>
2038
2286
2039
2040
                <para>
2287
                <para>
2041
                    <citation><xref linkend="freebsd-releng"/></citation>
2288
                    <citation><xref linkend="freebsd-releng"/></citation>
2042
                </para>
2289
                </para>
Lines 2077-2083 Link Here
2077
                    and editing bug reports. The project uses its
2324
                    and editing bug reports. The project uses its
2078
                    web interface to send
2325
                    web interface to send
2079
                    <quote>Problem Reports</quote> to the
2326
                    <quote>Problem Reports</quote> to the
2080
                    projects central Bugzilla server. The committers also have web and
2327
                    project's central Bugzilla server. The committers also have web and
2081
                    command-line clients.
2328
                    command-line clients.
2082
                </para>
2329
                </para>
2083
            </section>
2330
            </section>
Lines 2088-2094 Link Here
2088
                    Mailman is a program that automates the
2335
                    Mailman is a program that automates the
2089
                    management of mailing lists. The FreeBSD Project uses it to run
2336
                    management of mailing lists. The FreeBSD Project uses it to run
2090
                    16 general lists, 60 technical lists, 4 limited lists and 5 lists
2337
                    16 general lists, 60 technical lists, 4 limited lists and 5 lists
2091
		    with CVS commit logs. It is
2338
		    with SVN commit logs. It is
2092
                    also used for many mailing lists set up and used by other people
2339
                    also used for many mailing lists set up and used by other people
2093
                    and projects in the FreeBSD community. General lists are lists
2340
                    and projects in the FreeBSD community. General lists are lists
2094
                    for the general public, technical lists are mainly for the
2341
                    for the general public, technical lists are mainly for the
Lines 2108-2114 Link Here
2108
                    using a public key architecture to allow people to digitally
2355
                    using a public key architecture to allow people to digitally
2109
                    sign and/or encrypt information in order to ensure secure
2356
                    sign and/or encrypt information in order to ensure secure
2110
                    communication between two parties. A signature is used when
2357
                    communication between two parties. A signature is used when
2111
                    sending information out many recipients, enabling them to verify
2358
                    sending information out to many recipients, enabling them to verify
2112
                    that the information has not been tampered with before they
2359
                    that the information has not been tampered with before they
2113
                    received it. In the FreeBSD Project this is the primary means of
2360
                    received it. In the FreeBSD Project this is the primary means of
2114
                    ensuring that information has been written by the person who
2361
                    ensuring that information has been written by the person who
Lines 2152-2176 Link Here
2152
                <para>
2399
                <para>
2153
                    A <quote>port</quote> is a set of meta-data and patches that
2400
                    A <quote>port</quote> is a set of meta-data and patches that
2154
                    are needed to fetch, compile and install correctly an external piece of
2401
                    are needed to fetch, compile and install correctly an external piece of
2155
                    software on a FreeBSD system. The amount of ports have grown
2402
                    software on a FreeBSD system. The amount of ports has grown
2156
                    at a tremendous rate, as shown by the following figure.
2403
                    at a tremendous rate, as shown by the following figure.
2157
                </para>
2404
                </para>
2158
2405
2159
                <para>
2406
                <para>
2160
                    <figure xml:id="fig-ports">
2407
                    <figure xml:id="fig-ports">
2161
                        <title>Number of ports added between 1996 and 2005</title>
2408
                        <title>Number of ports added between 1996 and 2008
2409
                            (refer to tables below for a screenreader-friendly
2410
                            version)</title>
2162
                        <mediaobject><imageobject><imagedata fileref="portsstatus"/></imageobject></mediaobject>
2411
                        <mediaobject><imageobject><imagedata fileref="portsstatus"/></imageobject></mediaobject>
2163
                    </figure>
2412
                    </figure>
2164
                </para>
2413
                </para>
2165
2414
2166
                <para>
2415
                <para>
2167
                    <xref linkend="fig-ports"/> is taken from
2416
                    <xref linkend="fig-ports"/>
2168
                    <link xlink:href="https://www.freebsd.org/ports/growth/status.png">
2417
                    shows the number of ports
2169
                    the FreeBSD web site</link>. It shows the number of ports
2418
                    available to FreeBSD in the period 1995 to 2008. It looks
2170
                    available to FreeBSD in the period 1995 to 2005. It looks
2419
                    like the curve has first grown exponentially, and then
2171
                    like the curve has first grown exponentionally, and then
2420
                    from the middle of 2001 to the middle of 2007 grown
2172
                    since the middle of 2001 grown linearly.
2421
                    linearly at a rate of about 2000 ports/year, before its
2422
                    growth rate gets lower.
2173
                </para>
2423
                </para>
2424
                <para>
2425
                    Approximate dates each multiple of 1000 ports is reached
2426
                    <informaltable pgwide="1">
2427
                        <tgroup cols="2">
2428
                            <thead>
2429
                                <row>
2430
                                    <entry>Number of ports</entry>
2431
                                    <entry>Approximate date</entry>
2432
                                </row>
2433
                            </thead>
2434
                            <tbody>
2435
                                <row>
2436
                                    <entry>1000</entry>
2437
                                    <entry>Late 1997</entry>
2438
                                </row>
2439
                                <row>
2440
                                    <entry>2000</entry>
2441
                                    <entry>Late 1998</entry>
2442
                                </row>
2443
                                <row>
2444
                                    <entry>3000</entry>
2445
                                    <entry>Early 2000</entry>
2446
                                </row>
2447
                                <row>
2448
                                    <entry>4000</entry>
2449
                                    <entry>Late 2000</entry>
2450
                                </row>
2451
                                <row>
2452
                                    <entry>5000</entry>
2453
                                    <entry>Mid 2001</entry>
2454
                                </row>
2455
                                <row>
2456
                                    <entry>6000</entry>
2457
                                    <entry>4th quarter of 2001</entry>
2458
                                </row>
2459
                                <row>
2460
                                    <entry>7000</entry>
2461
                                    <entry>Mid 2002</entry>
2462
                                </row>
2463
                                <row>
2464
                                    <entry>8000</entry>
2465
                                    <entry>4th quarter of 2002</entry>
2466
                                </row>
2467
                                <row>
2468
                                    <entry>9000</entry>
2469
                                    <entry>Mid 2003</entry>
2470
                                </row>
2471
                                <row>
2472
                                    <entry>10000</entry>
2473
                                    <entry>End of 2003</entry>
2474
                                </row>
2475
                                <row>
2476
                                    <entry>11000</entry>
2477
                                    <entry>Mid 2004</entry>
2478
                                </row>
2479
                                <row>
2480
                                    <entry>12000</entry>
2481
                                    <entry>End of 2004</entry>
2482
                                </row>
2483
                                <row>
2484
                                    <entry>13000</entry>
2485
                                    <entry>Mid 2005</entry>
2486
                                </row>
2487
                                <row>
2488
                                    <entry>14000</entry>
2489
                                    <entry>Early 2006</entry>
2490
                                </row>
2491
                                <row>
2492
                                    <entry>15000</entry>
2493
                                    <entry>Mid 2006</entry>
2494
                                </row>
2495
                                <row>
2496
                                    <entry>16000</entry>
2497
                                    <entry>3rd quarter 2006</entry>
2498
                                </row>
2499
                                <row>
2500
                                    <entry>17000</entry>
2501
                                    <entry>2nd quarter 2007</entry>
2502
                                </row>
2503
                            </tbody>
2504
                        </tgroup>
2505
                    </informaltable>
2506
                </para>
2507
                <para>
2508
                    Approximate number of ports at the start of each year
2509
                    <informaltable pgwide="1">
2510
                        <tgroup cols="2">
2511
                            <thead>
2512
                                <row>
2513
                                    <entry>Year</entry>
2514
                                    <entry>Approximate number of ports</entry>
2515
                                </row>
2516
                            </thead>
2517
                            <tbody>
2518
                                <row>
2519
                                    <entry>1995</entry>
2520
                                    <entry>100</entry>
2521
                                </row>
2522
                                <row>
2523
                                    <entry>1996</entry>
2524
                                    <entry>300</entry>
2525
                                </row>
2526
                                <row>
2527
                                    <entry>1997</entry>
2528
                                    <entry>700</entry>
2529
                                </row>
2530
                                <row>
2531
                                    <entry>1998</entry>
2532
                                    <entry>1200</entry>
2533
                                </row>
2534
                                <row>
2535
                                    <entry>1999</entry>
2536
                                    <entry>2000</entry>
2537
                                </row>
2538
                                <row>
2539
                                    <entry>2000</entry>
2540
                                    <entry>2900</entry>
2541
                                </row>
2542
                                <row>
2543
                                    <entry>2001</entry>
2544
                                    <entry>4300</entry>
2545
                                </row>
2546
                                <row>
2547
                                    <entry>2002</entry>
2548
                                    <entry>6200</entry>
2549
                                </row>
2550
                                <row>
2551
                                    <entry>2003</entry>
2552
                                    <entry>8100</entry>
2553
                                </row>
2554
                                <row>
2555
                                    <entry>2004</entry>
2556
                                    <entry>10050</entry>
2557
                                </row>
2558
                                <row>
2559
                                    <entry>2005</entry>
2560
                                    <entry>12100</entry>
2561
                                </row>
2562
                                <row>
2563
                                    <entry>2006</entry>
2564
                                    <entry>14000</entry>
2565
                                </row>
2566
                                <row>
2567
                                    <entry>2007</entry>
2568
                                    <entry>16200</entry>
2569
                                </row>
2570
                                <row>
2571
                                    <entry>2008</entry>
2572
                                    <entry>17900</entry>
2573
                                </row>
2574
                            </tbody>
2575
                        </tgroup>
2576
                    </informaltable>
2577
                </para>
2174
2578
2175
                <para>
2579
                <para>
2176
                    As the external software described by the port often is under
2580
                    As the external software described by the port often is under
Lines 2256-2264 Link Here
2256
                </para>
2660
                </para>
2257
2661
2258
                <para>
2662
                <para>
2259
                    The Documentation project has a primer. This is used both to
2663
                    The Documentation project has <link xlink:href="https://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/">a primer</link>. This is used both to
2260
                    introduce new project members to the standard tools and
2664
                    introduce new project members to the standard tools and
2261
                    syntaxes and acts as a reference when working on the project.
2665
                    syntaxes and to act as a reference when working on the project.
2262
                </para>
2666
                </para>
2263
2667
2264
            </section>
2668
            </section>

Return to bug 241814