DEVELOPMENT(7)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1, nixpkgs unstable

πŸ’– NAME πŸ’–

development(7) β€” a whole intro to the FreeBSD development process, bestie. Think of it as the pinned group-chat message for how the project gets built, reviewed, and shipped. 🫢


✨ DESCRIPTION ✨

OK so FreeBSD development is split into three major subprojects: doc, ports, and src. Slay. πŸ’…

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 repository, 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 committed to CURRENT and then usually cherry-picked back to STABLE, which refers to Git branches such as stable/14. Every few years a new STABLE is branched from CURRENT, with an incremented major version number. Releases are then branched off STABLE and numbered with consecutive minor numbers such as releng/14.3. Periodt. πŸ‘‘

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.


Signed, sealed, and delivered by the Debian build on September 24, 2025 β€” DEVELOPMENT(7), mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from