/chef-oss-practices

Documentation and Practices for Open Source Development at Chef

Chef Software Open Source Communities

Welcome to the Chef Software Open Source communities!

This is a starting point for contributing to all of Chef's software and a wonderful spot for information on how to join in on the fun.

Looking for something specific? Check out our Table of Contents.

To learn more about each of our project's structure and organization, please refer to Governance.

We are currently rolling out these processes to all of Chef's Open Source projects in stages and will be iterating as we go - we would love you to contribute!

Inspiration

The practices in this repo are inspired by Adam Jacob's book on Free and Sustainable Open Source Communities. Although we are inspired by it, this repo is not a full implementation of the practices described in that book. However, this is only the first iteration of this repo. We expect this repo to continue to evolve and grow as we learn. We may integrate more of Adam's book into this repo in the future.

How We're Organized

Chef Software (the company) produces many products such as Chef, InSpec, Habitat, and Automate. Each of these products is fully open source and comprised of one or more open source projects. For instance, the Chef product is comprised of chef, ohai, various mixlib projects, and other interdependent libraries. The project and/or sub-project scope is defined in the README.md file in each individual project's GitHub repository.

All Chef projects operate under governance determined by the Chef OSS Practices Committee. These policies are documented under Governance; however, Teams can have their own policy for contribution, communication standards, etc. so long as those policies meet the base governance policy.

We decide on the long term plan for projects through Project planning and our triage and prioritization processes.

Communicating With Us

The communication page lists communications channels such as chat, GitHub issues, mailing lists, conferences, etc.

For more detailed information, check the README.md in a project's repository.

Getting Started Contributing

A first step towards contributing is to pick from the list of Chef Software Projects.

Once you've selected a project to contribute to, be sure to read the team's contribution guide (CONTRIBUTING.md). That guide will provide information on issues in need of contributors, team meetings schedules, and Slack channels / mailing lists where project discussions take place.

The Contributor Guide provides detailed instructions on how to get your code accepted to Chef Software projects, including:

  1. How to file an issue
  2. How to find something to work on
  3. How to open a pull request

Creating a New Chef Open Source Project

Creating a new project? Check out the repo management documentation for information on how to set your project up.

Project Membership

We encourage all contributors to become project members. We aim to grow an active, healthy community of contributors, reviewers, and project owners. Learn about requirements and perks of membership in our Project Membership page.

Table of Contents

Code of Conduct

Contributors

Distributions

Guide

Communication

Repo Management

Guilds

Checklists