Governance

The Node-RED project has been developed in the open since 2013. The core of the project has been developed by IBM who created the original project. A large community of users has built around the project with most contributions being made via nodes that are self-published to the community. Contributions to the core have occurred at a much more modest level.

Our goal is to grow the active contributor community around the project. We plan to do this by:

  • Encouraging new contributions
  • Encouraging contributors to remain involved
  • Having a transparent decision making process which makes it clear how contributors can be involved in decision making
  • Avoiding unnecessary processes and bureaucracy whenever possible

This document describes the governance and contribution model for the Node-RED project. It is heavily influenced by a number of other Open Source projects, particularly Node.js.

It reflects how we have managed the project up to now and reflects the current scale of contributor community.

Roles and responsibilities

Users

Users are community members who have a need for the project. They are for whom we develop the project. There is no such thing as a typical user and no assumptions should be made about who they are or what they want.

The project benefits when the users to provide feedback, generate awareness and help spread interest.

Users who choose to provide feedback or get more involved with the project instantly cross the line to become a Contributor.

Contributors

Contributors are a subset of the community who take a more active role in the development of the project. This can cover many different aspects and is not limited to code contributions. A user who raises an issue, comments on a proposal or answers a question on the mailing list is, by definition, a contributor.

As contributors gain experience and familiarity with the project, their profile within, and commitment to, the community will increase. For a Contributor with a proven track record of changes to the project repositories (code, documentation, etc), they may find themselves invited to become a Committer.

Committers

Committers are a subset of contributors who have demonstrated a commitment to the project and ability to provide valued contributions - of any variety. They are trusted with the responsibility of write access to the project’s repositories and have the ability to review and merge pull requests from the community.

Anyone is able to become a Committer; it is a role earned through merit and a demonstrable engagement with the project and wider community. This includes:

  • Show a willingness and ability to participate in the project as a team player. Typically, a potential Committer will need to show that they have an understanding of and alignment with the project, its objects, and its strategy.
  • Be respectful of every community member and to work collaboratively in the spirit of inclusion.
  • Have a track record of good quality contributions.

Typically a Contributor would be invited to become a Committer through the agreement of the existing Committer community.

Being a Committer is considered a privilege, not a right. Under normal circumstances, Committer status exists for as long as the Committer wishes to continue engaging with the project. In exceptional circumstances, the Committer community may conclude Committer status should be removed from an individual who is not maintaining their responsibilities to the project.

Technical Committee

Given the current small size of Committer community, they also represent the core decision making group. Through a consensus-seeking mode of discussion, decisions can be made and shared with the wider community. It is this group that sets the direction of the project through helping to prioritise the backlog. They also have the ability, through community-consensus, to update this governance model.

If the goals of the project are successfully met, the committer community will grow to a point where a more formalised Technical Committee will be needed. The exact nature of the TC will be determined at that time.

Code of Conduct

The project believes strongly that a clear code of conduct helps to ensure the community remains open and welcoming to everyone. It has adopted a Code of Conduct based on the Contributor Covenant 1.4. The details are available here.

It is the responsibility of all Contributors to uphold the Code of Conduct throughout the project. This covers how we interact with one another and how we represent the project both in private and public spaces.

Any issues can be safely reported, in confidence, to the TC at [email protected], or directly to any member of the TC.

References

This governance model has been inspired by many existing open source projects: