Title: What is Apache Petri?
version: 1.0
<!-- Licensed under ALv2 -->

![[]Apache Petri Logo](images/logo.svg) {.float-right}

["Title: %0, Version: %1" title version]

[include "/tmp/template/source/content/projects/projects.snippet"]

{{ relative_source_path }} - {{ version }} - {{ board.1.name }} - {{ tester }}

{{ ci.boardchair.roster }} - {{ ci.tac.chair }} - {{ ci.tacky.bear }}

{{ board.30.name }}

The Apache Petri (as in “petri dish” – where cultures are grown and bloom) committee
assists external project communities interested in becoming an Apache project to
learn how The Apache Software Foundation (ASF) works, its views on community, and
how to build a healthy community for the long -term.

Petri’s mission is to mentor existing external communities (“cultures”) about
“The Apache Way” by focusing on community governance that includes discussions
about ASF policies. The mentoring and education is conducted on a mailing list.

The primary goal is to reach a point where a recommendation to the ASF Board can
be made to construct a new Apache Project Management Committee (PMC) for the
external community.

## About "The Apache Way" {#the-way}

- [[]The Apache Way](https://www.apache.org/theapacheway/index.html)
- [[]Sustainable Open Source](https://s.apache.org/GhnI)
- [[]How it Works](https://www.apache.org/foundation/how-it-works.html)
- [[]Merit](https://www.apache.org/foundation/how-it-works.html#meritocracy)
- [[]Success at Apache](https://blogs.apache.org/foundation/category/SuccessAtApache)

## Which communities are currently mentored by Apache Petri?

- [[]BuildStream](/buildstream)

## How can our project/community apply for Apache Petri mentorship?

Email discuss@petri.apache.org (public list; subscription not required) or private@petri.apache.org (private list,
only Apache Petri PMC members and Apache Members can subscribe) and introduce yourself! We don’t have any forms or
questionnaires, but may introduce these should the need arise.

## Do you have additional questions?

Please read our [[]FAQ](/faq) or ask questions on discuss@petri.apache.org

## Petri Repositories and Issue Tracking

- [[]Website](https://github.com/apache/petri-site)
- [[]Issues](https://github.com/apache/petri-site/issues)

### Petri Status Files

- [[]info.yaml](https://petri.apache.org/info.yaml)
- [[]petri.rdf](https://projects.apache.org/project.html?petri)

<p>["Title: %0, Version: %1" title version]</p>

| Office    | Individual  |
|-----------|-------------|  [for projects]
| V.P., [if-any projects.site][[][end]Apache [projects.display_name][if-any projects.site]]([projects.site])[end] | [projects.chair] |[end]
