CINXE.COM
Project Management Committee Guide
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Home page of The Apache Software Foundation"> <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png"> <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194"> <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192"> <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16"> <link rel="manifest" href="/favicons/manifest.json"> <link rel="shortcut icon" href="/favicons/favicon.ico"> <meta name="msapplication-TileColor" content="#603cba"> <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png"> <meta name="msapplication-config" content="/favicons/browserconfig.xml"> <meta name="theme-color" content="#282661"> <title>Project Management Committee Guide</title> <link href="/css/Montserrat-300-600.css" rel="stylesheet"> <link href="/css/min.bootstrap.css" rel="stylesheet"> <link href="/css/styles.css" rel="stylesheet"> <link href="/css/new-ui.css" rel="stylesheet"> <script src="https://www.apachecon.com/event-images/snippet.js"></script> <style> .headerlink { visibility: hidden; } dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink { visibility: visible } </style> <!-- pagefind search --> <link href="/_pagefind/pagefind-ui.css" rel="stylesheet"> <script src="/_pagefind/pagefind-ui.js" type="text/javascript"></script> <script> window.addEventListener('DOMContentLoaded', (event) => { new PagefindUI({ element: "#pagefind-search" }); }); var pageTitle = 'Project Management Committee Guide'; if(pageTitle === '404'){ window.addEventListener('DOMContentLoaded', (event) => { new PagefindUI({ element: "#page-404-search" }); }); } </script> <!-- https://www.apache.org/licenses/LICENSE-2.0 --> <!-- Matomo --> <script> var pageTitle = 'Project Management Committee Guide'; var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ /* We explicitly disable cookie tracking to avoid privacy issues */ _paq.push(['disableCookies']); if(pageTitle === '404'){ /* Track 404 page hits */ _paq.push(['setDocumentTitle', '404/URL = ' + encodeURIComponent(document.location.pathname+document.location.search) + '/From = ' + encodeURIComponent(document.referrer)]); } /* Measure a visit to flink.apache.org and nightlies.apache.org/flink as the same visit */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//analytics.apache.org/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '37']); 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 > <!-- Navigation --> <header> <div id="skiptocontent"> <a href="#maincontent">Skip to Main Content</a> </div> <nav class="navbar navbar-inverse navbar-fixed-top mainmenu"> <div class="container"> <div class="navbar-header"> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="collapse navbar-collapse" id="mainnav-collapse"> <div class="upper-nav"> <div class="header-social-icons"> <a target="_blank" href="https://infra.apache.org/slack.html"><img src="/images/slack-icon.svg" alt="slack icon"></a> <a target="_blank" href="https://github.com/apache"><img src="/images/github-mark-white.svg" alt="github icon"></a> <a target="_blank" href="https://www.linkedin.com/company/the-apache-software-foundation/"><img src="/images/linkedin-icon.png" alt="linkedIn icon"></a> <a target="_blank" href="https://www.youtube.com/c/TheApacheFoundation"><img src="/images/youtube-icon.svg" alt="youtube icon"></a> <a target="_blank" href="https://twitter.com/TheASF"><img src="/images/x-icon.svg" alt="X icon"></a> </div> <a href="https://donate.apache.org/48ff" target="_blank" class="btn btn-default" onclick="_paq.push(['trackEvent', 'click', 'SponsorASF Button']);">Donate</a> </div> <ul class="nav navbar-nav navbar-justified n-navbar-padding"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="https://community.apache.org/" target="_blank">Contributor Getting Started</a></li> <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li> <li><a href="/foundation/policies/conduct">Code of Conduct</a></li> <li><a href="/community-resources/">Community Resources</a></li> <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li> <li><a href="https://events.apache.org/" target="_blank">Events</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="/projects">Projects</a></li> <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li> <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li> <li><a href="/foundation/mailinglists">Mailing Lists </a></li> <li><a href="/security">Report a Vulnerability</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="https://downloads.apache.org/" target="_blank">Distributions</a></li> <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li> <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li> <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Learn <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="https://news.apache.org/" target="_blank">Blog</a></li> <li><a href="/foundation/how-it-works">How the ASF Works</a></li> <li><a href="/theapacheway/">The Apache Way</a></li> <li><a href="/legal/">Legal & Trademark</a></li> <li><a href="/licenses">Licenses</a></li> <li><a href="/foundation/glossary">Glossary</a></li> <li><a href="/foundation/faq">FAQ</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Resources & Tools <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="/dev/">Developer Information</a></li> <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li> <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li> <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li> <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li> <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li> <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li> <li><a href="/foundation/press/kit/">Brand Guidelines</a></li> <li><a href="/logos/">Project Logos</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="/foundation/">About</a></li> <li><a href="/foundation/sponsors">Our Sponsors</a></li> <li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li> <li><a href="/foundation/individual-supporters">Individual Supporters</a></li> <li><a href="/foundation/leadership">Leadership</a></li> <li><a href="/foundation/members">Members</a></li> <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li> <li><a href="/press/">Newsroom</a></li> <li><a href="/foundation/contact">Contact</a></li> </ul> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle hidden-xs" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search" aria-hidden="true"></span><span class="sr-only">Search</span></a> <ul class="dropdown-menu search-form" role="search"> <li> <div id="pagefind-search" class="input-group" style="width: 100%; padding: 0 5px;"></div> </li> </ul> </li> </ul> </div> </div> </nav> </header> <!-- / Navigation --> <header id="main-header" class="container"> <div class="sideImg"> <a class="acevent visible-home" data-format="square"></a> <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a> </div> <div class="main"> <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo"> </div> </header> <main id="maincontent"> <div class="container"> <h1 id="project-management-committee-guide">Project Management Committee Guide<a class="headerlink" href="#project-management-committee-guide" title="Permalink">¶</a></h1> <p>This guide outlines the general responsibilities of <a href="/foundation/how-it-works.html#pmc">Project Management Committee</a> (PMC) members in managing their projects and common how-to procedures for day to day maintenance. For a high-level overview of the what and why of PMCs, read the <a href="/foundation/governance/pmcs" target="_blank">PMC Governance overview</a>.</p> <h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permalink">¶</a></h2> <ul> <li><a href="pmc.html#audience">Intended audience</a></li> <li><a href="pmc.html#what-is-a-pmc">What is a PMC?</a></li> <li><a href="pmc.html#policy">PMC required policies</a></li> <li><a href="pmc.html#chair">How to perform the duties of the PMC chair</a></li> <li><a href="pmc.html#pmcmembers">PMC membership management</a></li> <li><a href="pmc.html#committer-management">Project committer management</a></li> <li><a href="pmc.html#faq">PMC FAQs and how-tos</a></li> </ul> <h2 id="audience">Intended audience<a class="headerlink" href="#audience" title="Permalink">¶</a></h2> <p>This document is for <em>PMC members</em> of ASF projects. A PMC is responsible for the proper <a href="/foundation/governance/pmcs">management and oversight of an Apache project</a>, and reports directly to the board four times a year. Every PMC has a Chairperson, who is also an <a href="/foundation/#who-runs-the-asf">officer of the ASF</a> with the title "Vice President, Apache <em>Projectname</em>".</p> <ul> <li>If you are a committer who is not yet a PMC member, you probably want to <a href="committers.html">read the committers guide</a> instead.</li> <li>If you are not yet a committer but are interested in joining an Apache project, please start at the <a href="contributors.html">Contributors Tech Guide</a>.</li> <li>For more information on how Apache projects operate, see <ul> <li><a href="https://blogs.apache.org/comdev/entry/what_makes_apache_projects_different">What makes Apache projects different?</a></li> <li>the <a href="/foundation/governance/pmcs.html">Apache PMC governance overview</a></li> <li><a href="https://community.apache.org/projectIndependence.html">Project independence</a></li> </ul> </li> </ul> <h2 id="what-is-a-pmc">What is a PMC?<a class="headerlink" href="#what-is-a-pmc" title="Permalink">¶</a></h2> <p>A project management committee (PMC) is a committee of the Apache Software Foundation charged with <a href="/foundation/governance/pmcs.html">responsibility and governance</a> for their top level project. The PMC is the vehicle through which decision-making power and responsibility for oversight devolves to developers.</p> <p>While committers on a project have the ability to update the code, only the PMC as a body has the authority to vote on formal releases of the project's software. The PMC is also responsible for voting in new committers and PMC members to the project, and following other policies as outlined in this document.</p> <h2 id="policy">PMC required policies<a class="headerlink" href="#policy" title="Permalink">¶</a></h2> <p>Terms in this section are used as per <a href="https://www.ietf.org/rfc/rfc2119.txt">RFC2119</a>. The Board expects all PMCs to understand and comply with these policies.</p> <h4 id="reporting">Report project status quarterly or when requested<a class="headerlink" href="#reporting" title="Permalink">¶</a></h4> <p>PMC Chairs / Vice Presidents <strong>SHALL</strong> submit a <a href="/foundation/board/reporting">report on their project health</a> on a quarterly basis to the Board, or when requested by a director. In the absence of the PMC Chair, or at their direction, any other PMC members may write and submit the report.</p> <p>Similarly, PMC Chairs <strong>SHALL</strong> provide replies to board questions about the PMC report or other project operations <strong>to the board@ mailing list</strong> and <strong>SHALL</strong> ensure the PMC takes any actions required by the board.</p> <p>PMC Chairs/Vice Presidents have <a href="#chair">specific additional duties</a> listed below.</p> <h4 id="legal-policy">Comply with Legal Affairs policies<a class="headerlink" href="#legal-policy" title="Permalink">¶</a></h4> <p>PMCs <strong>SHALL</strong> ensure that the work on their project and the code that they produce complies with relevant <a href="/legal/">Legal Affairs Committee</a> policies, including using the Apache License appropriately, handling IP and copyrights correctly, handling cryptography, and <a href="/dev/release">producing official software releases</a> of their products.</p> <h4 id="brand-policy">Comply with Brand Management policies<a class="headerlink" href="#brand-policy" title="Permalink">¶</a></h4> <p>PMCs <strong>SHALL</strong> ensure that they manage their projects' brand and treat all Apache® marks properly as defined in the overview of<br/> <a href="/foundation/marks/responsibility">PMC Branding Responsibilities</a> and the <a href="/foundation/marks/pmcs">Apache Project Branding Requirements</a> for project websites.</p> <h4 id="brand-report">Responsibly report misuses of Apache brands<a class="headerlink" href="#brand-report" title="Permalink">¶</a></h4> <p>PMCs <strong>SHALL</strong> review use of their Apache project brand by third parties and follow the <a href="../foundation/marks/reporting.html">Apache trademark use reporting guidelines</a> when appropriate.</p> <h4 id="mailing-list-naming-policy">Conduct project business on public mailing lists<a class="headerlink" href="#mailing-list-naming-policy" title="Permalink">¶</a></h4> <p>All technical decisions and the great majority of the work of any PMC should take place on their normal public mailing lists, such as dev@ or user@. Decisions <strong>SHALL NOT</strong> be made in other media, like IRC, Slack channels, or face to face at conferences; project members should bring proposals arising from such settings back to the appropriate mailing list for all participants to discuss and decide upon.</p> <p>PMCs <strong>SHOULD</strong> ensure that decision-making processes allow input over a sufficient amount of time - typically at least 72 hours - so that project participants in various time zones have a chance to participate in the decision.</p> <h4 id="monitor-the-projects-private-mailing-list">Monitor the project's private mailing list<a class="headerlink" href="#monitor-the-projects-private-mailing-list" title="Permalink">¶</a></h4> <p>PMC members SHALL be subscribed to their project's private mailing list, and a sufficient number of them MUST monitor it so that the PMC is responsive to roll calls and other requests from the Board that are sent there.</p> <h4 id="mailing-list-private">Limit project business on private mailing lists<a class="headerlink" href="#mailing-list-private" title="Permalink">¶</a></h4> <p>All PMCs <strong>SHALL</strong> restrict their communication on private mailing lists <strong>only</strong> to issues that <a href="#private-or-public">cannot be discussed in public</a>, such as discussion of:</p> <ul> <li>pre-disclosure security problems</li> <li>pre-agreement discussions with third parties that require confidentiality</li> <li>nominees for project committer, PMC or Foundation membership</li> <li>personal conflicts among project personnel</li> </ul> <p>All projects <strong>SHALL</strong> use the name <code>private@*project*.apache.org</code> for this private list (where <em>project</em> is the name of the project). PMC members must maintain the confidentiality of messages on privately-archived mailing lists.</p> <h2 id="chair">How to perform the duties of the PMC chair<a class="headerlink" href="#chair" title="Permalink">¶</a></h2> <p>See the <a href="../foundation/how-it-works.html#pmc">definition of PMC and chair</a> , and be familiar with the <a href="../foundation/bylaws.html">ASF Bylaws</a>. The <a href="/pmc-chair.html">advice for new PMC chairs</a> has additional useful information.</p> <h3 id="review-board-meeting-minutes-about-their-project">Review board meeting minutes about their project<a class="headerlink" href="#review-board-meeting-minutes-about-their-project" title="Permalink">¶</a></h3> <p>PMC chairs should monitor the minutes of board meetings for entries that are relevant to their project, especially any comments directors make on their project's reports, pass relevant information back to the project PMC, and otherwise serve as a conduit for any questions between the board and the PMC.</p> <p><strong>Note:</strong> Feedback from the board and the unedited minutes of board meetings are <strong>not</strong> normally public information, and should be treated confidentially. Only after the board has formally approved the minutes of a meeting (normally the following month) are they published publicly. Feedback on meeting minutes is usually sent to the private@ list.</p> <h3 id="ensure-the-projects-quarterly-board-report-is-submitted">Ensure the project's quarterly board report is submitted<a class="headerlink" href="#ensure-the-projects-quarterly-board-report-is-submitted" title="Permalink">¶</a></h3> <p>While the PMC chair is not required to write the quarterly board report personally, they are responsible for ensuring the report is complete and submitted on time.</p> <ul> <li>The reporting schedule is listed in <a href="https://svn.apache.org/repos/private/committers/board/committee-info.txt">committee-info.txt</a>, along with the procedure.</li> <li>See the <a href="../foundation/board/reporting">Board reporting guidelines and how-to</a> for what the reports should contain. (Note that new PMCs are required to report monthly for the first quarter.)</li> <li>Project reports are about the status of the project, together with any community and legal issues or other general impediments. If there are issues requiring board assistance, make that apparent, separate from any general project news.</li> <li>You should seek input from your PMC, but it is mainly your report to the board on behalf of your project. The chair does not report to the PMC - the chair reports to the board (and ultimately to the ASF membership).</li> <li>You can use the <a href="https://reporter.apache.org/"><strong>Apache Committee Reporter</strong> tool</a> to simplify some data collection for your report.</li> <li>Examples of past project reports are in the <a href="../foundation/board/calendar.html">Board Meetings and Calendar</a>.</li> </ul> <p>Remember that, as in any committee, the chair is a <strong>facilitator</strong> and their role within the PMC is to ensure that everyone has a chance to be heard and to enable meetings and mailing lists to flow smoothly. A well-run PMC works together to draw up the information for their board report, but the chair is specifically responsible for getting it to the board. There is no concept of "leader" in the Apache way.</p> <h3 id="ensure-new-committer-requests-are-made">Ensure new committer requests are made<a class="headerlink" href="#ensure-new-committer-requests-are-made" title="Permalink">¶</a></h3> <p>After the project has elected new committers and followed the process to get their account created, the PMC chair ensures the new committer has <a href="#newcommitter">karma</a> (access) to the project repositories.</p> <h3 id="maintain-asf-records-on-the-pmc-roster">Maintain ASF records on the PMC roster<a class="headerlink" href="#maintain-asf-records-on-the-pmc-roster" title="Permalink">¶</a></h3> <p>The chair is responsible for ensuring your <a href="https://whimsy.apache.org/roster/committee/">PMC's official roster</a> in <a href="https://svn.apache.org/repos/private/committers/board/committee-info.txt">committee-info.txt</a> of your PMC members is always kept updated. See <a href="#newpmcmember">How To Add New PMC Members</a>.</p> <h4 id="send-notices-and-followup-when-adding-pmc-members">Send NOTICEs and followup when adding PMC members<a class="headerlink" href="#send-notices-and-followup-when-adding-pmc-members" title="Permalink">¶</a></h4> <p>NOTICE emails to the board are now generated automatically when the roster is updated. There is no need for PMCs to send a NOTICE before updating the roster. The roster can be updated as soon as the invitation is accepted.</p> <h3 id="subscribe-to-the-board-mailing-list-if-desired">Subscribe to the <code>board@</code> mailing list if desired<a class="headerlink" href="#subscribe-to-the-board-mailing-list-if-desired" title="Permalink">¶</a></h3> <p>PMC Chairs are welcome to subscribe to the <code>board@</code> mailing list to stay aware of Foundation level issues that may affect their project. This used to be a requirement, but the Board made it optional in June 2020. Note that <code>board@</code> is a privately- archived mailing list, so <strong>information from board@ must NOT be forwarded elsewhere</strong>.</p> <h3 id="newchair">How to change your PMC's chair<a class="headerlink" href="#newchair" title="Permalink">¶</a></h3> <p>If your PMC wishes to change their VP / Chair, typically you hold a vote or otherwise reach a consensus in the PMC about who the new Chair should be. Then anyone on the PMC can send <code>board@</code> an official resolution for the board to approve (or reject) at the next monthly board meeting before this change officially takes place.</p> <p>Use the <a href="https://whimsy.apache.org/board/agenda">Whimsy Board Agenda</a> (requires Apache login) to submit the formal chair change resolution to the next month's board meeting. Log in to the Board Agenda and click the <em>add item</em> button at the bottom to add the appropriate resolution. If your PMC members have difficulty logging into Whimsy, contact the <code>board@</code> mailing list for help.</p> <p>Once the board approves the resolution (typically at the next monthly meeting), the newly appointed project VP and Chair will get instructions for how to accept the new role.</p> <h3 id="is-a-pmc-chair-an-officer-or-member-of-the-asf">Is a PMC Chair an officer or Member of the ASF?<a class="headerlink" href="#is-a-pmc-chair-an-officer-or-member-of-the-asf" title="Permalink">¶</a></h3> <p>Yes, they are officers of the corporation, and no, they are not necessarily "Members". PMC Chairs are appointed by the board to be the Vice President of their top level project and to serve as the Chair of their Project Management Committee. <a href="../foundation/faq.html#why-are-PMC-chairs-officers">Read an explanation why PMC Chairs are legal officers of the corporation</a>.</p> <p>PMC Chairs/VPs are not necessarily Members of the ASF. Members of a PMC and the Chair/VP have merit within their project, which is different from the governance of the ASF as a whole Foundation. Members of the Foundation are essentially <a href="/foundation/governance/members">shareholders in the legal corporation</a> that hosts our hundreds of software projects.</p> <h3 id="board-feedback">How to reply to board feedback on a project's report<a class="headerlink" href="#board-feedback" title="Permalink">¶</a></h3> <p>The board reads each submitted project report at its monthly meetings, and sometimes individual directors make comments or ask questions, using the Whimsy tool, in the meeting agenda. Shortly after each month's meeting, the Secretary uses Whimsy to automatically send all comments out to each project's <code>private@</code> mailing list and to the PMC chair directly.</p> <p>Some comments are simple feedback or notes on the report; some comments are specific questions from directors. If there is any question or unusual feedback in this email, the board expects that a PMC member will send a reply-all response to <code>board@</code>.</p> <h3 id="move-to-attic">Why would a project move to the Attic?<a class="headerlink" href="#move-to-attic" title="Permalink">¶</a></h3> <p>As described on <a href="https://attic.apache.org">its homepage</a>, the Attic is meant to <em>provide oversight for projects which otherwise would not have oversight</em>.</p> <p>It's fine for ASF projects to be mature and quiet, with little development activity happening, and that in itself is not a reason to move to the Attic.</p> <p>However, to be viable, an ASF project must have enough active PMC Members who provide oversight for the project. They fix and release code and handle security vulnerabilities or other serious bugs, for example.</p> <p>While the PMC doesn't have to fix all the bugs or requests that come in, the Board must be able to verify that there are at least three PMC members monitoring the project's mailing lists who <strong>could</strong> reply and act in such cases.</p> <p>To this end, the Board will sometimes perform a <a href="#roll-call">PMC roll call</a>.</p> <p>Sometimes, members leaving a project would result in fewer than three PMC members remaining, while other community members are willing to continue maintaining the project. In such a case, the best way forward, if possible, is to elect a few of those community members to the PMC to keep it viable.</p> <p>If that does not happen, the Board can "reboot" a PMC by re-establishing it with a new or modified PMC. As an example, see the <a href="/foundation/records/minutes/2019/board_minutes_2019_02_20.txt">Board resolution to reboot the Apache Xalan PMC</a> from the February 2019 Board minutes.</p> <p>Mature or very slow-running projects should periodically (we recommend once a year) do a PMC roll call to confirm their viability.</p> <p>In summary, the only reason for a project to move to the Attic is lack of oversight due to an insufficient number of active PMC members.</p> <p>Note that going to the Attic is not necessarily a bad thing: it's merely a reflection that there isn't currently an <strong>active</strong> community to manage the project. It's also a clear way to set the right expectations for users of the project's code.</p> <h3 id="roll-call">How to perform a PMC roll call<a class="headerlink" href="#roll-call" title="Permalink">¶</a></h3> <p>The Board sometimes asks for a roll call for projects that fail to report regularly, have very little visible activity on their mailing lists or releases, or do not seem to be responsive to security issues.</p> <p>If a Director (on behalf of the Board) asks a PMC to perform a roll call, the PMC <strong>must</strong> respond by showing via an email thread that <a href="/legal/release-policy.html#release-approval">at least three PMC members</a> are active.</p> <p>A PMC can do this by each of its active members replying to a thread to <code>board@</code>, or by having one PMC member send a link to a thread on the PMC's lists where at least three PMC members reply that they are still monitoring the project and could assist with creating new releases if needed. <strong>Be sure</strong> to let the <code>board@</code> mailing list know when at least three PMC members have responded (or always cc: <code>board@</code>).</p> <p>Projects <strong>must</strong> reply to the Board's request for a roll call. Failure to show that at least three PMC members are present before the next monthly Board meeting can lead to the Board concluding the project is due to shut down and move to the <a href="https://attic.apache.org/">Apache Attic</a> for lack of oversight.</p> <p>See also <a href="pmc.html#move-to-attic">why would a project move to the Attic?</a>, above.</p> <h2 id="pmcmembers">PMC membership management<a class="headerlink" href="#pmcmembers" title="Permalink">¶</a></h2> <h3 id="newpmcmember">How to add a PMC member<a class="headerlink" href="#newpmcmember" title="Permalink">¶</a></h3> <p>The usual process for adding a member to a PMC is to:</p> <ul> <li>Elect the new member by having the PMC vote on the project's private list, according to the <a href="/foundation/voting">ASF voting rules</a></li> <li>Invite the new member to your PMC</li> <li>Follow the below process to update the official PMC roster</li> </ul> <p>In specific cases, however, such as low PMC participation preventing the number of required votes from being reached, or the PMC chair being unavailable for an extended period of time, PMC members can ask the Board to make the necessary changes to the PMC without a successful PMC vote. In such a case, the Board would only be concerned if there is opposition within the PMC.</p> <h4 id="invite-the-person-to-the-pmc">Invite the person to the PMC<a class="headerlink" href="#invite-the-person-to-the-pmc" title="Permalink">¶</a></h4> <p>To officially add the candidate to your PMC, you need to:</p> <ul> <li>Formally invite the new PMC member (with copy to the private@ list).</li> <li><strong>If they accept</strong>, then:</li> <li>Update the <strong><a href="https://whimsy.apache.org/roster/committee/">official PMC roster</a></strong> (step below) with the new PMC member.</li> <li>Announce the new PMC member to your project in whatever way works best for your community.</li> <li>Remind the new PMC member of key ToDos: <ul> <li>The new PMC member should subscribe to your PMC's private@ mailing list, which can be done via email or using the <a href="https://whimsy.apache.org/committers/subscribe.cgi">Whimsy Mailing List Subscription tool</a>.</li> <li>Remind the new PMC member to read the <a href="/foundation/marks/responsibility">PMC Branding Responsibilities</a>.</li> </ul> </li> </ul> <h4 id="update-the-official-pmc-roster">Update the official PMC roster<a class="headerlink" href="#update-the-official-pmc-roster" title="Permalink">¶</a></h4> <p>Note: if the person being invited is not yet an ASF committer, be sure to request a committer account for them first. Updating the official PMC roster can be done with the Whimsy tool:</p> <p><a href="https://whimsy.apache.org/roster/committee/">https://whimsy.apache.org/roster/committee/</a></p> <p>Click through to your PMC's page and follow the instructions to Add/Modify. If the Whimsy tool does not work, then see documentation on updating LDAP and <a href="https://svn.apache.org/repos/private/committers/board/committee-info.txt">committee-info.txt</a>.</p> <h3 id="membersleave">How to remove a PMC member<a class="headerlink" href="#membersleave" title="Permalink">¶</a></h3> <h4 id="resign">How to resign from a PMC<a class="headerlink" href="#resign" title="Permalink">¶</a></h4> <p>If you would like to resign from a PMC, simply send an email to your project (typically the private@ list) formally resigning, and ask the PMC chair to remove you from the roster. The PMC Chair can then follow the (removal steps below)[#emeritus].</p> <p>"Resignation of a member of a PMC shall take effect immediately upon receipt of their resignation, as recorded on any of the Foundation's mailing list archives, but can be revoked by that member within 72 hours of receipt."</p> <p>The official process can be found in the <a href="/foundation/records/minutes/2022/board_minutes_2022_09_21.txt">September 2022 board minutes</a> under section <a href="https://whimsy.apache.org/board/minutes/PMC_Membership_Change_Process.html">7 C. PMC Membership Change Process</a>.</p> <h4 id="emeritus">How to mark a PMC member as resigned or emeritus<a class="headerlink" href="#emeritus" title="Permalink">¶</a></h4> <p>The ASF does not have any formal concept for an "emeritus PMC member" - an individual is either a member of the PMC or not. Projects are free to establish their own policies for designating members of the PMC who are inactive but remain on the PMC, or those who were formerly on the PMC and have resigned. Some projects have also established guidelines to allow former PMC members to remain on the private PMC list, and to allow a PMC member to request reinstatement simply by asking (note that the standard Board notification procedures must still be followed for reinstatement).</p> <p>Once the PMC member's resignation is received on a mailing list of the Foundation, the resignation is considered effective. However, the PMC member has 72 hours to withdraw their resignation. Notifying the board is not required, but encouraged to ease tracking.</p> <p>Once the resignation has taken effect, the PMC Chair should:</p> <ul> <li>Use the <a href="https://whimsy.apache.org/roster/committee/">Whimsy roster</a> tool to remove the PMC member, which handles these two steps for you: <ul> <li>Updating <strong><a href="https://svn.apache.org/repos/private/committers/board/committee-info.txt">committee-info.txt</a></strong> to remove the former member's entry.</li> <li>Updating the appropriate LDAP committee group - See the <a href="#SVNaccess">SVN access</a> section above.</li> </ul> </li> </ul> <h4 id="pmc-removal">Should a PMC remove inactive members?<a class="headerlink" href="#pmc-removal" title="Permalink">¶</a></h4> <p>Projects can establish their own policy on handling inactive members, as long as they apply it consistently. It is not a problem to retain members of the PMC who have become inactive, and it can make it easier for them to stay in touch with the project if they choose to become active again.</p> <p>Often, PMC members who are no longer able to participate will resign from the PMC by emailing a request. In some cases where PMCs have a large number of inactive members, PMCs have asked the inactive members if they'd like to resign.</p> <h4 id="pmc-exit">How to remove a PMC member unilaterally<a class="headerlink" href="#pmc-exit" title="Permalink">¶</a></h4> <p>If a PMC chooses to <em>remove</em> one of its members (<strong>without</strong> that member's request or consent), the PMC must ask the Board to remove the member. The PMC chair should send an email to the board@ mailing list detailing the request for removal and the justification the PMC has for that removal, and copy the project's private@ list. The board will review the reqest as well as your project's mailing lists to see if the removal is controversial or opposed, and then make a decision, typically at the next month's board meeting.</p> <h4 id="deceased">What to do if a committer or PMC member has died<a class="headerlink" href="#deceased" title="Permalink">¶</a></h4> <p>This is a tragic occurrence, but with so many communities here at the Foundation, it is bound to happen occasionally. Each community can decide how they want to handle this issue:</p> <ul> <li>You <strong>must</strong> notify <a href="mailto:root@apache.org">root@apache.org</a> and <a href="mailto:secretary@apache.org">secretary@apache.org</a>. This will allow the person's account to be disabled, and any necessary Foundation records to be updated, for example removal from PMC/podling membership rosters and cancellation of email subscriptions.</li> <li>Feel free to add a page to our <a href="/memorials/">memorial site</a>. Many communities have gathered eulogies and remembrances.</li> </ul> <h2 id="committer-management">Project committer management<a class="headerlink" href="#committer-management" title="Permalink">¶</a></h2> <h3 id="newcommitter">How to invite new project committers<a class="headerlink" href="#newcommitter" title="Permalink">¶</a></h3> <p>It is the responsibility of each project PMC to review productive contributors to their project and consider nominating those contributors as committers, and then voting them in as committers (and possibly PMC members as well). PMCs should be guiding their new committers, to make sure that they have access to the proper resources and ASF documentation (e.g. the <a href="new-committers-guide.html">Guide for new committers</a> and the <a href="committers.html">Committers' FAQ</a> ). If a productive individual is <em>already</em> an Apache committer on another project, you can just <a href="#karma">grant them karma to your project</a>.</p> <h3 id="noncommitter">How to submit new committer account requests<a class="headerlink" href="#noncommitter" title="Permalink">¶</a></h3> <p>Most PMCs hold formal votes on committer nominees to decide whether to invite them, although PMCs are free to follow their own documented process for finding consensus on adding new committers.</p> <p>Once the PMC formally wants to invite an individual to be a committer, invite them, (<a href="https://community.apache.org/pmc/adding-committers.html#email-templates">using the appropriate one of these templates</a>) and require the new committer (if an ICLA for the committer is not already on file) to <a href="/licenses/#clas">submit an Individual Contributor License Agreement (ICLA) to the secretary</a>. The secretary <strong>cannot process new committer accounts</strong> without receiving the CLA acknowledged by the ASF secretary or a board member. Your PMC needs to work with the new committer to ensure that their CLA is received and recorded properly, so you need to monitor the file <code>iclas.txt</code> in the <code>foundation/officers</code> repository. Only ASF members and officers (PMC chairs) have access. The Apache Phone Book has an <a href="https://home.apache.org/unlistedclas.html">Unlisted CLAs</a> page which is generated daily from the <code>iclas.txt</code> file, and recently received CLAs appear there.</p> <p>Encourage your new committer to include both the PMC name and their desired account ID on the submitted ICLA. If both of these pieces of information are provided on the ICLA form, the ICLA is sent to the correct address (<code>secretary@apache.org</code>), and the secretary or assistant secretary can verify a [VOTE][RESULT] for the new committer, the account will be requested by the person (secretary or assistant secretary) filing the ICLA.</p> <p>If the new account information is not provided on the ICLA, the PMC chair is responsible to get the new committer's desired account ID and request the new account.</p> <p>Once the ICLA has been filed, use the <a href="https://whimsy.apache.org/officers/acreq">ASF New Account Request form</a> to generate the request. Should the PMC chair be unavailable for any reason, any ASF member can act on their behalf.</p> <p><strong>For incubating projects</strong>: If</p> <ul> <li>the podling has its status page set up</li> <li>the podling is identified on the ICLA</li> <li>a valid account id is provided on the ICLA</li> <li>the podling is listed on the incubator's ProjectProposals page</li> <li>the submitter is named on the project proposal</li> </ul> <p>the secretary or assistant secretary will request the account. In other cases, the Mentors will request the account. If the podling you're requesting accounts for doesn't appear in the drop-down list of podlings, provide the podling name in the free text input box.</p> <p>Most PMCs decide on new committers through an election process on their private mailing list. Please include a URL or message-id reference to the final vote tally using the <a href="https://lists.apache.org">Apache Mail Archives</a>.</p> <p>New account requests will only be accepted from PMC chairs and ASF members. If you are acting on behalf of a project which was accepted for incubation, please get in touch with the sponsoring PMC and let them take care of requesting any new accounts.</p> <p>The request will be CC'd to the PMC mailing list. Barring objections from the PMC, the infrastructure team will create the account and assign the appropriate group permissions. This may take a few days. A message confirming the new account will be sent to the PMC mailing list and to the new committer.</p> <p>If the ICLA included the PMC name, normally the account will already have been set up in the correct LDAP group that will grant access to the project source repository.</p> <p>If not, the PMC takes over and provides the rest of the infrastructure needs. In particular, the PMC chair has the ability <strong>and the responsibility</strong> to provide write access to the project's source repository.</p> <h4 id="SVNaccess">How to grant SVN access (karma) to a project source repository<a class="headerlink" href="#SVNaccess" title="Permalink">¶</a></h4> <p>For most operations, PMCs do not need to do anything to grant new committers SVN access to their areas. However, if the automatic LDAP process does not work for some reason, the PMC can use the <a href="https://github.com/apache/infrastructure-p6/blob/production/modules/subversion_server/files/authorization/asf-authorization-template" target="_blank">ASF authorization template</a>.</p> <p>The <strong>[groups]</strong> section of the file defines SVN group names and their members. The groups are defined as LDAP references; see below for how to update them.</p> <p>To grant or deny access to directories in SVN, the PMC chair needs to update the appropriate <strong>[group]</strong> entry. The PMC chair has access to make changes to the project groups held in LDAP.</p> <h4 id="SVNWhimsy">Updating LDAP group membership using Whimsy Roster<a class="headerlink" href="#SVNWhimsy" title="Permalink">¶</a></h4> <p>PMC Chairs may use the <a href="https://whimsy.apache.org/roster/committee/">Whimsy roster</a> tool, navigate to the committee, and either double click on the person or the plus sign to modify or add a person.</p> <h4 id="karma-podling">How to grant karma to incubator podling committers<a class="headerlink" href="#karma-podling" title="Permalink">¶</a></h4> <p>Podling authorization is managed using LDAP groups, just like PMCs - use the <a href="#SVNWhimsy">Whimsy Roster tool</a>.</p> <h4 id="karma">How To grant karma to someone who already has an Apache account<a class="headerlink" href="#karma" title="Permalink">¶</a></h4> <p>In this case, <strong>contact your PMC first</strong>. All PMC chairs can give an existing Apache ID access to their project's repositories. See <a href="#SVNaccess">how-to</a> above. For podlings, the PMC is the Incubator.</p> <p>Chairs may use <a href="#SVNWhimsy">Whimsy's roster tool</a> to modify their project membership lists.</p> <p><em>ONLY</em> if a PMC chair is not responsive or unavailable, then <a href="https://infra.apache.org/contact.html" target="_blank">contact the Apache Infra team</a> for assistance. This should only be for people who already have an Apache account and need extended commit access.</p> <pre><code> Karma request form: To: infrastructure Cc: private@<project>.apache.org, committers@email.address Subject: Karma request Userid: ... Requested karma: <project>[/<subproject>]... Reason: [a few lines explaining why someone needs karma] [Vote: reference to mail archive for PMC bookkeeping] </code></pre> <p>Once the request has been received, a person with appropriate access will extend the karma and reply accordingly.</p> <h4 id="machine">How to access other Apache infrastructure servers<a class="headerlink" href="#machine" title="Permalink">¶</a></h4> <p>Most committers can access all needed resources with just their Apache ID and their project's repositories and mailing lists. But if you do need access to <a href="machines.html">other official ASF servers</a>, request an account by <a href="https://infra.apache.org/contact.html" target="_blank">contacting the Apache Infra team</a>.</p> <pre><code> Account request form: To: infrastructure Cc: private@<project>.apache.org, committers@email.address Subject: Machine account request - <machine> Userid: ... Machine: ... Groups required:... Reason: [a few lines explaining why an account is required] [Vote: reference to mail archive for PMC bookkeeping] </code></pre> <p>The administrator of the machine will then reply accordingly.</p> <h2 id="faq">PMC FAQs and how-tos<a class="headerlink" href="#faq" title="Permalink">¶</a></h2> <h4 id="import">How to import code from an external source<a class="headerlink" href="#import" title="Permalink">¶</a></h4> <p>If the code to be imported is licensed under a Category A license and the intent is to distribute the code under its original license, copy the code into the Apache source repository, preserving its original header. Add the license for the code to the top level LICENSE file. If the team makes changes to the code, add an Apache header to the file(s) that notes the changes.</p> <p>If the code to be imported is intended to have continued development in Apache, and the owners of the code are willing to contribute their Intellectual Property to Apache under an <a href="/licenses/#clas">Individual Contributor License Agreement</a>, <a href="/licenses/#clas">Corporate Contributor License Agreement</a>, or <a href="/licenses/#grants">Software Grant Agreement</a>, you can copy the code to the Apache repository, changing the license header to the standard Apache header. In this case, the code needs to be reviewed by the <a href="https://incubator.apache.org">Incubator</a> via the <a href="https://incubator.apache.org/ip-clearance/index.html">Intellectual Property Clearance process</a>.</p> <h4 id="mail-archives">How to search the archives for private lists<a class="headerlink" href="#mail-archives" title="Permalink">¶</a></h4> <p>There are a number of Apache lists whose archives are not available to the public. Posts to these lists are considered <a href="../foundation/how-it-works.html#confidential">confidential</a>. Do not quote them on public lists our outside the ASF without the permission of the author.</p> <p>PMC members may search archives of their project's <code>private@</code> list. ASF members and officers may also read PMC mailing list archives. There are several ways to access our private archives:</p> <ul> <li><a href="https://lists.apache.org/">lists.apache.org</a>, also called PonyMail, is the preferred archive system.</li> <li><a href="https://mail-search.apache.org/">mail-search.apache.org</a> is the older mod_mbox system.</li> <li>PMC members who are not also ASF Members can <a href="/foundation/mailinglists.html">fetch</a> archives in the normal way: via the <code>-get</code> administrative command to ezmlm to download groups of mails.</li> </ul> <h4 id="who-can-be-on-private">Who can subscribe to a project's private list?<a class="headerlink" href="#who-can-be-on-private" title="Permalink">¶</a></h4> <p>All PMC members of a project should be subscribed to their project's <code>private@</code> list. In addition, ASF Members may read any project's private list. In general, people not on a PMC should not be allowed to subscribe to <code>private@</code> lists unless they are ASF Members.</p> <p>You can <a href="https://whimsy.apache.org/committers/subscribe">self-subscribe to mailing lists</a>.</p> <h4 id="data-checks">How to check PMC and LDAP memberships<a class="headerlink" href="#data-checks" title="Permalink">¶</a></h4> <p>There are two main ways to check the membership of PMCs and LDAP groups:</p> <ul> <li>Committers can view, and PMC chairs can update, PMC rosters using <a href="https://whimsy.apache.org/roster/committee/">Whimsy</a>.</li> <li>Anyone may view Apache Phonebook pages at <a href="https://home.apache.org/phonebook.html">https://home.apache.org/phonebook.html</a>. From there you can link to a specific PMC like this: <a href="https://home.apache.org/phonebook.html?pmc=gump">home.apache.org/phonebook.html?pmc=gump</a></li> </ul> <p>Please allow time for any changes to LDAP and committee-info.txt to propagate to the Phonebook app.</p> <p><strong>Note:</strong> The official record for PMC membership is the committee-info.txt file, and not the LDAP committee group.</p> <h4 id="new-wiki">How to request a wiki, a blog, or a new mailing list<a class="headerlink" href="#new-wiki" title="Permalink">¶</a></h4> <!--{#new-blog} {#new-mail-list}--> <p>See <a href="infra-contact#requesting-action">the Contact Infra roadmap</a> to request these and other resources for your project.</p> <h4 id="private-or-public">Where should we discuss project business?<a class="headerlink" href="#private-or-public" title="Permalink">¶</a></h4> <p>In almost all cases, discussion of project business should happen on that project's publicly archived mailing lists - the <a href="#mailing-list-naming-policy">detailed policy</a> explains the few exceptions.</p> <p>Discuss any topic which does not specifically need to be private on an appropriate public mailing list. This allows the public to read about the direction of the project and to offer early feedback.</p> <p>Most projects do their work on their <strong>dev@</strong><em>project</em>.apache.org mailing list. Some projects also have a <strong>user@</strong> mailing lists for more general or non-technical questions, and may have a <strong>general@</strong> mailing list. Every project should have a clear <a href="/foundation/mailinglists.html">mailing lists page</a> that has instructions for subscribing to their lists and for reading the archives.</p> <h4 id="escalation">How to get help or escalate issues<a class="headerlink" href="#escalation" title="Permalink">¶</a></h4> <p>Normally, Apache projects are expected to manage their own affairs; the people on a PMC and regular committers typically know the best way to work within their project communities. However, if things don't work well, or the project community has serious policy questions or disagreements about how to work together, you can ask for help elsewhere around the ASF.</p> <p>The <a href="/board/escalation">detailed Escalation Guide</a> helps communities figure out where to get help from other groups at Apache, or, if all else fails, to ask for help or appeal issues to the Board.<br/> The <a href="/foundation/governance/orgchart">Apache Organizational Chart</a> can help you find the right officer or group to ask for help on most issues, like legal, branding, press, or the many <a href="/board/services">other services the ASF offers projects</a>.</p> </div> </main> <!-- Footer --> <footer class="bg-primary"> <div class="container"> <div class="row"> <br /> <div class="col-sm-2"> <h5 class="white">Community</h5> <ul class="list-unstyled white" role="menu"> <li><a href="https://community.apache.org/" target="_blank">Contributor Getting Started</a></li> <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li> <li><a href="/foundation/policies/conduct">Code of Conduct</a></li> <li><a href="/community-resources/">Community Resources</a></li> <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li> <li><a href="https://events.apache.org/" target="_blank">Events</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="white">Projects</h5> <ul class="list-unstyled white" role="menu"> <li><a href="/projects">Projects</a></li> <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li> <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li> <li><a href="/foundation/mailinglists">Mailing Lists </a></li> <li><a href="/security">Report a Vulnerability</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="white">Downloads</h5> <ul class="list-unstyled white" role="menu"> <li><a href="https://downloads.apache.org/" target="_blank">Distributions</a></li> <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li> <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li> <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="white">Learn</h5> <ul class="list-unstyled white" role="menu"> <li><a href="https://news.apache.org/" target="_blank">Blog</a></li> <li><a href="/foundation/how-it-works">How the ASF Works</a></li> <li><a href="/theapacheway/">The Apache Way</a></li> <li><a href="/legal/">Legal & Trademark</a></li> <li><a href="/licenses">Licenses</a></li> <li><a href="/foundation/glossary">Glossary</a></li> <li><a href="/foundation/faq">FAQ</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="white">Resources & Tools</h5> <ul class="list-unstyled white" role="menu"> <li><a href="/dev/">Developer Information</a></li> <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li> <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li> <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li> <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li> <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li> <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li> <li><a href="/foundation/press/kit/">Brand Guidelines</a></li> <li><a href="/logos/">Project Logos</a></li> </ul> </div> <div class="col-sm-2"> <h5 class="white">About</h5> <ul class="list-unstyled white" role="menu"> <li><a href="/foundation/">About</a></li> <li><a href="/foundation/sponsors">Our Sponsors</a></li> <li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li> <li><a href="/foundation/individual-supporters">Individual Supporters</a></li> <li><a href="/foundation/leadership">Leadership</a></li> <li><a href="/foundation/members">Members</a></li> <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li> <li><a href="/press/">Newsroom</a></li> <li><a href="/foundation/contact">Contact</a></li> <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy Policy</a></li> </ul> </div> </div> <hr class="col-lg-12 hr-white" /> <div class="row"> <div class="col-lg-12"> <p class="text-center">Copyright © 2024 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p> </div> </div> </div> </footer> <!-- / Footer --> <script src="/js/jquery.min.js"></script> <script src="/js/bootstrap.js"></script> <script src="/js/slideshow.js"></script> <script> (function($){ $(document).ready(function(){ $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { event.preventDefault(); event.stopPropagation(); $(this).parent().siblings().removeClass('open'); $(this).parent().toggleClass('open'); console.log('WOrked'); }); }); })(jQuery); </script> </body> </html>