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 licensed under the Apache 2 License. The steering committee has the final say on both product decisions and technical decisions for the project.

Though the steering committee has the final say in any decisions made, the Play community, with over 400 community contributors to the core of Play, and hundreds more to the broader Play ecosystem, is arguably just as important, if not more important, than the Play project itself.

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

For more details on the steering committee see the Sponsors page.

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 the steering committee 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 the steering committee. The steering committee will offer contributors integrator status based on the following criteria:

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: