|
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> |