Maintenance Policy

The Maintenance Policy defines how we make decisions about what happens with Chef, and associated software projects. It provides the process by which:

It is intended to be short, flexible, and clear.

This file is related to the MAINTAINERS and ROADMAP files in Chef.

How the project is maintained

This file is the canonical source for how the Chef project is maintained.

Roles

Project Lead

Lieutenant

Maintainer

Roadmap

All project roles should work together to determine the best opportunities for the improvement of the project. This should produce direction for the project, which should be highlighted in the ROADMAP.

As a project role does not necessarily control resources other than their own labor, they should encourage contributors to participate in furthering development of the project toward the goals of the ROADMAP.

Releases should not block on features on the roadmap, rather they should happen as features are completed. The ROADMAP should be organized by general time periods, not by versions

Example Roadmap entries

# 2015 Q2
* Component - Roadmap Item
  Description

# 2015 Q4
* Core - Support for Drone Automation
  Significant time could be saved in enterprise datacenters by using drones to stack and rack servers

# 2016 Q1
* Core - Support Internet of Things
  As a Chef user, I look forward to the singularity

Contributing Patches

How a patch gets merged

In the event that a component lacks two Maintainers, the vote of one or more Maintainers from Chef Core may be substituted.

Any Maintainer may vote :-1: on a patch, which increases the requirement for a patch to be merged to an absolute majority of Maintainers for the affected component(s), unless that Maintainer later changes their vote.

Patch Appeals Process

There may be cases where someone wishes to appeal a Maintainer decision. In this event, the "chain of command" for the appeals process is as follows.

Although Lieutenants and the Project Lead retain veto powers over certain components, use of this veto power is not guaranteed by the submission of an appeal to that person. It is expected that the majority decisions of component Maintainers and Lieutenants will be respected in all but the most exceptional circumstances.

How to become a...

Maintainer

Lieutenant

Project Lead

Removing a Maintainer, Lieutenant or Project Lead

If a Maintainer, Lieutenant or Project Lead consistently fails to maintain their responsibilities or becomes disruptive, they can be removed by:

OR

How to add a component

How to change the rules by which the project is maintained

Where can I find the community?

The broader Chef community gathers in a small number of designated places. Participants in these places should be considered as operating on their own opinion, and representing nothing further than their own point of view. While some members of the community may be participating via their employment at Chef Software, when in these spaces, their authority and voice is equal to any other participant based on the guidelines in this file.

Slack

You can find a large group of community members on the Chef Community Slack. Most discussion happens in the #general channel, with our weekly developer meetings occurring in the #developer-meetings channel. Many Chef contributors and maintainers are on Slack, across a number of time zones.

Mailing Lists

Where can I find Chef Software Inc?

The history of the Chef Project is linked to the existence of a for-profit company, Chef Software. Many employees of the company are active members of the community. When they participate in the community, they do so as individuals subject to the guidelines in this file.

If you would like to speak to, or understand the position of, someone at Chef Software - feel free to drop a line to info@chef.io - and we’ll get back to you. Or simply ask for the company's official perspective in any of the community spaces, and a representative will get back to you in that space.

The MAINTAINERS file in Chef

The current MAINTAINERS file resides in the Chef repository on GitHub.