Drupal Migration to GitLab
Drupal | Migration Tracker
Background
Drupal evaluated new options for modernizing the product's tooling in an extended process back in December of 2017.
We documented that evaluation process in a series of blog posts, and ultimately selected and moved to GitLab. We're now fully up and running - but are working on ongoing management and feature enhancement to our integration.
- Where we stand now, and our evaluation criteria.
- The options we considered.
- An illustration of what Drupal.org integration with a 3rd party tooling provider could look like.
- A possible implementation plan for this initiative.
- Announcing our migration
- Update on Merge Requests
- Update on the Merge Request Beta
Goals
General goals
- Adopt a developer workflow that will be familiar to the millions of developers outside our community.
- Preserve those unique elements of how we collaborate that have made the Drupal project so successful.
- Many-to-one collaboration: that is to say, many developers collaborating on a single solution to a problem.
- Issue workflow.
- Picking up on long standing issues where other collaborators left off.
- Contribution credit.
- If possible, leverage an expert partner who will help keeping our tooling up to date as open source collaboration tools continue to evolve.
Technical goals
- Retention of our data/ability to migrate.
- Where possible, retain existing Git remote urls for projects.
- Maintainability for a small staff.
- Project maintainer management: including abandoned project reassignment, fork control, security release management, etc.
Feature goals
- Merge/pull requests.
- Code review.
- Inline editing.
- Branch permissioning to allow collaboration on merge/pull requests.
- Administrative tools for managing project maintainership.
- Project management tools that equal or exceed what we have with the issue queues.*
- Extensibility, so that we can preserve areas where the Drupal project is a market leader, such as with our contribution credit system.
*Our tools for issues are very sophisticated on an individual issue level, however we are sorely lacking in tools for grouping and prioritizing sets of issues, ie: issue boards.
Affordability goals
- Given the care with which we must use our funding from the community, any option we consider must be cost neutral with the current cost of maintaining our tools.
Quick Facts
- Timeline: Migration completed, now focused on ongoing integration and feature enhancements.
- Product: GitLab Ultimate
- Project's License: GPL v2+
Current Tooling and Replacements
Tool | Feature | GitLab feature | GitLab edition |
---|---|---|---|
Collaborators
Name | Title | Role | GitLab Username |
---|---|---|---|
Tim Lehnen | CTO | Managing project | hestenet-drupal |
Neil Drumm | Senior Technologist | Technical Lead | drumm |
Ryan Aslett | Senior Developer Services Engineer | CI Lead | mixologic |
Brendan Blaine | Developer | Features & Support | b_man |
Narayan Newton | Infrastructure manager (CTO@Tag1) | Infrastructure | nnewton |
Prioritized Issues
Blockers
-
Object deduplication on Geo secondary not happening if the first sync fails -
Bug: Cannot fork into a namespace with Developer role -
Set CI/CD quota per-project or sub-group -
Add 'commit email' user attribute to the API model for users, ensure it is writeable via the REST API -
Ability to get a static patch file from any 'compare' url - there are multiple issues referencing this problem
Urgent
-
Create project-level policies - Policies MVC -
Select Author in Squash Commit Drupal Core contribution and crediting policies require setting commit authorship in a specific way. - Perhaps this related issue? Credit co-authors in merges
-
Related to the above: Modify merge request author This issue could also help us manage our squash commits with proper attribution.
-
Certain usernames fail to appear in author filters
Important
-
Ease of starting code review- UX issue -
Contribution attribution system for non-code and organizational contributors -
Log file and directory permission management -
Backup/restores of GitLab are de-referenced, which causes all of the work of git object de-duplication to be lost, resulting in a ballooning of backup size -
Prefilled variables on the trigger a manual job screen for an automated pipeline -
Composer package registry re-orders package data
Nice to have
-
Add 'pronouns' user attribute to the API model for users -
Prevent users from changing or adding email addresses
/cc @nuritzi
Edited by Tim Lehnen