The best practices team

Our purpose

We help TYPO3 developers build high-quality extensions.

Our vision

In order to build and hone our expertise, we research QA tools and best practices and try them out. We also share our knowledge with each other and learn from each other.

In addition, we provides templates to copy from.

Our mission

We keep evaluating and adding new helpful tools and examples for best practices to the Tea example extension. Also, we keep current with new versions of PHP, TYPO3, Symfony etc. And we technically align with the TYPO3 core.

We also build and maintain a project builder template for TYPO3 extensions.

That explicitly does not include the following:

  • Develop best practices for projects
  • Set official requirements for extensions

Contribute

Everyone is welcome to contribute. You can either open new issues or provide pull requests within our repository over at GitHub: https://github.com/TYPO3-Documentation/tea. Feel free to join our slack channel and lurk or join our be-weekly meetings.

We are currently lacking expertise in the following areas:

  • Docker / podman
  • Intermediate GitLab-CI and GitHub Actions
  • Acceptance testing
  • Frontend interaction (forms, flash messages, validation,  …)
  • Improving documentation

Your benefits

The following benefits are available if you join our team and work with us:

  • You’ll learn to work with focus inside a team on an open published extension.
  • You’ll learn to work with GitHub as a Git hosting and CI platform.
  • You’ll learn how to catch and fix bugs, covered by tests.
  • You’ll learn best practices for extension development.
  • You’ll learn about fast end-to-end tests via TYPO3 testing framework functional tests.

Join our meetings

We will meet be-weekly on Monday at 6 pm Europe/Berlin on Slack:
#best-practices-team

The next upcoming call is always published within the slack channel. All our meetings are open for guests. Guests are invited to listen and discuss with us. Guests can not take part in our decisions. Please ask a team member for putting a topic on the agenda.

We will also meet on the first Monday each month starting in 2025 February 3rd from 11 am Europe/Berlin to 5 pm Europe/Berlin on Slack for our remote Date.

Daniel Siepmann

Leader
daniel.siepmann(at)typo3.org

Oliver Klee

Member
typo3-coding(at)oliverklee.de

Łukasz Uznanski

Member
l.uznanski(at)macopedia.com

Bernd Sengupta

Member

Feedback

We value and welcome feedback of all kinds, including discussions. You can find out more about providing feedback at our feedback section of the project's readme.

Join the team

Would you like to join the team?
Read our rules  and contact Daniel Siepmann at daniel.siepmann(at)typo3.org or write us within the Fediverse or
Join us at Slack

Our culture

We are a very friendly team, we go out of our way to treat each other well, and we express appreciation for each other's work. We help each other and learn from each other. We hold each other accountable for doing our work and for keeping our promises.

Team members are expected to attend our bi-weekly calls and to spend at least 3 hours per month (on most months) on the team. In addition to the calls, this work could include creating pull requests for code and documentation, doing code reviews, trying out tools, preparing and holding talks, and organizing and coordinating things.

Guests are very welcome to lurk in the team channel and to attend our team calls.

Our Rules, and how we work

We go out of our way to treat each other well.
We abide by the TYPO3 code of conduct.
We do our best to help each other.
We keep our promises and agreements. If someone cannot keep a promise, they are required to inform the group as soon as possible so we can find a way to work around this.

For a non-draft PR, the creator of the PR has the responsibility of regularly keeping it up to date with the main branch (particularly, when there are merge conflicts).
We only update PR branches by rebasing, but never by merging the target branch into it.

Group organization

There are two groups (one being a subgroup of the other):

  • active members: Those who regularly attend our conference calls
  • lurkers: Those who are part of the Slack channel, but do not regularly attend our conference calls

The persons who regularly attend our team calls are also the persons who are allowed to merge pull requests on our projects.
Every community member can join the channel as long as they agree to and follow the rules. Lurking is explicitly encouraged.

How we work

If we need to decide something, we do so at the team conference calls. Everybody who attends can take part in these decisions. We try to find a consensus for decisions, and only very rarely do a majority vote.

For some smaller, urgent things (like skipping a call or some smaller technical decisions), we can also decide via chat in our channel. For those decisions, only the voices of the persons regularly attending the calls are relevant.

We welcome input from outside the group of active members. However, we do not make promises to act on requests or demands from outside this group.

Becoming a member

The following rules apply if you want to become a member of the team:

  1. You have reviewed 2 PRs by the current team members (using comments if you do not have review permissions).
  2. You have got 2 of your non-trivial PRs in our projects merged.
  3. You have been present in 3 consecutive team calls.
  4. You express your wish to join our team (by chatting to or emailing the team lead), to further out purpose/vision/mission, accept the team rules, and are willing to invest some hours per month for this team.
  5. No current team member objects to you joining the team.

The rule of the group lead

Currently, Daniel Siepmann has this role.

Responsibilities:

  • enforce the rules (if necessary)
  • manage the budget
  • help resolve conflicts in the group
  • gracefully step down if they cannot fulfill this role well anymore
  • ensure that we'll have an agenda for our calls
  • ensure that new members are onboarded. This includes:
    • Ensure they feel welcome
    • Share of our mission
    • Share of our rules (and ensure they are acknowledged)
    • Facilitate introduction of new members during our weekly call

Special rights:

  • kick people out of the group if they violate the rules or the code of conduct, and if we cannot resolve this any other way

The team members

Daniel Siepmann

Superpowers:

  • reliable
  • good connection to other teams

Oliver Klee

Superpowers:

  • facilitation
  • building structures and workflows (for groups/teams)
  • improving the readability of text and code
  • giving entertaining, engaging talks and workshops
  • writing automated tests
  • making code as strict as possible, e.g., with PHPStan

Main areas of interest:

  • automated tests (unit, functional)
  • type checking with PHPStan
  • code readability

Łukasz Uznański

Superpowers:

  • provide workforce
  • experience in maintaining extensions (ext:headless)
  • building CI for projects and extensions
  • trying to get into giving talks and workshops
  • knowledge of infrastructure stuff and multi-instance TYPO3 setups (k8s, AWS)