Chef Blogs

Chef GitHub Maintainer List and Permissions Changes

benny Vasquez | Posted on | community

Early in 2019, we made some pretty major changes to how members of the community gain access and roles in the various Chef Infra, Chef Habitat, and Chef Inspec Github projects. While these changes were discussed heavily in the Community Slack, they were not captured in a durable medium for future reference. That omission unintentionally made it harder for anyone that wasn’t paying close attention at that moment to catch up later. Here we’ll explain what changes were made and why, and where you can check for these sorts of updates in the future.

Changes to contributor roles

In April 2019, Chef announced its decision to Open Source 100% of our major product code. As part of the preparation for this change, we wanted to ensure consistency and fairness in access and promotion. We pulled together a group of cross-functional Chef employees along with some of our external community members, and asked them to define a system of Governance to be used across all of our Open Source projects. The results of that effort became the Chef Book of Open Source. These changes included a project membership model which replaced the role of “Maintainer” with “Contributor”, “Reviewer”, “Approver”, and “Owner”. 

When we implemented this change, the list of project members was condensed to only the contributors most recently active in the project. In this case, ‘active’ meant folks that were active in the Chef community, beyond just submitting pull requests. Things like participating in issue triages, helping and contributing to slack conversations, attending meetings, or providing input and help for other users. 

Changes to Maintainership of the Chef Project

The project most affected by these changes was the Chef Infra Project, due to its long list of maintainers at the time. When it was transitioned to the new model, the maintainer.md file was removed and replaced with a link to the Chef Infra Project Page.

While a few contributors working on Chef Infra full-time were grandfathered-in to the new project roles to keep the project running, anyone that wasn’t grandfathered-in (including both external contributors and Chef employees) will need to follow the steps outlined in the project membership model to become a member of the project, including following through the roles in order. 

You may notice that right now only Chef employees are owners on all of Chef’s major Open Source projects, but that does not mean that only employees are allowed to be owners. 

Owners of a project are typically limited to a relatively small group of decision-makers and are only updated as fits the needs of the project. More often than not, these individuals will be Principal Engineers with Chef Software Inc. who have a connection to an internal product owner with whom they are closely collaborating.

Intentionally, there is nothing in the Chef Book of Open Source that prevents a non-Chef-employee contributor from proceeding through the project membership roles and potentially becoming a project owner. We simply have not yet had anyone get to the point of being considered for ownership of a project yet, and have not been terribly loud about the opportunity.

How you might have missed these updates

These changes around project roles for all Chef Open Source projects were announced ahead of time in the community meetings which take place each Thursday at 9 am Pacific Time in the Chef Community Slack (in the #community-meetings room). Unfortunately, that was the only place it was communicated, and that meant that many folks missed these updates, and didn’t get a chance to provide critical feedback.

There were two main things we have done to adjust for that:

  1. Many community members have contributed extensively to our projects and we want to make sure that their contribution is recognized. For that reason, we have moved the historical list of maintainers of the Chef project to the alum list on the Chef Infra project page with this pull request. Note: Alums who wish to become an active project member can go through the application process outlined here.
  2. Slack’s backscroll is limited to 10,000 lines, which means finding this information after we passed that limit was impossible. Going forward, we will be recording notes for each community meeting in the Chef discourse forums, and we’ll be posting on the Chef blog about anything that we want to ensure has a wider audience.

In the future, we will also ensure that we reach out personally to anyone that will be impacted by a change we’re making like this. 

We greatly appreciate the care and dedication of everyone who has ever contributed to our projects – you are the foundation upon which every part of Chef stands, and we commit to doing better. If you have further questions about this change, please feel free to reach out to us at community@chef.io, or find me on slack. In case we haven’t had a chance to chat, I’m benny.

Other GitHub Organization Changes

We also recently began an additional audit and cleanup of Chef’s GitHub organizations. Our GitHub organizations are based on the legacy repository based pricing model. GitHub has created a user-based pricing model, and as they develop new features for the service, those features are not available for legacy organizations such as ours. In order to make use of the new features, we need to migrate our organizations to the new plans. This requires us to evaluate the number of users and remove those who are inactive or otherwise not required to be members of the organizations. Over the last several weeks, we removed such users, some of who had not been active in one, two, or more years. If you feel your membership in our GitHub organizations was removed in error, definitely do reach out to us and we’ll take a look!

For everyone who reached out around this, we want to thank you. It truly shows us how much you also care about the Chef community. As always, you can find us on the Community Slack or email us at community@chef.io. Let’s move forward together.