<!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>Board Reporting Guidelines for Project Chairs</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">
  <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" });
    });
  </script>

<!-- https://www.apache.org/licenses/LICENSE-2.0 -->
</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">
          <ul class="nav navbar-nav navbar-justified">
            <li><a href="/index.html#news">News</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation">Overview</a></li>
                <li><a href="/foundation/how-it-works.html">Process</a></li>
                <li><a href="/foundation/governance/">Governance</a></li>
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="/foundation/governance/members.html">Membership</a></li>
                <li><a href="https://community.apache.org/">Community</a></li>
                <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="/foundation/glossary.html">Glossary</a></li>
				  <li><a href="/apache-name">About Our Name</a></li>
                <li><a href="/foundation/preFAQ.html">FAQ</a></li>
                <li><a href="/foundation/contributing.html">Support Apache</a></li>
                <li><a href="/press/">Media/Analysts</a></li>
                <li><a href="/foundation/contact.html">Contact</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Make a Donation&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/foundation/contributing.html">Donate Now</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via Credit Card</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via ACH</a></li>
                <li><a href="https://donate.apache.org/">&nbsp;&nbsp;Via PayPal</a></li>
                <li><a href="https://www.redbubble.com/people/comdev">Buy Swag</a></li>
                <li><a href="/foundation/sponsorship.html">ASF Sponsorship</a></li>
                <li><a href="/foundation/thanks#targeted-sponsors">Targeted Sponsorship</a></li>
                <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">The Apache Way&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="/theapacheway/index.html">The Apache Way</a></li>
                <li><a href="https://s.apache.org/GhnI">Sustainable Open Source</a></li>
                <li><a href="/foundation/how-it-works.html">How it Works</a></li>
                <li><a href="/foundation/how-it-works.html#meritocracy">Merit</a></li>
                <li><a href="https://blogs.apache.org/foundation/category/SuccessAtApache">Success at Apache</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdopwn-toggle" data-toggle="dropdown">Join Us&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://community.apache.org/gettingStarted/101.html">Getting Started</a></li>
                <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                <li><a href="https://www.apachecon.com/">ApacheCon</a></li>
                <li><a href="http://community.apache.org/calendars/">Community Events</a></li>
                <li><a href="https://tac.apache.org">Travel Assistance</a></li>
                <li><a href="https://community.apache.org/gsoc.html">Summer of Code</a></li>
                <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                <li><a href="https://community.apache.org/contributors/etiquette">Etiquette</a></li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/index.html#projects-list">Project List</a></li>
                    <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
                    <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
                    <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
                    <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
                    <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
                    <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
                    <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
                    <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="/foundation/marks/">Brand Management</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
                    <li><a href="/foundation/members.html">Members</a></li>
                    <li><a href="https://community.apache.org/contributors/">Committers</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
                    <li><a href="/foundation/#who-runs-the-asf">Officers  &amp; Project VPs</a></li>
                    <li><a href="https://community.zones.apache.org/map.html">Location Map</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://people.apache.org/">Committer Directory</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="https://community.apache.org/about/">Community Development</a></li>
                    <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
                    <li><a href="https://community.apache.org/">Get Involved</a></li>
                    <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
                    <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
                    <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
                    <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
                    <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/dev/infrastructure.html">Infra overview</a></li>
                    <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
                    <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
                    <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
                    <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
                    <li><a href="/foundation/marks/list/">Trademarks</a></li>
					<li><a href="/licenses/exports/">Exports</a></li>
                  </ul>
                </li>
                <li class="dropdown dropdown-submenu visible-xs">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret"></span></a>
                  <ul class="dropdown-menu" role="menu">
                    <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
                    <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
                    <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
                    <li><a href="/foundation/contributing.html">Individual Donations</a></li>
                    <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
                  </ul>
                </li>
              </ul>
            </li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads&nbsp;<span class="caret"></span></a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="https://downloads.apache.org/">Distribution</a></li>
                <li><a href="https://projects.apache.org/releases.html">Releases</a></li>
                <li><a href="https://status.apache.org/">Infrastructure Status</a></li>
                <li><a href="/uptime/">Infrastructure Statistics</a></li>
              </ul>
            </li>
            <li class="dropdown hidden-xs">
              <a href="#" class="dropdown-toggle" 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="visible-home" href="https://events.apache.org/x/current-event.html">
            <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/>
<!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> -->
          </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">

      <ul class="nav navbar-nav navbar-justified">
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/index.html#projects-list">Project List</a></li>
            <li><a href="/foundation/how-it-works.html#management">How they work</a></li>
            <li><a href="https://community.apache.org/projectIndependence.html">Independence</a></li>
            <li><a href="https://projects.apache.org/committees.html?date">Date Founded</a></li>
            <li><a href="https://projects.apache.org/projects.html?name">Names</a></li>
            <li><a href="https://projects.apache.org/projects.html?category">Categories</a></li>
            <li><a href="https://projects.apache.org/projects.html?language">Languages</a></li>
            <li><a href="https://projects.apache.org/statistics.html">Statistics</a></li>
            <li><a href="https://incubator.apache.org/">Apache Incubator</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="/foundation/marks/">Brand Management</a></li>
            <li><a href="/foundation/glossary.html">Glossary of Terms</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">People&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/how-it-works.html#roles">Roles</a></li>
            <li><a href="/foundation/members.html">Members</a></li>
            <li><a href="https://community.apache.org/contributors/">Committers</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Board of Directors</a></li>
            <li><a href="/foundation/#who-runs-the-asf">Officers &amp; Project VPs</a></li>
            <li><a href="https://diversity.apache.org/">Diversity & Inclusion</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://people.apache.org/">Committer Directory</a></li>
            <li><a href="https://community.zones.apache.org/map.html">Heat Map</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="https://community.apache.org/about/">Community Development</a></li>
            <li><a href="/foundation/policies/conduct">Code of Conduct</a></li>
            <li><a href="https://community.apache.org/">Get Involved</a></li>
            <li><a href="https://community.apache.org/mentoringprogramme.html">Mentoring</a></li>
            <li><a href="https://helpwanted.apache.org/">Help Wanted</a></li>
            <li><a href="https://community.apache.org/calendars/">Community Events</a></li>
            <li><a href="https://community.apache.org/newbiefaq.html">FAQ</a></li>
            <li><a href="https://community.apache.org/lists.html">Mailing Lists</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Infrastructure&nbsp;<span class="caret"></span></a>
          <ul class="dropdown-menu" role="menu">
              <li><a href="/dev/infrastructure.html">Infra overview</a></li>
              <li><a href="https://infra.apache.org/" target="_blank">Policies and Tools</a></li>
              <li><a href="https://cwiki.apache.org/confluence/display/INFRA/Index" target="_blank">CWiki</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">License&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/licenses/LICENSE-2.0">Apache License 2.0</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/licenses/contributor-agreements.html">Contributor License Agreements</a></li>
            <li><a href="/licenses/contributor-agreements.html#grants">Software Grants</a></li>
            <li><a href="/foundation/marks/list/">Trademarks</a></li>
			<li><a href="/licenses/exports/">Exports</a></li>
          </ul>
        </li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Sponsors&nbsp;<span class="caret hidden-sm"></span></a>
          <ul class="dropdown-menu" role="menu">
            <li><a href="/foundation/sponsorship.html">Sponsor the ASF</a></li>
            <li><a href="/foundation/thanks">Sponsor Thanks</a></li>
            <li><a href="/foundation/contributing.html#CorporateGiving">Corporate Giving</a></li>
            <li><a href="/foundation/contributing.html">Individual Donations</a></li>
            <li><a href="https://www.redbubble.com/people/comdev/">Buy Stuff</a></li>
          </ul>
        </li>
      </ul>
    </div>
 
  </header>
  <main id="maincontent">
<div class="container">    <h1 id="board-reporting-guidelines-for-project-chairs">Board Reporting Guidelines for Project Chairs<a class="headerlink" href="#board-reporting-guidelines-for-project-chairs" title="Permalink">&para;</a></h1>
<p>Apache Project Management Committees (PMC)  <strong>must</strong> report on their
project's health and status quarterly to the Board of Directors.  While PMCs manage
their own technical affairs independently, the Board provides the oversight to
ensure that projects continue to operate as
healthy, community- and consensus-driven projects that support our mission.
See also the <a href="../../dev/pmc">PMC duties FAQ</a>.  PMC Chairs and Apache Members
are always welcome to <a href="/foundation/board/meeting#attend">attend monthly board meetings</a>.</p>
<p><strong>Contents</strong></p>
<div id="toc"><ul><li><a class="toc-href" href="#when" title="When to submit project board reports">When to submit project board reports</a></li><li><a class="toc-href" href="#how" title="How to submit project board reports">How to submit project board reports</a></li><li><a class="toc-href" href="#guidelines" title="Points to cover in board reports">Points to cover in board reports</a></li><li><a class="toc-href" href="#donot" title="Things not to put in reports">Things not to put in reports</a></li><li><a class="toc-href" href="#private" title="Private information">Private information</a></li><li><a class="toc-href" href="#other" title="Other considerations for reports">Other considerations for reports</a></li><li><a class="toc-href" href="#engaging-with-the-board-about-the-report" title="Engaging with the Board about the report">Engaging with the Board about the report</a></li></ul></div>
<h2 id="when">When to submit project board reports<a class="headerlink" href="#when" title="Permalink">&para;</a></h2>
<p>The <strong>chair of each PMC</strong> is responsible for submitting the report for their
project on a quarterly basis, at least <strong>one week before</strong> each board meeting,
according to the reporting schedule at</p>
<pre><code>https://svn.apache.org/repos/private/committers/board/committee-info.txt
</code></pre>
<p>Reporting late, or outside of that schedule as mentioned below, does not shift this
schedule: if you were supposed to report in January, for example, but missed that and
reported in February, your next report is still due in April. If you do not submit your report in sufficient time for the board to review it properly, you will
be asked to re-submit a report the following month.</p>
<p>While in most cases the chair works with other PMC members to write the
report, the report is ultimately the chair's responsibility to complete and submit.
The board sends several automated reminders to both chairs and PMC
private@ mailing lists to help you remember this task.</p>
<p><em>Exception:</em> newly-graduated PMCs must submit <em>monthly</em> reports for the first
three months after leaving the Apache Incubator.  All podlings still in the
Apache Incubator fill out similar reports using the <a href="https://incubator.apache.org/guides/ppmc.html#podling_status_reports">Incubator Podling Status</a> process.</p>
<h2 id="how">How to submit project board reports<a class="headerlink" href="#how" title="Permalink">&para;</a></h2>
<p>You must commit report content to the board's monthly meeting agenda.<br/>
Use either the Whimsy Agenda tool or the ComDev Project Reporter tool, which generates a handy framework for you:</p>
<pre><code>https://whimsy.apache.org/board/agenda/
https://reporter.apache.org/
</code></pre>
<ol>
<li>Log in using your Apache ID</li>
<li>Find your project's entry and click the blue <code>Post Report</code> button at the bottom</li>
<li>Be sure to Reflow the report before clicking Submit</li>
<li>You can edit the report after submitting it, if you need to make changes</li>
</ol>
<p>Command line users are free to check their reports in, following the
existing format, so that automated tools can parse them, here:</p>
<pre><code>  https://svn.apache.org/repos/private/foundation/board/
</code></pre>
<p>The board welcomes reports that any PMC submits apart from their scheduled reports,
should they have something notable to report or to request feedback on. In this case, the chair
may add the report as an attachment to the end of the agenda and create a corresponding
comments section for it.</p>
<p>While the primary audience for the report is the Board of Directors, remember that
reports become public after the meeting, and provide a chronological history of your project. It is
beneficial to write the report with information that you want your community to know now,
and in a way that will provide a helpful history for someone looking over the reports in
the future.</p>
<p>You may wish to share the public portions of the report with your project community
through the users list or project website as well.</p>
<p>The <a href="https://reporter.apache.org/"><strong>Apache Committee Reporter</strong> tool</a> can simplify
gathering data for your report, but you <em><strong>must</strong></em> edit and add information from the
generated template to cover the below points.<br/>
Do not leave any of the <strong>TODO markers</strong> in your report when you submit it.</p>
<h2 id="guidelines">Points to cover in board reports<a class="headerlink" href="#guidelines" title="Permalink">&para;</a></h2>
<p>These points are <strong>not</strong> a template; projects should not simply copy and
paste these bullets into their reports.  Rather, these are the topics that the
Board wants to hear about to be able to evaluate your project's health and status.
Not all topics will be pertinent to every report; however the
chair should consider each of these questions when writing a report.</p>
<ul>
<li>
<p>Briefly describe what your primary software product actually does. <strong>[REQUIRED]</strong></p>
<p>For example:</p>
<pre><code> The Apache Xerces XML parsing library is easily configurable 
 and compliant with current standards.
</code></pre>
<p>Note that this description should be similar to the basic
trademark description of your software product that your main website uses.</p>
<p>See <a href="/foundation/marks/pmcs#naming">Brand Naming and Description</a>.</p>
</li>
<li>
<p>Indicate your <strong>project state</strong> using one of the following keywords <strong>[REQUIRED]</strong></p>
<p>This is subjective of course, but helps adjust the Board's expectations
based on where your project stands in its lifecycle. Additional comments
are welcome, as needed.</p>
<ul>
<li><strong>New</strong>: a top-level project that's just getting started</li>
<li><strong>Ongoing</strong>, with <strong>high</strong>, <strong>moderate</strong> or <strong>low</strong> activity, which you might quantify if appropriate</li>
<li><strong>Dormant</strong>: not much happening on the code, but at least 3 PMC members ready to engage if needed</li>
<li><strong>At risk</strong>: not enough active PMC members, or a significant number of contributors left the project, etc.</li>
<li><strong>Considering moving to the Attic</strong>: a project that's about to move to the Attic, or discussing that</li>
</ul>
</li>
<li>
<p>Sum up the status and health of your project and the community in a few sentences</p>
<p>Starting the report with a paragraph that describes the main things that your project has worked on
over the last quarter will help readers understand the key points you want to convey,
and will be helpful to those that want to summarize the reports or gather information on
what is happening across the foundation quickly. You can then expand on these points in
the rest of the report, using the below for guidance.</p>
<p>The board is looking both for what technical changes the project is working on, as
well your community's health: are user questions answered, are
contributors acting appropriately, are there new contributors showing up?</p>
</li>
<li>
<p>Are there any issues for the Board to act on?</p>
<p>If there are specific issues that the Board should be aware of,
or should specifically address, then please call them out.  If not, then
it is helpful to state something like: "There are no Board-level issues at this time."</p>
<p>When in doubt, it's better to include information or questions the PMC has
in a report, rather than waiting.  Remember also that you can always ask
the board questions via email, at the privately-archived <a href="mailto:board@apache.org">board@apache.org</a> list, at any time.</p>
</li>
<li>
<p>When did the project last make any releases? <strong>[REQUIRED]</strong></p>
<p>Regular software product releases are a sign of a healthy project.  Reports should list
the releases made in the past quarter, <strong>with their release dates</strong>.</p>
<p><strong>NOTE</strong>: If no releases were made, list the date of the most recent prior release,
so that the board can determine how long it has been since the project
has made a release.</p>
</li>
<li>
<p>Describe the overall activity in the project over the past quarter.</p>
<p>Help the board evaluate the activity and health of the project by
discussing briefly how active the user and developer lists are.  Are user
questions being answered?  Is there new development happening, or just
bug fixes?  Does the development community regularly read and respond user emails and questions?</p>
<p><strong>NOTE</strong>: If activity is minimal, verify whether or not there are at least
three active PMC members who can step in when needed, and include this
information in the report.</p>
</li>
<li>
<p>Describe the current plans of the project</p>
<p>A healthy project will often be working towards a common goal, or have a shared
understanding of what is being done next - even if individual contributors have their
own "itches". What are the main features being worked on? What releases are planned?
Are there any specific efforts or branches of development under way? Provide a summary, without going depply into the technical details.</p>
<p>Aside from the report, if the project is planning major announcements, get in touch with the Marketing and Publicity Committee at <code>press@apache.org</code> to coordinate announcements and press releases.</p>
<p>Conversely, if activity is minimal, discuss how the project plans to address that -
whether through seeking out new contributors, maintaining a dormant but available state, or preparing to move to the <a href="http://attic.apache.org/">Apache Attic</a>.  If you need help with attracting new contributors, you can ask <a href="http://community.apache.org/">Apache Community Development</a> for tips.</p>
</li>
<li>
<p>When were the newest committers or PMC members elected? <strong>[REQUIRED]</strong></p>
<p>A healthy project tends to add new committers and PMC members regularly.</p>
<p>The report should indicate the <strong>most recent date on which a committer was
added</strong> and <strong>the most recent date on which PMC member was added</strong> to your
project, whether or not these date(s) were within the current reporting
period.</p>
</li>
<li>
<p>PMC and committer diversity</p>
<p>A healthy project should survive the departure of any single contributor
or employer of contributors.  Healthy projects also serve needs of many
parties.  Thus, the ASF prefers that projects have diverse PMCs and
committerships.  <strong>IF</strong> the PMC has any concerns or perceives a problem
with its diversity, the report should include information on
the number of unique organizations currently represented in its PMC
and committership.</p>
</li>
<li>
<p>Project branding or naming issues, either in the project or externally.</p>
<p>A project's brand &mdash; or name and logo &mdash; are important ways to identify
Apache projects, and a key way that new users become contributors.  Is
the project using its brand consistently?  Are there <a href="/foundation/marks/reporting">third parties that
are using your project's name</a>, logo, or good reputation improperly or
in a way that harms your project?</p>
<p>If your project's website branding is not complete (see the <a href="/foundation/marks/pmcs#checklist">checklist</a>), include specific plans on
how you'll work with the Brand Committee to finalize any remaining items.</p>
<p>NOTE: bring all other branding issues to the <a href="/foundation/marks/resources">Branding Committee</a> rather
than including them in the Board report.</p>
</li>
<li>
<p>Legal issues or questions</p>
<p>While the <a href="/legal/">Legal Affairs Committee</a> handles any
legal issues, be sure to mention any that occur in your board report.</p>
</li>
<li>
<p>Infrastructure issues or strategic needs</p>
<p>While the <a href="/dev/#infrastructure">Infrastructure team</a> handles the details of providing
needed services to our projects, feel free to include any concerns,
strategic suggestions, or requests in your board reports.</p>
</li>
</ul>
<h2 id="donot">Things <em>not</em> to put in reports<a class="headerlink" href="#donot" title="Permalink">&para;</a></h2>
<ul>
<li>
<p>Do not let commercial activity related to a project dominate a report.</p>
<p>Each Apache project's <a href="community.apache.org/projectIndependence">PMC manages the project</a> &mdash; not any third
party or outside organization.  Project reports should be about the project,
and should not discuss outside organizationss activities unless they directly relate to the health of the project.</p>
</li>
<li>
<p>Do not include private matters in a report without clearly marking them (see below)</p>
</li>
<li>
<p>Do not use non-Apache URL shorteners.</p>
<p>If you have a long URL you wish to include in your report, <strong>only</strong> use the <code>https://s.apache.org/</code> URL shortener (Apache login required) to provide a shorter link. Apache cannot control how long an external URL shorterner will exist, or will maintain a given shortened URL.</p>
</li>
<li>
<p>There's no need to include details about committer affiliations in a report, unless the information points to an issue around diversity which may be included privately.</p>
</li>
</ul>
<h2 id="private">Private information<a class="headerlink" href="#private" title="Permalink">&para;</a></h2>
<p>Occasionally a project may need to report something <strong>privately</strong> to the board,
but will not want the information to be published in public minutes.  Remember,
all Apache Board reports become public, usually a month or two after the board meeting.</p>
<p>Such information is welcome in your report, but please include it within</p>
<pre><code>&lt;private&gt;
</code></pre>
<p>and</p>
<pre><code>&lt;/private&gt;
</code></pre>
<p>markers, <strong>each on a separate line</strong>, so we know what to omit from the public minutes.  To verify that the private
markers are working, post your report in Whimsy, then refresh the page.<br/>
Private sections properly marked appear with a grey background.</p>
<p>If the issue is <em>exceptionally</em> sensitive and you are very concerned about privacy,
you may instead email directly to board-private@ or an individual board member, who will relay the information to the board.</p>
<h2 id="other">Other considerations for reports<a class="headerlink" href="#other" title="Permalink">&para;</a></h2>
<p>Project reports are the key way to let the board know about the status and
health of your project.  With the diversity of projects at Apache, these
guidelines can't cover all situations.  Feel free to include any additional
information in your reports that you think is important about your project.</p>
<p>In particular, if there are any "trouble spots" - even potential ones - that
the chair or other members of the PMC see in the project, be sure to include a
note about them in your board reports.  It's better to include your concerns - or
the concerns of part of your PMC - in reports, rather than letting the board
potentially discover them later.</p>
<p>Finally, if you find yourself with a project that doesn't seem like it has
enough activity to create much of a report, then be sure to report that fact.
A healthy project should be aware if it is headed for the Apache Attic.
Moving to the Attic isn't failure; it's simply recognizing that the project
may have matured, drifted off, or been superceded by other
technologies, and we should recognize that fact.</p>
<p>The Board relies on reports from project chairs to be able to understand the
status and health of projects.  If the Board cannot get a strong feeling
about how your project is doing, then we will be contacting you for a
follow-up report in the near future.</p>
<h2 id="engaging-with-the-board-about-the-report">Engaging with the Board about the report<a class="headerlink" href="#engaging-with-the-board-about-the-report" title="Permalink">&para;</a></h2>
<p>Project reports are not a one-directional form of communication. They are
also an opportunity to engage with the Board. Project chairs are welcome to
<a href="/foundation/board/meeting#attend">attend the Board meeting as a guest</a> and discuss their report. They may also highlight specific
issues that they want the Board to consider (either in the report, or by requesting a
broader discussion item for the agenda).</p>
<p>Of course, chairs may also take the opportunity to raise any of these discussions on the
Board@ mailing list at any time, inside or outside of their reporting period.</p>
<p>Each time you need to submit a report, a Director will be assigned at random as the "Shepherd" for your project report.
They will be responsible for following up your report if it is late, describing the report
during the meeting if there are significant comments or a lack of approval, and conveying
any followup messages or actions to your PMC after the meeting.</p>
<p>As Directors review the report in the lead-up to the meeting, they may add comments into
the agenda alongside your report. We encourage project chairs to follow this <a href="/dev/pmc.html#board-feedback">board feedback</a>
(currently by watching for SVN commits or using the <a href="https://whimsy.apache.org/board/agenda/">Whimsy Agenda tool</a>), and to respond in advance of the meeting when
practical.</p>
<p>The <a href="/foundation/board/meeting">board meeting</a> typically follows this pattern:</p>
<ol>
<li>Near the beginning of the month, the agenda is created and reminders are sent to projects
due to report in the current cycle.</li>
<li>Those responsible add reports to the agenda over the following weeks, up until the due date for the
meeting.</li>
<li>Directors review submitted reports at their convenience, and mark them as
"pre-approved" if there are no concerns. They sometimes add comments or requests for more
information, or edit the content for obvious corrections.</li>
<li>Shepherds are assigned close to the meeting, and become more familiar with those
project reports.</li>
<li>A summary of the reports and any comments is sent to the Board mailing list in the 24
hours prior to the meeting.</li>
<li>During the meeting, the Board Chair moves quickly through reports that have received 5 or more
"pre-approvals" and have no significant comments.</li>
<li>Reports with significant comments, items for discussion, or a lack of pre-approval will
be handed over to the shepherd, who will facilitate discussion and recommend any
further action during the meeting.</li>
<li>A summary is sent to all committers after the Board meeting, letting them know of the main
outcomes.</li>
<li>Any project reports that were not approved or were missing are added to the reminder list for the
subsequent month.</li>
<li>Shepherds reach out to project chairs with specific action items arising in the meeting in reponse to their
reports.</li>
<li>The Secretary sends any comments on your report by directors to your project's private@ list
shortly after the meeting concludes.  This gives you brief feedback
from the meeting, and a chance to enage with the board either to answer questions
or to ask for advice.  If the board has questions for your project, <a href="/dev/pmc.html#board-feedback">reply-all and answer them</a>.</li>
<li>Reports are published as part of the minutes, when approved in the subsequent monthly meeting of the
Board of Directors.</li>
</ol>
<p>As you can see, ensuring we receive your report on time, that it includes all necessary details, and that you address any comments greatly enhances the flow of the Board meeting, which needs to cover more than
80 project and podling reports each month, in addition to other business.</p>

</div>  </main>

  <!-- Footer -->
  <footer class="bg-primary">
    <div class="container">
      <div class="row">
        <br />
        <div class="col-sm-1">

        </div>
        <div class="col-sm-2">
          <h5 class="white">Community</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://community.apache.org/">Overview</a></li>
            <li><a href="/foundation/conferences.html">Conferences</a></li>
            <li><a href="http://community.apache.org/gsoc.html">Summer of Code</a></li>
            <li><a href="http://community.apache.org/newcomers/">Getting Started</a></li>
            <li><a href="/foundation/how-it-works.html">The Apache Way</a></li>
            <li><a href="https://tac.apache.org">Travel Assistance</a></li>
            <li><a href="/foundation/getinvolved.html">Get Involved</a></li>
            <li><a href="/foundation/policies/conduct.html">Code of Conduct</a></li>
            <li><a href="http://community.apache.org/newbiefaq.html">Community FAQ</a></li>
            <li><a href="/memorials/">Memorials</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Innovation</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="http://incubator.apache.org/">Incubator</a></li>
            <li><a href="http://labs.apache.org/">Labs</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Tech Operations</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/dev/">Developer Information</a></li>
            <li><a href="/dev/infrastructure.html">Infrastructure</a></li>
            <li><a href="/security/">Security</a></li>
            <li><a href="http://status.apache.org">Status</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Press</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/press/">Overview</a></li>
            <li><a href="https://blogs.apache.org/">ASF News</a></li>
            <li><a href="https://blogs.apache.org/foundation/">Announcements</a></li>
            <li><a href="https://twitter.com/TheASF">Twitter Feed</a></li>
            <li><a href="/press/#contact">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-2">
          <h5 class="white">Legal</h5>
          <ul class="list-unstyled white" role="menu">
            <li><a href="/legal/">Legal Affairs</a></li>
            <li><a href="/legal/dmca.html">DMCA</a></li>
            <li><a href="/licenses/">Licensing</a></li>
            <li><a href="/foundation/marks/">Trademark Policy</a></li>
            <li><a href="/foundation/records/">Public Records</a></li>
            <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
            <li><a href="/licenses/exports/">Export Information</a></li>
            <li><a href="/foundation/license-faq.html">Licensing FAQ</a></li>
            <li><a href="/foundation/contact.html">Contacts</a></li>
          </ul>
        </div>

        <div class="col-sm-1">
        </div>

      </div>
      <hr class="col-lg-12 hr-white" />
      <div class="row">
        <div class="col-lg-12">
          <p class="text-center">Copyright &#169; 2023 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>