Project Maintenance Processes
=============================

Trusted Firmware-A (TF-A) project follows the generic `trustedfirmware.org
Project Maintenance Process`_. The present document complements it by defining
TF-A project-specific decisions.

How to become a maintainer?
---------------------------

Qualifying Criteria
~~~~~~~~~~~~~~~~~~~

To be elligible to become a maintainer for TF-A project, all criteria outlined
`here`_ must be fullfilled. These are:

- Being an active member of the project for at least a couple of years.

- Having contributed a substantial number of non-trivial and high-quality
  patches.

- Having reviewed a substantial number of non-trivial patches, preferably in the
  generic layer, with high-quality constructive feedback.

- Behaving in a professional and polite way, with the best interests of the
  project at heart.

- Showing a strong will to improve the project and to do the right thing, rather
  than going for the quick and easy path.

- Participating in design discussions on the development mailing list and during
  TF-A tech forums calls.

- Having appropriate bandwidth (minimum 2 hours per week) to deal with the workload.

Election Process
~~~~~~~~~~~~~~~~

To put an individual's name up for election,

#. Send an email to all existing TF-A maintainers, asking whether they have any
   objections to this individual becoming a TF-A maintainer.

#. Give existing maintainers one calendar week to participate in the discussion.

#. If there are objections, the existing maintainers should try to resolve them
   amongst themselves. If they cannot, this should be escalated to the
   trustedfirmware.org Technical Steering Commitee (TSC).

#. If there are no (more) objections, announce the news on the TF-A mailing list
   and update the list of maintainers on the :ref:`Project
   Maintenance<maintainers>` page.

.. _trustedfirmware.org Project Maintenance Process: https://trusted-firmware-docs.readthedocs.io/en/latest/generic_processes/project_maintenance_process.html
.. _here: https://trusted-firmware-docs.readthedocs.io/en/latest/generic_processes/project_maintenance_process.html#how-to-become-a-maintainer
