Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DEVELOPMENT(7)		Miscellaneous Information Manual	DEVELOPMENT(7)

NAME
       development -- introduction to FreeBSD development process

DESCRIPTION
       FreeBSD	development is split into three	major subprojects: doc,	ports,
       and src.	 Doc is	the documentation, such	as the FreeBSD	Handbook.   To
       read more, see:

       https://docs.FreeBSD.org/en/books/fdp-primer/

       Ports,  described  further  in ports(7),	are the	way to build, package,
       and install third party software.  To read more,	see:

       https://docs.FreeBSD.org/en/books/porters-handbook/

       The last	one, src, revolves around the source code for the base system,
       consisting of the kernel, and  the  libraries  and  utilities  commonly
       called the world.

       The  Committer's	 Guide,	 describing topics relevant to all committers,
       can be found at:

       https://docs.freebsd.org/en/articles/committers-guide/

       FreeBSD src development takes place in the project-hosted  Git  reposi-
       tory, located at:

       https://git.FreeBSD.org/src.git

       The push	URL is:

       ssh://git@gitrepo.FreeBSD.org/src.git

       There is	also a list of public, read-only Git mirrors at:

       https://docs.FreeBSD.org/en/books/handbook/mirrors/#external-mirrors

       The `main' Git branch represents	CURRENT; all changes are first commit-
       ted  to	CURRENT	 and  then usually cherry-picked back to STABLE, which
       refers to Git branches such as `stable/14'.  Every few years a new STA-
       BLE is branched from CURRENT, with an incremented major version number.
       Releases	are then branched off STABLE and numbered with consecutive mi-
       nor numbers such	as `releng/14.3'

       The layout of the source	tree  is  described  in	 its  README.md	 file.
       Build  instructions  can	 be  found in build(7) and release(7).	Kernel
       programming interfaces (KPIs) are documented in section 9 manual	pages;
       use `apropos -s 9 .' for	a list.	 Regression test suite is described in
       tests(7).  For coding conventions, see style(9).

       To ask questions	regarding development, use the mailing lists, such  as
       freebsd-arch@ and freebsd-hackers@:

       https://lists.FreeBSD.org

       To  get	your  patches  integrated into the main	FreeBSD	repository use
       Phabricator; it is a code review	tool that allows other	developers  to
       review  the changes, suggest improvements, and, eventually, allows them
       to pick up the change and commit	it:

       https://reviews.FreeBSD.org

       Or Github:

       https://github.com/freebsd

       To check	the latest FreeBSD build and test status of CURRENT and	STABLE
       branches, the continuous	integration system is at:

       https://ci.FreeBSD.org

FILES
       /usr/src/CONTRIBUTING.md		      FreeBSD contribution guidelines
       /usr/src/tools/tools/git/git-arc.sh    Phabricator review tooling
       /usr/ports/devel/freebsd-git-devtools  Phabricator review tooling as  a
					      port

EXAMPLES
       Apply a patch from Github pull #1234, using devel/gh:

	     gh	pr checkout 1234

       Apply a patch from Phabricator review D1234, using git-arc(1):

	     git arc patch -c D1234

       Apply  a	 manually  downloaded  git-format-patch(1),  draft.patch, from
       Bugzilla	or mail:

	     git am draft.patch

       Apply a manually	downloaded patch, draft.diff, from Bugzilla or mail:

	     git apply draft.diff

SEE ALSO
       git(1),	 git-arc(1),   witness(4),   build(7),	 hier(7),    ports(7),
       release(7), tests(7), locking(9), style(9)

HISTORY
       The  development	 manual	 page was originally written by	Matthew	Dillon
       <dillon@FreeBSD.org> and	first appeared in FreeBSD 5.0, December	 2002.
       It  was	since extensively modified by Eitan Adler <eadler@FreeBSD.org>
       to     reflect	  the	  repository	 conversion	from	  CVS:
       https://www.nongnu.org/cvs/		  to		   Subversion:
       https://subversion.apache.org/.	 It  was  rewritten  from  scratch  by
       Edward Tomasz Napierala <trasz@FreeBSD.org> for FreeBSD 12.0.

FreeBSD	15.0		      September	24, 2025		DEVELOPMENT(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=development&sektion=7&manpath=FreeBSD+15.0-RELEASE+and+Ports>

home | help