CINXE.COM

Apache Maven Project Roles – Maven

<!DOCTYPE html> <!-- | Generated by Apache Maven Doxia Site Renderer 2.0.0 from content/markdown/project-roles.md at 2025-02-16 | Rendered using Apache Maven Fluido Skin 2.0.1 --> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="generator" content="Apache Maven Doxia Site Renderer 2.0.0" /> <title>Apache Maven Project Roles – Maven</title> <link rel="stylesheet" href="./css/apache-maven-fluido-2.0.1.min.css" /> <link rel="stylesheet" href="./css/site.css" /> <link rel="stylesheet" href="./css/print.css" media="print" /> <script src="./js/apache-maven-fluido-2.0.1.min.js"></script> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://analytics.apache.org/"; _paq.push(['setTrackerUrl', u+'/matomo.php']); _paq.push(['setSiteId', '3']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --> </head> <body> <div class="container-fluid container-fluid-top"> <header> <div id="banner"> <div class="pull-left"><div id="bannerLeft"><h1><a href="https://www.apache.org/"><img class="class java.lang.Object" src="images/apache-maven-project.png" /></a></h1></div></div> <div class="pull-right"><div id="bannerRight"><h1><a href="./"><img class="class java.lang.Object" src="images/maven-logo-black-on-white.png" /></a></h1></div></div> <div class="clear"><hr/></div> </div> <div id="breadcrumbs"> <ul class="breadcrumb"> <li><a href="https://www.apache.org/" class="externalLink">Apache</a><span class="divider">/</span></li> <li><a href="index.html">Maven</a><span class="divider">/</span></li> <li class="active">Apache Maven Project Roles <a href="https://github.com/apache/maven-site/tree/master/content/markdown/project-roles.md"><img src="./images/accessories-text-editor.png" alt="Edit" /></a></li> <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2025-02-16</li> <li class="pull-right"><span class="divider">|</span> <a href="scm.html">Get Sources</a></li> <li class="pull-right"><a href="download.cgi">Download</a></li> </ul> </div> </header> <div class="row-fluid"> <header id="leftColumn" class="span2"> <nav class="well sidebar-nav"> <ul class="nav nav-list"> <li><a href="index.html">Welcome</a></li> <li><a href="https://www.apache.org/licenses/" class="externalLink">License</a></li> <li class="nav-header">About Maven</li> <li><a href="what-is-maven.html">What is Maven?</a></li> <li><a href="maven-features.html">Features</a></li> <li><a href="download.html">Download</a></li> <li><a href="users/index.html"><span class="icon-chevron-right"></span>Use</a></li> <li><a href="docs/history.html">Release Notes</a></li> <li class="nav-header">Documentation</li> <li><a href="plugins/index.html">Maven Plugins</a></li> <li><a href="extensions/index.html">Maven Extensions</a></li> <li><a href="tools/index.html">Maven Tools</a></li> <li><a href="guides/index.html">Index (category)</a></li> <li><a href="users/index.html"><span class="icon-chevron-right"></span>User Centre</a></li> <li><a href="plugin-developers/index.html"><span class="icon-chevron-right"></span>Plugin Developer Centre</a></li> <li><a href="repositories/index.html"><span class="icon-chevron-right"></span>Maven Repository Centre</a></li> <li><a href="developers/index.html"><span class="icon-chevron-right"></span>Maven Developer Centre</a></li> <li><a href="articles.html">Books and Resources</a></li> <li><a href="security.html">Security</a></li> <li class="nav-header">Community</li> <li><a href="community.html">Community Overview</a></li> <li class="active"><a>Project Roles</a></li> <li><a href="guides/development/guide-helping.html">How to Contribute</a></li> <li><a href="users/getting-help.html">Getting Help</a></li> <li><a href="issue-management.html">Issue Management</a></li> <li><a href="scm.html">Getting Maven Source</a></li> <li><a href="team.html">The Maven Team</a></li> <li class="nav-header">Project Documentation</li> <li><a href="project-info.html"><span class="icon-chevron-right"></span>Project Information</a></li> <li class="nav-header">Maven Projects</li> <li><a href="ref/current">Maven</a></li> <li><a href="archetypes/index.html">Archetypes</a></li> <li><a href="extensions/index.html">Extensions</a></li> <li><a href="pom/index.html">Parent POMs</a></li> <li><a href="plugins/index.html">Plugins</a></li> <li><a href="skins/index.html">Skins</a></li> <li><a><span class="icon-chevron-down"></span>Components</a> <ul class="nav nav-list"> <li><a href="archetype/index.html">Archetype</a></li> <li><a href="resolver/index.html">Artifact Resolver</a></li> <li><a href="doxia/index.html">Doxia</a></li> <li><a href="maven-indexer/index.html">Indexer</a></li> <li><a href="jxr/index.html">JXR</a></li> <li><a href="plugin-testing/index.html">Plugin Testing</a></li> <li><a href="plugin-tools/index.html">Plugin Tools</a></li> <li><a href="apache-resource-bundles/index.html">Resource Bundles</a></li> <li><a href="scm/index.html">SCM</a></li> <li><a href="shared/index.html">Shared Components</a></li> <li><a href="surefire/index.html">Surefire</a></li> <li><a href="wagon/index.html">Wagon</a></li> </ul></li> <li class="nav-header">ASF</li> <li><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink">How Apache Works</a></li> <li><a href="https://www.apache.org/foundation/" class="externalLink">Foundation</a></li> <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink">Data Privacy</a></li> <li><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink">Sponsoring Apache</a></li> <li><a href="https://www.apache.org/foundation/thanks.html" class="externalLink">Thanks</a></li> </ul> </nav> <div class="well sidebar-nav"> <div id="poweredBy"> <div class="clear"></div> <div class="clear"></div> <a href="https://maven.apache.org/" class="builtBy" target="_blank"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a> </div> </div> </header> <main id="bodyColumn" class="span10"> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <section><a id="Apache_Maven_Project_Roles"></a> <h1>Apache Maven Project Roles</h1> <p>The Apache Maven project is not just the software it produces. The Apache Foundation has a phrase: &#x201c;Community over code&#x201d; which is about how it is the community that grows around a project that is the most important thing.</p> <p>Everyone reading this is part of the Apache Maven community. Even if you are an invisible part of the Apache Maven community, you are still part of the community.</p> <p>There are many ways we can sort the people in our community. We present the following as one such way. Please do not take offence if you disagree with this categorisation. It is important to remember that we are a <em>community</em>, not a <em>clique</em>, so you are entitled to disagree with others in the community.</p> <p><em>Note:</em> the right to disagree with other people's opinions comes with the responsibility not to deliberately cause offence or discord.</p><section><a id="Informal_roles"></a> <h2>Informal roles</h2><section><a id="Lurkers"></a> <h3>Lurkers</h3> <p>People who do not use Maven at all, but have an interest in the project. This can include people who are developing competing software tools to Apache Maven.</p> <p>It would be great if the lurkers would come out of the shadows and make themselves visible, but every community needs its lurkers, so if you are lurking on the fringes of the Apache Maven project, know that you are a valued member of our community. If you ever feel the need to change your role, we will welcome you with open arms (and if we don't welcome you with open arms, please advise the <a href="mailto:private@maven.apache.org" class="externalLink">Project management committee</a> who are responsible for ensuring that the community is a healthy one).</p></section><section><a id="Consumers"></a> <h3>Consumers</h3> <p>People who use Maven, but do not actively join the community. This does not include people who are: subscribed to one of the Maven mailing lists; active in a Maven user community (e.g. something like <a href="https://stackoverflow.com/questions/tagged/maven" class="externalLink">stackoverflow</a>; submitting bug reports; etc.).</p> <p>Maybe Apache Maven is the perfect product for you and does exactly what you need and want, and you never have a need to ask questions about how to use Maven as it is immediately obvious to you. If that is the case, please consider taking a more active role in our community, as Maven is none of the above to our minds and you might have a point of view that we have missed.</p> <p>If you do have issues with Maven (we all have issues with it so there is nothing wrong in having issues with Maven), please let us know:</p> <ul> <li>Submitting bug reports is the best way to let us know about bugs,</li> <li>Asking questions on the <a href="mailto:users@maven.apache.org" class="externalLink">Users Mailing List</a> is the best way get answers to questions.</li> </ul> <p>As a last resort, other Maven user communities are another route to getting more involved in the Maven community, but keep in mind that Apache Foundation projects are supposed to encourage the community at the ASF, so you will get more eyes and a quicker response if you engage directly with the ASF hosted community.</p></section><section><a id="Users"></a> <h3>Users</h3> <p>People who use Maven and have joined the community. This includes people who have:</p> <ul> <li>Submitted a bug report,</li> <li>Asked a question on the <a href="mailto:users@maven.apache.org" class="externalLink">Maven user list</a>,</li> <li>Joined one of the other Maven user communities.</li> </ul> <p>We hope your bug report has received some attention. If it hasn't, why don't you see if you can fix the issue yourself and submit a patch?</p> <p>We hope your question was answered. If it wasn't, think of all the other users who's questions sit unanswered. How many of them do you know an answer for, even if only a partial answer? Why not respond to their questions with the answers you know? If everybody did that, your question would have an answer. Pay it forward!</p> <p>We hope your experience in one of the other Maven user communities is a positive one, so consider joining the canonical Maven user community and subscribe to the <a href="mailto:users@maven.apache.org" class="externalLink">Maven user list</a>.</p></section><section><a id="Contributors"></a> <h3>Contributors</h3> <p>People who use Maven, have joined the Maven community, and contribute back to the community. This includes people who:</p> <ul> <li>Submit reports of the results of testing proposed releases of Maven and Maven plugins,</li> <li>Answer questions on the <a href="mailto:users@maven.apache.org" class="externalLink">Maven user list</a> (or even other Maven user communities),</li> <li>Submit patches to resolve reported bugs in Maven or Maven plugins hosted at Apache,</li> <li>Help curate bug reports by identifying duplicate reports, or related issues.</li> </ul> <p>We wrote <a href="/guides/development/guide-helping.html">a guide for contributors</a>.</p> <p>Keep up the contributions. You are a critical member of our community. If we like what we see, we may even ask you to take a formal role in our project.</p></section></section><section><a id="Formal_roles"></a> <h2>Formal roles</h2> <p>Formal data for Apache Maven is summarised in <a href="https://projects.apache.org/committee.html?maven" class="externalLink">projects directory</a>.</p><section><a id="Committers"></a> <h3><a href="https://www.apache.org/foundation/how-it-works.html#committers" class="externalLink">Committers</a></h3> <p>These are those people who have been given write access to the Apache Maven code repository and have a signed <a href="https://www.apache.org/licenses/#clas" class="externalLink">Contributor License Agreement (CLA)</a> on file with the ASF.</p> <p>The Apache Maven project uses a Commit then Review policy and has <a href="/developers/index.html#Developers_Conventions">a number of conventions</a> which should be followed.</p> <p>Committers are responsible for ensuring that every file they commit is covered by a valid CLA.</p> <p>Committers who would like to become PMC members should try to find ways to demonstrate the responsibilities listed in the PMC Members section in order to make it easier for PMC members to decide that the committer is ready for the responsibility.</p></section><section><a id="Emeritus_committers"></a> <h3>Emeritus committers</h3> <p>If a committer decides that they cannot currently continue with the responsibilities of a committer, they may elect to go emeritus.</p> <p>At any time, an emeritus committer for the Apache Maven project may decide that they want to become an active committer again by informing the <a href="mailto:private@maven.apache.org" class="externalLink">project management committee</a>. The current policy is that committer role reinstatement is automatic.</p></section><section><a id="Project_Management_Committee"></a> <h3><a href="https://www.apache.org/foundation/how-it-works.html#pmc-members" class="externalLink">Project Management Committee</a></h3> <p>The Project Management Committee as a whole is the entity that controls the project. Membership of the Project Management Committee is decided by the board of the Apache Software Foundation, based on nominations from the Project Management Committee.</p> <p>It is a long standing tradition of the Apache Maven Project that the Project Management Committee reviews the active committers approximately every 6 months with a view to determining whether any of those committers would be suitable candidates to recommend to the board for inclusion on the PMC. It should be noted that this is simply a tradition and not a right. There are significant responsibilities that accompany the PMC role. As such if a person is not demonstrating those responsibilities, they may not be nominated or their nomination may be rejected by the board. Such decisions are not a reflection of the technical competence of the person, and indeed the person themselves may even decide to turn down the nomination. For that reason the results of such periodic reviews are kept confidential.</p> <p>The Project Management Committee has the following responsibilities:</p> <ul> <li>Active management of those projects identified by <a href="https://whimsy.apache.org/board/minutes/Maven.html#2003-02-19" class="externalLink">the resolution of the Board of Directors of the Apache Foundation</a>;</li> <li>Ensure the project remains a healthy top-level project of the Apache Foundation If a PMC member wants the project to be hosted elsewhere they should resign. from the PMC stating their reason. If the PMC shrinks beyond the minimal viable size, then as a result of a desire by the bulk of the PMC to move the project elsewhere, the Board of the Apache Foundation will take that into account when moving the project into the Foundation's <a href="https://attic.apache.org" class="externalLink">Attic</a>);</li> <li>Prepare <a href="https://whimsy.apache.org/board/minutes/Maven.html" class="externalLink">reports</a> as required by the Board of the Apache Foundation and ensure those reports are ready for presentation by the PMC Chair in a timely manner.</li> <li>Defend the trademarks belonging to the project.</li> <li>Propose active contributors for committership.</li> <li>Ensure that votes in the community are used as a tool to establish consensus and not a weapon to disenfranchise or alienate a minority of the community.</li> <li>Binding votes in project decisions</li> <li>Ensure that code committed to the project is either committed under a valid CLA or is code that was contributed with a clear indication that the Apache License applied (i.e. small patches submitted to the issue tracker or to the mailing list are assumed to be submitted with the intent of being covered by the Apache License unless the submitter clearly marks those patches as not being covered)</li> <li>Ensure that third party dependencies shipped as part of the project's releases are covered by a compatible license</li> <li>Vote on release artifacts;</li> <li>Ensure <a href="/developers/index.html#Developers_Conventions">Developers Conventions</a> are followed, or updated/improved if necessary.</li> <li>Know and respect the goals and processes of the community and help educate newer members about them and their <a href="https://svn.apache.org/repos/private/pmc/maven/project-conventions.txt" class="externalLink">internal details (PMC members access only)</a>.</li> </ul><section><a id="Standards_for_Community_Commitment"></a> <h4>Standards for Community Commitment</h4> <p>In the spirit of supporting the health of our community, Project Management Committee members refrain from actions that subvert the functioning of the committee itself.</p></section><section><a id="Promotion_of_other_projects"></a> <h4>Promotion of other projects</h4> <p>The Apache Foundation currently does not have a policy requiring projects to cross-promote. For example Subversion is an Apache project, yet projects are free to choose Git (a non-Apache project) for source control.</p> <p>When considering integration of technologies within Maven, there is no requirement that other Apache projects be picked over non-Apache projects.</p> <p>The primary requirements for picking technologies to integrate with Maven are thus:</p> <ul> <li>A <a href="https://www.apache.org/legal/3party.html" class="externalLink">compatible license</a>, i.e. <a href="https://www.apache.org/legal/3party.html#category-a" class="externalLink">Category A</a> or <a href="https://www.apache.org/legal/3party.html#category-b" class="externalLink">Category B</a></li> <li>A good technical fit</li> <li>A strong preference on behalf of the portion of the community that will be doing the integration.</li> </ul> <p>Where a PMC member is advocating a specific technology, they should declare any interest / involvement that they have in that technology or a competing technology, irrespective of whether the project is an Apache project or a project hosted elsewhere.</p> <p>PMC members with a stated interest / involvement should try to abstain from making binding votes in either direction with respect to the relevant technology choices.</p></section><section><a id="Forks_of_the_project_codebase"></a> <h4>Forks of the project codebase</h4> <p>All code that gets released by the community should have sufficient opportunity for review both:</p> <ul> <li>By the PMC, to check the legal responsibilities delegated by the Board; and</li> <li>By the committers (which includes the PMC), to check that the technical direction and quality is in line with the consensus roadmap (where such a roadmap has been agreed).</li> </ul> <p>The opportunity for review is much greater if the code is committed to the project's source control as early as possible. Similarly small commits are easier to review than large commits.</p> <p>There is nothing inherently wrong with maintaining a fork of the Maven codebase outside of the Apache Foundation. Individual developers can have their own style of working and may prefer to work in a fork so that they can throw away failed experiments with less visibility (though it could be argued that the visibility of such failed experiments can be valuable documentation for others). As soon as changes in that fork are identified (by the people maintaining the fork) which should be brought back to the project, those changes should be introduced into at least a branch hosted on the Apache Maven source control in order to facilitate the easier review by the community. The PMC should encourage by example the early committing of such changes from a fork (that they are involved in maintaining) back to Apache Maven source control.</p> <p>Similarly, if a fork is being hosted elsewhere in order to get contributions from other talented individuals, the PMC members should endeavour to bring those individuals and their talent to the project as committers.</p> <p>Finally, where a fork is hosted outside of Apache hardware, there is less traceability of the code provenance. For example, Git commits can be squashed and history re-written to mask or otherwise hide the source of contributions. This does not mean that code coming from an external fork inherently has such issues. Instead, it means that the requirements for review and verification of provenance grow exponentially when dealing with large sets of changes originating from a long running fork hosted outside of Apache foundation source control. Anybody maintaining a long running fork should be aware that review obligations may grow above the time capabilities of the PMC and committers. When they eventually try to bring the changes in their fork back to the Apache Maven project, their contribution may end up being rejected because the review is too difficult or time-consuming.</p></section></section><section><a id="Project_Management_Chair"></a> <h3><a href="https://www.apache.org/foundation/how-it-works.html#pmc-chair" class="externalLink">Project Management Chair</a></h3> <p>For various legal reasons, there are certain things that the Apache Software Foundation can only delegate to an <a href="https://apache.org/foundation/leadership" class="externalLink">officer of the foundation</a>.</p> <p>The Project Management Committee is responsible for nominating the person who gets made an officer of the foundation (subject to the approval of the board).</p> <p>This person then becomes the interface between the board and the project management committee. They do not have any other additional gravitas in the project. It is the Project Management Committee as a whole that is responsible for the direction of the project.</p> <p>If things break down and there is no consensus and there is no clear ability to reach any conclusion <em>and</em> it is in the interest of the foundation because damage is done and the board expects the chair to act as an officer of the foundation and clean things up, then the chair can act as an ultimate decision maker. However, by this point the board of the foundation must already be well aware of the situation and should be actively monitoring the chair.</p></section></section></section> </main> </div> </div> <hr/> <footer> <div class="container-fluid"> <div class="row-fluid"> <p>© 2002–2025 <a href="https://www.apache.org/">The Apache Software Foundation</a> </p> </div> </div> </footer> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10