diff --git a/en/portmgr/Makefile b/en/portmgr/Makefile index f5def09fba..89205a1c35 100644 --- a/en/portmgr/Makefile +++ b/en/portmgr/Makefile @@ -1,12 +1,18 @@ -# $FreeBSD$ +# $FreeBSD: www/en/portmgr/Makefile,v 1.1 2005/03/12 07:30:25 linimon Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif -DOCS?= index.sgml charter.sgml policies.sgml qa.sgml +DOCS?= index.sgml +DOCS+= charter.sgml +DOCS+= implementation.sgml +DOCS+= policies.sgml +DOCS+= policies_committing.sgml +DOCS+= policies_contributors.sgml +DOCS+= qa.sgml .include "${WEB_PREFIX}/share/mk/web.site.mk" diff --git a/en/portmgr/implementation.sgml b/en/portmgr/implementation.sgml new file mode 100644 index 0000000000..1f29d72cac --- /dev/null +++ b/en/portmgr/implementation.sgml @@ -0,0 +1,120 @@ + + + + %navincludes; + %includes; +]> + + +&header; + +
Unlike the src tree, the FreeBSD ports tree is +not branched. It has always been felt that there +are too few volunteers to be able to handle the work of merging +hundreds of changes from the latest tree into various branches.
+ +There are thousands, if not tens of thousands, of user installations +that track the ports tree on a daily basis, rather than relying on the +packages that shipped with the most current FreeBSD release. Accordingly, +any fatal error in the ports framework will immediately affect all of +these sites. This is why commits to bsd.port.mk are only +allowed with portmgr approval. Except in unusual cases, this approval +is only granted after a regression test has been run on a dedicated +area of the automated +ports building cluster. +Typically, a dozen or more proposed changes to the infrastructure are +tested at the same time, and only after a build of the entire ports +tree succeeds will portmgr commit the changes.
+ + +Changes to bsd.port.mk are not the only commits that can + have a drastic effect on the tree. We request that any such changes + also be tested on the cluster. Examples of such changes that should + be tested before committing include:
+ +changes to packages with many dependencies, including + X11 servers, GNOME, KDE, gettext, autotools, and so forth
changes that change the "accepted best practice" for + ports Makefiles, such as definitions or usage of common make + variables (or Makevars). (e.g. consolidation of + various implementations of USE_*, WITH_*, and so forth)
large repocopies (such as when an existing port category + is divided up)
If you are unsure of whether your proposed change will require +a regression test, please send email to portmgr@FreeBSD.org.
+ +When a new release of FreeBSD is upcoming, committers are asked to +shift their emphasis away from introducing new ports and features and +instead focus on fixing existing problems. At some time during the +release, the tree is tagged and packages are created from +each of the ports, for each of the architectures. Due to the large +number of ports and the speed of the slower architectures, the build +process takes several days.
+ +In an ideal world, these would be the packages that went on the +release CDs, and the time from the creation of the packages to the time +of the actual release would be just long enough to test them and no +longer. However, in practice, problems are found with both the ports +and with the source tree as the QA effort continues. But to be able +to release in a timely manner, only certain port changes will be merged +back into the actual (tagged) tree, and the affected packages will +be rebuilt. Only severe security problems and licensing issues will +have their tags slipped in this manner.
+ +Since the release period can take weeks, it is unrealistic not +to allow any commit to the ports tree during this time. The problem +with allowing unrestricted commits at that time is that it becomes +impossible to separate out only the critical changes so that they, +and only they, can have their affected tags slipped. The terminology +for changes that are not allowed is sweeping changes.
+ + +A sweeping change is a commit that would affect a non-trivial +number of packages in a way such that any other change (such as fixing a +single security problem) would mean that we would have to rebuild the +entire set of packages, which would delay the upcoming release, possibly +by weeks, because the set of changes overlap.
+ +Here is an incomplete list. If you are unsure that your proposed +change falls into this categorization, you must +ask portmgr before committing.
+ +any commit to bsd.*.mk
anything else that would normally require a + regression test
shared library version bumps
repocopies involving multiple ports
The following do not fall into the above category:
+ +commits to leaf ports (i.e. ports upon which no other port + depends)
cosmetic changes that would not affect the package (such + as changes to pkg_descr)
new ports
repocopies of individual ports
To summarize: the basic test is will this change affect other +packages?.
+ +&footer; + +