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ørgenssen's model for change integration |
445 |
<title>Jø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ørgensen's |
621 |
Within the <quote>code</quote> bracket in Jø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>…</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>…</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ørgenssen's model for change integration |
1711 |
<title>Jø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> |