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:
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.
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 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 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:
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.
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.
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 team@nodered.org, or directly to any member of the TC.
This governance model has been inspired by many existing open source projects:
Node-RED: Low-code programming for event-driven applications.
Copyright OpenJS Foundation and Node-RED contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | OpenJS Foundation Bylaws | Trademark Policy | Trademark List | Cookie Policy