For Podlings in the Apache Incubator.

The Apache Project Maturity Model defines what constitutes a healthy Apache project. It is the standard used to decide if a podling is ready to graduate.

You don’t need to memorize or “pass” the model like a test. Instead, use it as a living guide throughout the incubation process.


🏁 At Project Start

  • Skim the whole model to see what’s expected at graduation.
  • Pay attention early to:
    • Community → encourage multiple contributors, avoid single-vendor control.
    • Independence → build a project identity as ASF-owned, not “Company X’s project.”
    • Consensus → start all decisions on the public mailing list.
    • Branding → always use “Apache Foo (incubating)” and correct misuse quickly.

Problems in these areas are the most difficult to rectify later.


📦 Before Your First Release

Focus on Code and Licenses and Copyright.

  • Code: Make sure your code and issue tracker are in ASF infrastructure, and all contributions are tracked openly.
  • Licenses and Copyright:
    • LICENSE and NOTICE files are correct.
    • All dependencies use ASF-approved licenses.
    • Contributors confirm their work can be donated under the Apache License.
  • Releases: Plan to run a release vote the ASF way:
    • Signed source release.
    • Vote held on the dev@ list.
    • Minimum 72-hour voting window.
    • Results posted to the mailing list.

📊 During Incubation (every 3–6 months)

Use the model as a self-check and mention progress in podling reports.

  • Community: Are new contributors joining? Is influence spread across individuals or companies?
  • Consensus: Are significant changes discussed openly before action is taken?
  • Independence: Would the project continue if one company left?
  • Releases: Are you producing ASF-compliant releases without mentors driving the process?
  • Branding: Are you consistently using “Apache Foo (incubating)” and checking third-party use of ASF marks?

Reporting steady improvements shows maturity to the IPMC.


🎓 Before Graduation

Do a full run-through of the model as a readiness check:

  • Code: Entirely ASF-hosted, with decisions made on ASF lists and trackers. Security issues are reported and managed in a responsible manner.
  • Licenses and Copyright: LICENSE/NOTICE files correct and dependencies cleared. All code contributions have the right provenance.
  • Releases: A podling can independently produce ASF releases without the need for mentors. Releases are regular and show an active, healthy project.
  • Community: A sustainable and diverse PPMC and committer base, open to new contributors.
  • Consensus: Decisions made by discussion and voting on the public list, using ASF practices (lazy consensus, majority voting).
  • Independence: Clearly an ASF project, not “Company X’s project.” No single company dominates decision-making.
  • Oversight: Reports filed on time, and the podling responds constructively to IPMC feedback.

If you find gaps, fix them before starting a graduation vote.


🔑 Key Tip

Don’t wait until the end. Podlings that check against the Maturity Model early and often graduate more smoothly because they build ASF practices into their culture from the start.

  • No labels