Working with Hats

$FreeBSD: doc/en_US.ISO8859-1/articles/hats/article.sgml,v 1.10 2006/08/29 07:38:22 blackend Exp $


Note: This is not an official statement from core, but rather one core member's personal interpretation of core's position, both as a sitting member of core and as a former security officer. This is only a guideline, not as a cudgel for grievances. Much like style(9) is a guideline for the source code, this document is not intended as an absolute straight jacket.

When core appoints someone to a hat, they expect that person to be responsible for an area of the source code tree. Core expects that person to be the final authority in that area of the tree, or have enough self knowledge to know that they are not and to seek qualified help. Core expects that person to guide development in that area of the tree. Sometimes this means taking an pro-active role in day to day affairs, while other times this means taking a reactive role in reviewing committed code.

When people submit patches that potentially impact this area of the tree, core expects the hat or his appointed deputies to review the patches appropriately. Core expects that the hat will work with the patch submitter to correct issues that there may be with the patches. Core expects the hat to offer solutions and work with the submitter to reach a compromise. Core expects the hat to be courteous. It is reasonable for hats to request that normal project rules be followed when reviewing patches (e.g., that they generally conform to style(9) or the prevailing style of the file, that style and content changes be separated.).

When a dispute arises, core expects the hat to make his or her best efforts to compromise or otherwise resolve the dispute. The hat is expected to be courteous to all parties involved. In extreme cases, core recognizes that hats may need to wield a big stick and say “no, that is not acceptable and cannot go in (or must be backed out).” Core views this last power as one of last resort, and would frown on hats using that either too often or as the first response.

Often real life interferes with a hat's ability to perform their duties. A condition that core generally imposes upon the hats of the world is that they have a deputy that can act in their absence. This deputy is expected to be an active participant in the team that the hat puts together and should be conversant with all the issues that surround the part of the tree that the hat is guiding. The deputy is expected to be able to act in the absence of the hat. For example, the security officer deputies send out security advisories when the SO is not around. In extreme cases, the deputy can defer an issue until the hat returns, but that is expected to be the exception rather than the rule, especially if the hat's return is far in the future.

Hats are answerable to core. If they are doing good jobs, core will leave them alone. If they are doing a bad job, core has the option to remove them. Hats are expected to work with core if core has issues with their performance of their duties. They serve at the pleasure of core.

Core sometimes will impose additional, specific requirements for a given hat that do not apply to all hats. These conditions may change over time.

Committers and others working with hats are expected to use common sense, and be polite to the hats. They are expected to work with the hat and his team to come to a solution acceptable to everybody. In the event that no compromise can be reached, the committers are expected to accept the decisions of the hat with good grace. In exceptional cases, these decisions can be appealed to core. However, core generally will not override the decisions of the hats that it appoints unless the hat acted in bad faith or arbitrarily. Core is not a technical review board, and has created the hats as mini-TRBs to give dispute resolution a proper framework.

If a committer feels that a hat is abusing his or her power, or being regularly rude to contributors, then they should bring the matter to core. This problem can be technical, social, procedural, or some combination or subset of these. Core will hear the case and reach a decision, and expects both sides to abide by their decision. Core appreciates specific complaints rather than general ones as those are easier to resolve.

Core expects committers to work together in the appropriate mailing lists to resolve their issues. The hat and his team should be relatively rarely involved in their role as hat, and instead should usually be just another committer. (The one exception to this is the security officer hat, which needs to secretly solve vulnerabilities before they are announced.) The hat should be a “first among equals,” not a chairman.


This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.