<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="utf-8"/>
    <title>Apache Whimsy</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="/assets/bootstrap-min.css"/>
    <style type="text/css">
      h2 {text-decoration: underline}
      header h2 span {display: none}
      header:hover h2 span {display: inline}
      aside {display: none}
      header:hover aside {margin-left: 4em; display: block; 
        border: 3px solid #B7B; padding: 1em; border-radius: 1em;
        position: absolute; background-color: white}
      aside ol {margin-bottom: 0}
      .footer { 
        margin-top: 20px;
        margin-left: 20px;
      }
    </style>
  </head>
  <body>
    <div class="header container-fluid">
      <div class="row">
        <div class="col-sm-4 hidden-xs">
          <a href="https://www.apache.org/">
            <img title="The Apache Software Foundation" alt="ASF Logo" width="250" height="101" style="margin-left: 10px; margin-top: 10px;" src="https://www.apache.org/foundation/press/kit/asf_logo_small.png"/>
          </a>
        </div>
        <div class="col-sm-3 col-xs-3">
          <a href="/">
            <img title="Whimsy project home" alt="Whimsy hat logo" src="/whimsy.svg" width="145" height="101"/>
          </a>
        </div>
        <div class="col-sm-5 col-xs-9 align-bottom">
          <ul class="nav nav-tabs">
            <li role="presentation">
              <a href="https://github.com/apache/whimsy/">
                Code
              </a>
            </li>
            <li role="presentation">
              <a href="https://lists.apache.org/list.html?dev@whimsical.apache.org">
                Questions
              </a>
            </li>
            <li role="presentation">
              <a href="status/">
                Server status
              </a>
            </li>
            <li role="presentation">
              <a href="/technology">
                About
              </a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  
    <div class="content container-fluid">
      <div class="row">
        <div class="col-md-10 col-md-offset-1">
        <header>
          <h2><a href="http://dictionary.reference.com/browse/whimsy">Whim<span>·</span>sy</a></h2>
          <aside>
            [hwim-zee, wim-] noun, plural whim·sies.
            <ol>
              <li>capricious humor or disposition; extravagant, fanciful, or
              excessively playful expression: a play with lots of whimsy.</li>
              <li>an odd or fanciful notion.</li>
              <li>anything odd or fanciful; a product of playful or capricious
              fancy: a whimsy from an otherwise thoughtful writer.</li>
            </ol>
          </aside>
          <blockquote>
            Whimsy is a site where a set of unnecessary yet highly useful applications are deployed at Apache. 
          </blockquote>
        </header>
          <p>The <a href="http://whimsical.apache.org/">Apache Whimsy PMC</a> manages this server, and maintains the tools here.
             Our focus is on providing organizational information about the ASF and our projects
             in easy to consume ways, and to help automate corporate processes at the ASF to 
             make the paperwork behind the scenes easier for our many volunteers.
          </p>
        </div>
      </div>
      <div class="row">
        <div class="col-md-6">
          <div class="panel panel-primary">
            <div class="panel-heading">
              <h3 class="panel-title">Publicly Acessible Tools</h3>
            </div>
            <div class="panel-body">
              <ul>
                <li><a href="board/minutes/">Board Minutes Collated by PMC/officer/topic</a></li>
                <li><a href="incubator/podlings/by-age">Incubator podlings by age</a></li>
                <li><a href="public/">Generated JSON data files</a></li>
                <li><a href="site/">TLP Website Checks</a></li>
                <li><a href="pods/">Podling Website Checks</a></li>
              </ul>
            </div>
          </div>
        </div>
        <div class="col-md-6">
          <div class="panel panel-primary">
            <div class="panel-heading">
              <h3 class="panel-title">Other Apache Resources</h3>
            </div>
            <div class="panel-body">
              <ul>
                <li><a href="https://selfserve.apache.org/">ASF Self-Service Platform</a></li>
                <li><a href="https://projects.apache.org/">Apache Project Listing</a></li>
                <li><a href="https://people.apache.org/unlistedclas.html">Persons with signed CLAs but who are not (yet) committers.</a></li>
                <li><a href="https://www.apache.org/dev">Apache Developer How-Tos</a></li>
                <li><a href="https://community.apache.org/">Apache Community How-Tos</a></li>
                <li><a href="https://reference.apache.org/">Apache Infra Reference Library</a></li>
              </ul>
            </div>
          </div>
        </div>
      </div>
      <div class="row">
        <div class="col-md-6">
          <div class="panel panel-info">
            <div class="panel-heading">
              <h3 class="panel-title">Available To Committers</h3>
            </div>
            <div class="panel-body">
              <ul>
                <li><a href="roster/committer/__self__">Your personal details</a></li>
                <li><a href="roster/">Rosters</a>
                  including:
                  <a href="roster/committee/">PMCs</a>
                  |
                  <a href="roster/nonpmc/">other committees</a>
                  |
                  <a href="roster/ppmc/">podlings</a>
                  |
                  <a href="roster/group/">groups</a>
                  |
                  <a href="roster/members">members</a>
                  |
                  <a href="roster/committer/">committers</a>
                </li>
                <li><a href="committers/subscribe">Subscribe and unsubscribe from mailing lists</a></li>
                <li><a href="committers/svn-info">svn info command helper</a></li>
                <li><a href="committers/moderationhelper">Helper for mailing list moderators (Beta)</a></li>
                <li><a href="committers/tools">Listing of more Whimsy Tools</a></li>
              </ul>
            </div>
          </div>
        </div>
        <div class="col-md-6">       
          <div class="panel panel-info">
            <div class="panel-heading">
              <h3 class="panel-title">Available to Members and Officers</h3>
            </div>
            <div class="panel-body">
              <ul>
                <li><a href="board/agenda/">Board Agenda</a></li>
                <li><a href="officers/acreq">New Account Request</a></li>
                <li><a href="roster/icla/">ICLAs</a></li>
                <li><a href="officers/mlreq">Mailing List Request</a></li>
                <li><a href="treasurer/bill-upload">Bill Upload</a></li>
                <li><a href="board/subscriptions">PMC-chair vs board subscriptions</a></li>
                <li><a href="officers/list-traffic.cgi">Board mail traffic analysis</a></li>
              </ul>
            </div>
          </div>
        </div>
      </div>
      <div class="row">
        <div class="col-md-6">
          <div class="panel panel-info">
            <div class="panel-heading">
              <h3 class="panel-title">Available to Members</h3>
            </div>
            <div class="panel-body">
              <ul>
                <li><a href="members/subscriptions/">Member subscription cross-checks</a></li>
                <li><a href="members/watch/">Member watch</a></li>
                <li><a href="members/whatif">STV Explorer</a></li>
                <li><a href="members/proxy">Proxy form (ASF members meeting)</a></li>
                <li><a href="members/security-subs">Security Mailing List Subscriptions</a></li>
                <li><a href="members/archivers">Archiver Subscription Issues - ignoring missing mail-archive subs</a></li>
                <li><a href="members/archivers/mail-archive">Archiver Subscription Issues - including missing mail-archive subs</a></li>
                <li><a href="members/archivers/all">Archiver Subscription Checks (all entries)</a></li>
            </div>
          </div>
        </div>
        <div class="col-md-6">
          <div class="panel panel-warning">
            <div class="panel-heading">
              <h3 class="panel-title">Available to Secretarial Team</h3>
            </div>
            <div class="panel-body">
              <ul>
                <li><a href="secretary/workbench/">Secretary Workbench</a></li>
                <li><a href="secretary/icla-lint">Lint test for iclas.txt</a></li>
                <li><a href="secretary/ldap-check">LDAP members and owners checks (may take a while to respond)</a></li>
                <li><a href="secretary/ldap-check-committers">Detailed LDAP missing committer check; shows subs and mods if any (may take a while to respond)</a></li>
                <li><a href="secretary/memapp_check">Check members.txt against members_apps</a></li>
                <li><a href="secretary/public-names">Public names: LDAP vs icla.txt</a></li>
                <li><a href="secretary/ldap-names">LDAP name check: compare cn, sn, givenName</a></li>
                <li><a href="secretary/ldap-names?skipSN">LDAP name check: compare cn, sn, givenName (only check givenName)</a></li>
                <li><a href="secretary/response-time">Response time test</a></li>
              </ul>
            </div>
          </div>        
        </div>
      </div>
    </div>

    <div class="footer container-fluid">
      <div class="panel panel-default">
        <div class="panel-heading">
          <h3 class="panel-title">License And Credits</h3>
        </div>
        <div class="panel-body">
          <p>
            Copyright &copy; 2015-2020 The Apache Software Foundation, Licensed under
            the <a href="http://www.apache.org/licenses/LICENSE-2.0" rel="license">Apache License, Version 2.0</a>.
            | 
            <a href="https://www.apache.org/foundation/policies/privacy">Privacy Policy</a>
            <br />
          Apache&reg;, the names of Apache projects, and the feather logo are either <a href="http://www.apache.org/foundation/marks/list/">registered trademarks or trademarks</a> of the Apache Software Foundation in the United States and/or other countries.
          </p>
        </div>
      </div>
    </div>
    <script src="/assets/jquery-min.js" lang="text/javascript"></script>
    <script src="/assets/bootstrap-min.js" lang="text/javascript"></script>
  </body>
</html>
