Community process

Community Process

The purpose of this page is to make transparent the process by which decisions are made in Play Framework. This is not a set of laws governing the Play project, nor is anything in this document new, it simply acknowledges the process that is already in place, and documents what it is.

The goal of this page is to increase community contribution and sense of ownership over the Play project, through doing the following:

Project ownership

The Play project source code is owned and licensed by Lightbend. Lightbend employees a team of developers who work on Play full time, and has the final say on both product decisions and technical decisions for the project.

Though Lightbend wholly owns the Play project and has the final say in any decisions made, Lightbend does not own the Play community, nor does Lightbend take for granted its existence. The Play community is arguably just as important, if not more important, than the Play project itself. With over 400 community contributors to the core of Play, and hundreds more to the broader Play ecosystem, the Play community could easily survive without or in spite of Lightbend, if it ever came to that.

For this reason, Lightbend’s relationship to the Play project is best described as a stewardship, Lightbend manages the Play project, but is held accountable by the Play community.

For a statement of how Lightbend views open source, see the Lightbend Open Source Position Statement.

Definitions

Contributors

A contributor is anyone that makes a contribution to Play. This does not necessarily mean code contributions, it could mean any of the following:

Integrators

An integrator is anyone with write access to the source code and documentation of the Play project, or one of the projects that come under the playframework GitHub organization. A current list of all integrators can be found on the code and contributors page.

It should be noted that you do not have to be an integrator to contribute to Play, and in fact there is nothing in the list of things considered to be contributions that you can’t do if you are not a integrator. In practice, the only thing that integrators can do that contributors can’t are adminstration type tasks, such as merging contributions from other contributors, and house keeping tasks in the issue tracker such as closing fixed or invalid issues.

Decision making

Decisions in the Play project fall in two broad categories:

Implementation decisions

Implementation decisions primarily happen in pull requests. They are initiated by the pull request itself, and through reviews and iteration, a consensus is formed for how the given change should be implemented.

All interested parties are encouraged to involve themselves in reviewing pull requests and contributing to review discussions.

The amount of consensus required for whether a pull request is merged or not depends on how much impact the pull request has. For trivial changes, such as corrections to documentation, an integrator may simply merge it with no feedback from any other integrators. For larger changes, at least one person who is familiar with the part of the code being modified should review it, preferably more. For big refactorings, the pull request should be reviewed by at least 2 or 3 other integrators before it is merged.

Whether a pull request is merged or not depends on many factors, including:

Design and house keeping decisions

The primary place for discussion about the design of Play and how the Play project is run is the Play Framework Forum. All major new features, refactorings or changes to the project should first be discussed in this forum. The aim of the discussions is to reach an understanding on whether the task will be done, and how it will be done. When a new topic is posted, interested parties are encouraged to comment with their affirmation or concerns.

While Lightbend ultimately has the last word on all decisions here, as much as possible we will endeavor to reach a consensus in the majority of the community.

Integrator selection

Integrator selection is made by Lightbend. Lightbend will offer contributors integrator status based on the following criteria:

Lightbend may also select integrators from its own staff.

If an integrator stops contributing regularly to Play, their write access may be removed, though their membership in the Play GitHub organisation will still be maintained.

Rules for integrators

All integrators should follow the processes outlined on this page, and should be an example to follow with regards to Play’s code of conduct and contributor guidelines. There are also a few specific rules, outlined below: