Workflow
On this page:
This document describes the complete workflow from ticket creation to deployment for TYPO3.org projects.
Prerequisites
GitLab Account Before you can contribute, you need a GitLab account that corresponds to your TYPO3.org username. You can manage your TYPO3.org account at my.typo3.org.
Access Requirements - For most projects: TYPO3.org account with GitLab access - For extensions.typo3.org (TER): Additional signed NDA required due to GDPR (user data protection)
If you don't have access to GitLab, the reason might be that your username is not present in the LDAP environment. To solve this, log in to https://typo3.org/ once.
User Roles & Permissions
- Contributors: Can create feature branches, push commits, and create merge requests
- Maintainers: Can merge into develop and main branches, review and approve merge requests
Important
Only users with Maintainer status can merge into develop and main branches.
All other contributors must create merge requests for review.
General Workflow
- Log in to GitLab
- If you don't have access to the T3O project, ask one of the project maintainers
-
Look into the different repositories. Priorities are:
- Testing and reviewing open merge requests
- Solving existing issues
- Creating new issues
- If you have found a merge request or issue, assign it to yourself
- Work on your local development environment
Issue Workflow (Contributors)
- Find an Issue: Browse the repository issues and assign one to yourself
-
Create Feature Branch: Always branch from
develop:git checkout develop git pull origin develop git checkout -b feature/issue-number-descriptionCopied!Or use GitLab's interface to create a merge request from an issue.
-
Development: Work on your local environment (see Local Environment)
- Make small, logical commits
- Push commits regularly to your feature branch
- Test your changes thoroughly
- Ensure your branch stays up-to-date with
develop
-
Create Merge Request:
- Target:
developbranch (never directly tomain) - Mark as "Draft" while work is in progress
- Remove "Draft:" when ready for maintainer review
- Add clear description of changes and testing done
- Target:
Coding Standards
Follow TYPO3 Core coding standards:
- PHP: PSR-12 compliant, follow TYPO3 CGL (Coding Guidelines)
- JavaScript: Use modern ES6+ syntax
- CSS/SCSS: Follow BEM methodology where applicable
- Commits: Write clear, descriptive commit messages
Note
Detailed coding standards will be added in future updates.
Merge Request Workflow (Maintainers)
- Review Assignment: Maintainers review and assign merge requests to themselves
- Code Review: Review the code changes carefully
- Local Testing: Test the code locally on your development environment
-
Approval Process:
- If everything is okay: Approve and merge into
develop - If improvements are needed: Request changes and assign back to author
- Ensure all tests pass and code quality standards are met
- If everything is okay: Approve and merge into
- Merge to Develop: Maintainer merges approved feature into
developbranch - Release Process: When ready for production, maintainer merges
developintomain
Note for Contributors: You cannot merge your own requests. A maintainer must review and merge all contributions.
Deployment Process
After successful merge to the main branch:
- Staging: Changes are automatically deployed to staging environment
- Production: Production deployment follows the project's release schedule
- Monitoring: Monitor for any issues after deployment
Branch Strategy & Permissions
Protected Branches - ``main``: Production branch - Maintainers only - ``develop``: Development branch - Maintainers only - ``master``: For extensions - Maintainers only (legacy naming)
Contributor Branches
- Feature branches: feature/issue-number-description - Contributors can create and push
- Hotfix branches: hotfix/description - For critical fixes
Merge Flow .. rst-class:: bignums
- Contributors create feature branches from
develop - Contributors create merge requests targeting
develop - Maintainers review and merge into
develop - Maintainers merge
developintomainfor releases
Warning
Direct pushes to develop and main are restricted to maintainers only.
Getting Help
If you encounter problems:
- Check the FAQ for common issues
- Ask in the TYPO3 Slack #typo3-org channel
- Contact project maintainers directly