The original naming scheme comes from a time where we had to distinguish between TYPO3 (the CMS) and the Flow/Neos packages. As time went by, the need for that distinction disappeared and our package-publishing mechanism has evolved: The main repository is now a monorepo, which contains the TYPO3 Core and system extensions. The actual packages are split from this repository and published separately as a read-only repository.
To avoid confusion for newcomers and align our naming scheme with other projects, we decided to rename our repository typo3/typo3.
Who Is Affected
This change concerns you in any of the following cases:
- You are an active core developer.
- You cloned the TYPO3.CMS repository directly from GitHub.
- You are using a reference to the GitHub repository in your projects.
As GitHub will provide redirects for a while, projects and clones will not break immediately. However, GitHub will show a warning and you should use the new URLs.
Timeline
The change will come into effect on Monday, 19 July.
Changes for Core Developers
We still use Gerrit for our review and quality assurance system, so nothing will change in the general workflow process for new patches.
The current core development workflow has been using a git clone directly from git.typo3.org and a special pushInsteadOf config to push to Gerrit (the review system).
Before
The basic flow used to look like this:
git clone git://git.typo3.org/Packages/TYPO3.CMS.git . git config url."ssh://<YOUR_TYPO3_USERNAME>@review.typo3.org:29418".pushInsteadOf git://git.typo3.org git config remote.origin.push +refs/heads/master:refs/for/master
After
The recommended—new—way of doing this is:
git clone https://github.com/typo3/typo3.git . git config remote.origin.pushurl "ssh://<username>@review.typo3.org:29418/Packages/TYPO3.CMS.git" git config remote.origin.push +refs/heads/master:refs/for/master
The first line changes cloning from our own infrastructure on git.typo3.org to the new GitHub URL, as it is faster and maintained by GitHub.
The second line sets the remote pushUrl to Gerrit—this way, the pushInsteadOf line is no longer needed.
The third line ensures that master pushes are automatically rewritten to refs/for/master, the Gerrit-compatible way of publishing a patch for the master branch. The line can be repeated and adjusted for all other active branches (10.4 for example).
Additional Considerations
If you have an existing .gitconfig file for core development, make sure to change it accordingly:
- Switch the origin to GitHub
- Remove the pushInsteadOf config
- Add the pushUrl config
We recommend cloning using SSH for improved performance and security.
Help and Support
If you have questions or run into problems with these changes, please let us know in the TYPO3 Slack #typo3-cms-coredev channel.