Skip to content

Core Development Team Operations

Jason Schindler edited this page Mar 2, 2022 · 4 revisions

Micronaut Framework Core Development Team Operations

Version 1.1.0

Micronaut Framework Software Contribution Levels

The Micronaut framework is built from a number of source code repositories that are owned by the Micronaut Foundation. In order to be realized as an official portion of the Micronaut framework, code and documentation submissions must be submitted through these source code repositories and the authors must have agreed to and signed the Micronaut Contributor License Agreement or (CLA). The Micronaut Foundation recognizes different categories of software contributors that have different levels of access and responsibilities.

Contributor

Everyone that has signed the CLA and contributed code, documentation, or other updates to at least one of the Micronaut source code repositories is considered a Contributor. Contributors are not permitted to merge pull requests into any Micronaut source code repository. Reviewing, approving, and merging PRs are the responsibility of a committer.

Committer

Committers are members of one or more committer groups. This includes:

  • Community Committers
  • Core Committers
  • Framework Development Leadership Panel Members

The rights of each of these groups are outlined below. Committers are expected to communicate in a respectful manner and act as prime examples of Micronaut Community members as described in the community guidelines.

Community Committer

A Community Committer is a Contributor that has commit rights to a non-critical Micronaut framework repository. A Community Committer may merge updates from other Contributors only for the repositories that they have commit rights to. For example, if an individual or an organization is heavily vested in the interests of a particular Micronaut integration, the Framework Leadership Panel may appoint one or more trusted individuals to share in the maintenance and stewardship of the source code repositories that constitute that integration. While a Community Committer has commit rights to a set of non-critical repositories, they are still required to flag any updates that may be considered a "Major" change to the Framework Development Leadership Panel for review prior to merging.

Core Committer

A Core Committer is a highly-trusted Contributor that has commit rights to all Micronaut framework repositories including framework-critical repositories such as micronaut-core and micronaut-starter. Core Committers are invited to regular engineering meetings where current active development tasks and upcoming changes are discussed. Core Committers are expected to contribute to the innovation and maintenance of non-critical Micronaut framework repositories. Any Contributor may be granted Core Committer rights by a vote from the Framework Development Leadership Panel or a majority vote from the Board of Directors.

Framework Development Leadership Panel Member

Major changes to the framework source code that introduces a new feature or will impact a fundamental or critical aspect of the way framework operates must be reviewed by the members of the Framework Leadership Panel before merging. Framework Leadership Panel Members are the ultimate decision and arbitration group when determining if a source code change should be introduced into the framework.

The panel is composed of two primary members and one tie-breaking member. All members of the Framework Development Leadership Panel are appointed by the Micronaut Foundation Board of Directors. If, for any reason, there are not two primary members, the Framework Development Leadership Panel may not merge any "major" changes to the framework until the Board of Directors appoints another primary member to the panel.

Primary Members
  • Sergio del Amo Caballero
  • Graeme Rocher
Tie-Breaking Member
  • Venkat Subramaniam

Major Framework Software Changes

"Major" changes require review by the Framework Development Leadership Panel prior to merging and include:

  • All non-trivial updates to the micronaut-core repository
  • The addition of any new official framework integrations
  • Any other change in any official source code repository owned by the Micronaut Foundation that has been identified as "major" by any Committer

Major Software Change Proposals

Many of the controls outlined in this document are around the pull-request process as it relates to "major" changes because that portion of the process is common for major changes that come from the Committers as well as other Contributors. A majority of "major" changes will come from the Core Committer team. When possible, "major" changes should be proposed, planned, and discussed with the Core Committer team and Framework Development Leadership Panel before much effort has gone into authoring the change. The team should discuss the goal, approach, and other details of the proposed change and concerns that are expressed should be taken into consideration early. It is expected that in most situations "major" changes have already been discussed with the Core Committer team and the Framework Development Leadership Panel and therefore will require little additional attention prior to a vote.

Identification

Any Committer may identify a proposed change as a "major change". The "major change" label should be applied to any issues or pull requests that relate to a "major" change. If a Committer is having difficulty determining if a particular change constitutes a "major change", they should give preference to identifying the change as "major" and engaging the Framework Development Leadership Panel.

Review and Arbitration

Once a change has been identified as a "major" change, the Framework Development Leadership Panel shall review the change taking into consideration the impact of the change on the Micronaut user community and the long-term implications of the change on the health and success of the framework. At any point prior to a major change being merged, any Committer may request additional feedback on the change by stating so within the pull request or notifying any member of the Framework Development Leadership Panel.

Gathering Feedback

Any change that a Committer has requested additional feedback on shall not be merged even if it has received the required "yes" votes from the Framework Development Leadership Panel to allow time for the solicitation of additional feedback. The author of the change, all Core Committers, and any applicable Community Committers should be notified of the feedback request in addition to any individual that has a unique perspective or understanding of the change. The feedback process is complete once the primary members of the Framework Development Leadership Panel feel that they have the information necessary to make a final decision.

Voting

Primary members of the Framework Development Leadership Panel may vote on major changes with one of the following:

  • Yes - In favor of merging the change as-is
  • No - Not in favor of merging the change as-is

Votes are only valid for the state of the change when the vote was cast. If changes are pushed to the un-merged pull request for the "major" change, all existing votes are no longer valid and must be re-cast. Framework Development Leadership Panel members may change their vote at any time prior to the change being merged.

Tie-Breaking

If the votes from primary members of the Framework Development Leadership Panel result in a tie, the tie-breaking member of the Framework Development Leadership Panel can review the proposed change, gather feedback from the primary members of the Framework Development Leadership Panel, and cast the deciding vote. In the event that the tie-breaking member of the panel is not available to cast the deciding vote, the Micronaut Foundation Board of Directors may, by majority vote, identify an additional person to act as the tie-breaker for this change.

Merging

"Major" changes may only be merged into release branches once all of the following has occurred:

  • The change is not actively engaged in the "gathering feedback" process
  • All primary members of the Framework Development Leadership Panel have voted on the change
  • A majority (51% or more) of votes have been cast in favor of merging the change

Change Log

Version Date Change Description
1.1.0 March 2nd, 2022 Adds Sergio to FDLP
1.0.1 January 25th, 2022 Added Venkat to FDLP
1.0.0 January 14th, 2022 Approved by BOD with no changes
1.0.0.M1 November 16th, 2021 Initial document