---
title: Podling Maturity Assessment
layout: default
---

      <div class="container mb-5 pt-5">
        <div class="col-2 sidenav-menu pt-3">
          <div class="pb-3 text-uppercase"><strong>Community</strong></div>
          <ul class="list-unstyled mb-3">
            <li><a href="community.html">Contact Us</a></li>
            <li><a href="community-policies.html">Policies</a></li>
            <li><a href="community-maturity-model-report.html">Maturity model report card</a></li>
            <li><a href="community-team.html">Team</a></li>
          </ul>
        </div>

        <div class="col-8 pt-3 offset-4">
          <h2 class="pb-3 mb-2">Unomi Podling Maturity Assessment</h2>

          <h3>Overview</h3>
          <p>
            This is an assessment of the Unomi podling’s maturity, meant to help inform the decision (of the mentors, community, Incubator PMC and ASF Board of Directors) to graduate
            it as a top-level Apache project. It is based on the ASF project maturity model at <a target="_blank" href="https://community.apache.org/apache-way/apache-project-maturity-model.html">https://community.apache.org/apache-way/apache-project-maturity-model.html</a>
            Maintaining such a file is a new, experimental idea as part of the continuous improvement of the ASF incubation process.
          </p>

          <h3>Status of this document</h3>
          <p>
            Updated 2018-10-09 with the latest status of the project.
          </p>

          <h3>Overall assessment</h3>
          <p>
            Just introduced this report card, we will need to evaluate all the model’s parts to see how we fare so far.
          </p>

          <h3>Maturity model assessment</h3>
          <p>
            Mentors and community members are encouraged to contribute to this and comment on it.
          </p>

          <!-- Code -->
          <h4 class="pt-5 pb-3">Code</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>CD10</strong></td>
                <td>The project produces Open Source software, for distribution to the public at no charge.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>everything is hosted at the Apache Software Foundation</td>
              </tr>
              <tr>
                <td><strong>CD10</strong></td>
                <td>The project produces Open Source software, for distribution to the public at no charge.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>everything is hosted at the Apache Software Foundation</td>
              </tr>
              <tr>
                <td><strong>CD20</strong></td>
                <td>The project’s code is easily discoverable and publicly accessible.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
              <td>it is linked from the main project site and accessible in the public ASF git repository</td>
              </tr>
              <tr>
                <td><strong>CD30</strong></td>
                <td>The code can be built in a reproducible way using widely available standard tools.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Apache Unomi can be built with Apache Maven in the usual way, using "mvn clean install" from the root of the project.</td>
              </tr>
              <tr>
                <td><strong>CD40</strong></td>
                <td>The full history of the project’s code is available via a source code control system, in a way that allows any released version to be recreated.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>everything is in the ASF Git repository.</td>
              </tr>
              <tr>
                <td><strong>CD50</strong></td>
                <td>The provenance of each line of code is established via the source code control system, in a reliable way based on strong authentication of the committer. When third-party contributions are committed, commit messages provide reliable information about the code provenance.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Only ASF committers with CLAs may contribute to the project.</td>
              </tr>
            </tbody>
          </table>

          <!-- License and Copyright -->
          <h4 class="pt-5 pb-3">License and Copyright</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>LC10</strong></td>
                <td>The code is released under the Apache License, version 2.<i>0.</i></td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>A LICENSE file is also at the root of the ASF Git repository</td>
              </tr>
              <tr>
                <td><strong>LC20</strong></td>
                <td>Libraries that are mandatory dependencies of the project’s code do not create more restrictions than the Apache License does.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>NOTICE files contain all the information and has been reviewed on two releases already</td>
              </tr>
              <tr>
                <td><strong>LC30</strong></td>
                <td>The libraries mentioned in LC20 are available as Open Source software.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>See LC20</td>
              </tr>
              <tr>
                <td><strong>LC40</strong></td>
                <td>Committers are bound by an Individual Contributor Agreement (the “Apache iCLA”) that defines which code they are allowed to commit and how they need to identify code that is not their own.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>All committers have registered iCLAs</td>
              </tr>
              <tr>
                <td><strong>LC50</strong></td>
                <td>The copyright ownership of everything that the project produces is clearly defined and documented.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>NOTICE file is up-to-date with all copyright ownership.</td>
              </tr>
            </tbody>
          </table>

          <!-- Releases -->
          <h4 class="pt-5 pb-3">Releases</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>RE10</strong></td>
                <td>Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Three major releases have been produced so far and have been reviewed by IPMCs</td>
              </tr>
              <tr>
                <td><strong>RE20</strong></td>
                <td>Releases are approved by the project’s PMC (see CS10), in order to make them an act of the Foundation.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Happened for three major releases already</td>
              </tr>
              <tr>
                <td><strong>RE30</strong></td>
                <td>Releases are signed and/or distributed along with digests that can be reliably used to validate the downloaded archives.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>See the releases <a href="download.html">here</a></td>
              </tr>
              <tr>
                <td><strong>RE40</strong></td>
                <td>Convenience binaries can be distributed alongside source code but they are not Apache Releases – they are just a convenience provided with no guarantee.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>See the releases <a href="download.html">here</a></td>
              </tr>
            </tbody>
          </table>

          <!-- Quality -->
          <h4 class="pt-5 pb-3">Quality</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>QU10</strong></td>
                <td>The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project's quality is tracked through Apache's JIRA issue tracking system, and is released regularly to improve both overall quality as well as performance.</td>
              </tr>
              <tr>
                <td><strong>QU20</strong></td>
                <td>The project puts a very high priority on producing secure software.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Security issues are treated with the highest priority.</td>
              </tr>
              <tr>
                <td><strong>QU30</strong></td>
                <td>The project provides a well-documented channel to report security issues, along with a documented way of responding to them.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The website provides <a href="community.html">a link to the ASF security information.</a></td>
              </tr>
              <tr>
                <td><strong>QU40</strong></td>
                <td>The project puts a high priority on backwards compatibility and aims to document any incompatible changes and provide tools and documentation to help users transition to new features.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project exposes an API that is <a href="https://www.oasis-open.org/committees/cxs/">specified by an OASIS standard</a>.
                  Also, for APIs outside of the specification, compatibility is a major focus but if not always possible, deprecations
                  and migration documents are produced.</td>
              </tr>
              <tr>
                <td><strong>QU50</strong></td>
                <td>The project strives to respond to documented bug reports in a timely manner.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project uses <a href="https://issues.apache.org/jira/projects/UNOMI/summary">Apache's JIRA platform</a> to handle
                  bugs as well as any other types of issues reported on it. A focus is put on making sure that issues are responded to swiftly.</td>
              </tr>
            </tbody>
          </table>

          <!-- Community -->
          <h4 class="pt-5 pb-3">Community</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>CO10</strong></td>
                <td>The project has a well-known homepage that points to all the information required to operate according to this maturity model.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>See the <a class="externalLink" target="_blank" href="http://unomi.incubator.apache.org">project’s home page</a> that includes a <a href="contribute.html">contribute</a> section
                  that describes how to become a committer as well as <a href="contribute-become-a-committer.html">several</a> <a href="contribute-committer-guide.html">documents</a> for on-board newcomers quickly</td>
              </tr>
              <tr>
                <td><strong>CO20</strong></td>
                <td>The community welcomes contributions from anyone who acts in good faith and in a respectful manner and adds value to the project.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>This is a part of the <a href="contribute.html">contribution</a> guide. Here is an example of a recent addition of a committer and the way he was welcome, e.g., <a href="https://lists.apache.org/thread.html/f616d6894ae665325b60c829bb641bfaa43a2c1e354a930340b9645b@%3Cdev.unomi.apache.org%3E">this</a></td>
              </tr>
              <tr>
                <td><strong>CO30</strong></td>
                <td>Contributions include not only source code, but also documentation, constructive bug reports, constructive discussions, marketing and generally anything that adds value to the project.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>
                  The <a href="contribute.html">contribution guide</a> specifically calls out many avenues for contribution. Specifically, several contributors have contributed documentation or bug fixes.
                </td>
              </tr>
              <tr>
                <td><strong>CO40</strong></td>
                <td>The community is meritocratic and over time aims to give more rights and responsibilities to contributors who add value to the project.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>A specific <a href="contribute-become-a-committer.html">"become a contributor"</a> page is publicly available that describes the process of how to gain more rights and responsibilities</td>
              </tr>
              <tr>
                <td><strong>CO50</strong></td>
                <td>The way in which contributors can be granted more rights such as commit access or decision power is clearly documented and is the same for all contributors.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Again, the same <a href="contribute-become-a-committer.html">"become a contributor"</a> page contains all this information.</td>
              </tr>
              <tr>
                <td><strong>CO60</strong></td>
                <td>The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project works to build consensus. All votes have been unanimous so far. Usually a discussion happens before a vote on a technical or release issue, so the voting process is rarely a problem. Also, in the <a href="contribute-become-a-committer.html">become a contributor</a> page, a code of conduct is put in place to
                ensure contributors have a reference to it.</td>
              </tr>
              <tr>
                <td><strong>CO70</strong></td>
                <td>The project strives to answer user questions in a timely manner.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project typically provides detailed answers to user questions within a few hours via its <a href="https://lists.apache.org/list.html?users@unomi.apache.org">users@ mailing list</a>.</td>
              </tr>
            </tbody>
          </table>

          <!-- Consensus Building -->
          <h4 class="pt-5 pb-3">Consensus Building</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>CS10</strong></td>
                <td>The project maintains a public list of its contributors who have decision power – the project’s PMC (Project Management Committee) consists of those contributors.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project has a <a href="community-team.html">team page</a> that lists all the contributors along with their associated roles.</td>
              </tr>
              <tr>
                <td><strong>CS20</strong></td>
                <td>Decisions are made by consensus among PMC members and are documented on the project’s main communications channel. Community opinions are taken into account but the PMC has the final word if needed.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>PPMC decisions have been unonimous so far, including voting new committers and new PPMC members. The project has been making important decisions on the project mailing lists. All community decisions have had a consensus without any PPMC action needed.</td>
              </tr>
              <tr>
                <td><strong>CS30</strong></td>
                <td>Documented voting rules are used to build consensus when discussion is not sufficient.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project uses the standard ASF voting rules. Voting rules are clearly stated before the voting starts for each individual vote.</td>
              </tr>
              <tr>
                <td><strong>CS40</strong></td>
                <td>In Apache projects, vetoes are only valid for code commits and are justified by a technical explanation, as per the Apache voting rules defined in CS30.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project hasn’t used a veto at any point and relies on robust code reviews, especially for any issues around licenses problems.</td>
              </tr>
              <tr>
                <td><strong>CS50</strong></td>
                <td>All “important” discussions happen asynchronously in written form on the project’s main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project has been making important decisions on the project mailing lists. When communication occurs on side channels (Slack, face-to-face mostly), the mailing list is always used to communicate important information to the community.</td>
              </tr>
            </tbody>
          </table>

          <!-- Independence -->
          <h4 class="pt-5 pb-3">Independence</h4>
          <table class="table table-striped table-sm">
            <thead class="thead-dark">
              <tr>
                <th>Code</th>
                <th>Description</th>
                <th>Status</th>
                <th>Comment</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td><strong>IN10</strong></td>
                <td>The project is independent from any corporate or organizational influence.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>Although the project originated from a donation by a single corporate entity, it has strived to add external contributors and has now PPMC members that are part of 4 different corporations (Adobe, Talend, Yupiik, Jahia) and some contributors have
                also moved on to new corporations.</td>
              </tr>
              <tr>
                <td><strong>IN20</strong></td>
                <td>Contributors act as themselves as opposed to representatives of a corporation or organization.</td>
                <td class="text-center"><i class="fas fa-check text-success"></i></td>
                <td>The project has experienced PPMC members that will make sure that contributors will be acting freely as individuals.</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
