Sub-projects are formed to reduce the amount of communication needed to coordinate the group of developers. When a problem area is sufficiently isolated, most communication would be within the group focusing on the problem, requiring less communication with the groups they communicate with than were the group not isolated.
A “port” is a set of meta-data and patches that are needed to fetch, compile and install correctly an external piece of software on a FreeBSD system. The amount of ports has grown at a tremendous rate, as shown by the following figure.
Figure 8.1, “Number of ports added between 1996 and 2008” shows the number of ports available to FreeBSD in the period 1995 to 2008. It looks like the curve has first grown exponentially, and then from the middle of 2001 to the middle of 2007 grown linearly at a rate of about 2000 ports/year, before its growth rate gets lower.
Approximate dates each multiple of 1000 ports is reached
Number of ports | Approximate date |
---|---|
1000 | Late 1997 |
2000 | Late 1998 |
3000 | Early 2000 |
4000 | Late 2000 |
5000 | Mid 2001 |
6000 | 4th quarter of 2001 |
7000 | Mid 2002 |
8000 | 4th quarter of 2002 |
9000 | Mid 2003 |
10000 | End of 2003 |
11000 | Mid 2004 |
12000 | End of 2004 |
13000 | Mid 2005 |
14000 | Early 2006 |
15000 | Mid 2006 |
16000 | 3rd quarter 2006 |
17000 | 2nd quarter 2007 |
Approximate number of ports at the start of each year
Year | Approximate number of ports |
---|---|
1995 | 100 |
1996 | 300 |
1997 | 700 |
1998 | 1200 |
1999 | 2000 |
2000 | 2900 |
2001 | 4300 |
2002 | 6200 |
2003 | 8100 |
2004 | 10050 |
2005 | 12100 |
2006 | 14000 |
2007 | 16200 |
2008 | 17900 |
As the external software described by the port often is under continued development, the amount of work required to maintain the ports is already large, and increasing. This has led to the ports part of the FreeBSD project gaining a more empowered structure, and is more and more becoming a sub-project of the FreeBSD project.
Ports has its own core team with the Ports Manager as its leader, and this team can appoint committers without FreeBSD Core's approval. Unlike in the FreeBSD Project, where a lot of maintenance frequently is rewarded with a commit bit, the ports sub-project contains many active maintainers that are not committers.
Unlike the main project, the ports tree is not branched. Every release of FreeBSD follows the current ports collection and has thus available updated information on where to find programs and how to build them. This, however, means that a port that makes dependencies on the system may need to have variations depending on what version of FreeBSD it runs on.
With an unbranched ports repository it is not possible to guarantee that any port will run on anything other than -CURRENT and -STABLE, in particular older, minor releases. There is neither the infrastructure nor volunteer time needed to guarantee this.
For efficiency of communication, teams depending on Ports, such as the release engineering team, have their own ports liaisons.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.