Migrate TYPO3 Core Issues from Forge to GitHub
There have been multiple discussions regarding this topic, going back more than 3 years, and I know that people like Helmut Hummel and Mathias Schreiber have been proposing this to me back then, but I didn’t listen to them (“not now”), but I feel this is the right time.
I propose to move all tickets of this project (right now more than 37.000 tickets) to GitHub.com/TYPO3/ while keeping ALL existing Issue IDs, all comments, migrate existing categories to tags.
To be clear: The current workflow using Gerrit as review system is NOT part of this discussion, topic or migration, as this is a separate task, with various other up/downsides. The current plan is to not touch this area around Gerrit and leave that workflow as is.
I do have a small script for testing purposes that acts as a PoC - so it’s not some hypothetical question but rather a valid actual request to do the migration. With this discussion I’d like to find out what downsides are there (or real show stoppers) and if people find obstacles that I didn’t see yet, and we can summarize and see if we can solve this.
As a side note: Forge has a unique issue number for new issues that are installation-wide - so adding a new issue on EXT:gridelements on forge.typo3.org raises the main issue number further, so this is not bound to a project, but used for whole forge, which means that we will have “gaps” (as we currently do) between the existing issue numbers.
- Instead of pointing to forge.typo3.org, all tickets should be maintained via GitHub. Everybody contributing to TYPO3 Core needs to have a GitHub account - this is then a new requirement then.
- All issues are being copied via a script to GitHub, while maintaining issue ID, comments, links, and should be redirected to GitHub
- Forge will not be mentioned in any Core contribution anywhere anymore
- Server team needs to be involved in the migration as we need to work with some massive Forge API requests
- People who want to be involved in the migration should contact me, so we can distribute the work load
- We do a test-run of migrations into a test project / org in GitHub to see what works and what is an issue
- We choose a timeframe of e.g. 1 day to migrate all tickets, and then disable issues on forge
- All issues, comments, categories will be migrated
- Issue numbers that are not part of the project get created on GitHub as empty ticket, and will then be deleted, to maintain the “old” issue number
- forge.typo3.org gets an info and 301 redirects to GitHub tickets for all existing valid tickets
- Adapt forger.typo3.org and Gerrit Hooks to work with Forge
- Adapt Contribution Workflow Guide
- We currently use GitHub for various other contribution places (e.g. Fluid Standalone, docs, get.typo3.org), and people are very familiar and comfortable with the way of submitting tickets via GitHub
- We only use Forge for permissions and issues, nothing else (no wiki) anymore, due to lack of usability (IMHO)
- Formatting issues is very pleasant!
- GitHub offers a more flexible API to fetch issues
- GitHub Issues offers multiple templates for adding issues, add integrations
- Maintaining forge (Ruby-based) is painful, and is an issue when it comes to customizations and integrations, and I believe (but server team is welcome to take part of this discussion) that this would be a relieve for them as well
- Main point for me: We go with “standards” (GitHub) instead of a custom solution (forge) for any kind of contributions in the future
- Not all “custom fields” will be available on GitHub, but this also gives us a chance if we want to keep them (e.g. “percentage done”)
- I still need to investigate how to achieve “Epic” and subtask issues (haven’t done that)
- This might be a big change for existing contributors
- Forge has a nice “roadmap” functionality with the target version summary, haven’t seen that on GitHub yet.
- Obstacle: We need to see how we can achieve security-related issues and workflows, I will ping Olly on this.
Remarks and notes
The timeline would be - if this change is accepted - to be roughly 8 weeks, I would propose, after having a work group (feel free to leave a comment if you want to help out), to publish a news with all the details and timing information. At least Riccardo (who I talked to before on that) should be on this task force.
At this point of time, this RFC is ONLY about a possibility to move to GitHub, as I have done investigations there, and NOT about moving to GitLab. Moving to GitLab is IMHO a separate discussion, which can be handled, and if the majority wants GitLab.com instead of GitHub, that’s something to be discussed as well, but not really part of this discussion. So please open up a separate discussion proposal about moving issues to GitLab.com, if you desperately want that.
Topic Initiator: Benni Mack