Wikimedia Gitlab Migration Status
The Wikimedia movement supports Gerrit and GitLab for code hosting to reduce change fatigue. Challenges arose during migration to GitLab due to missing features, leading to the recommendation to keep deeply connected repositories on Gerrit.
Read original articleThe Wikimedia movement decided to support both Gerrit and GitLab for code hosting, with a plan to maintain this setup for at least two years to reduce change fatigue. The migration to GitLab started in July 2022, attracting early adopters seeking a GitHub-like workflow. However, challenges arose due to missing features in GitLab, particularly for deeply connected repositories like MediaWiki core and operations projects. These repositories rely on Gerrit's features such as stacked patchsets and test dependency management, which GitLab lacks. Attempts to address these gaps faced obstacles with GitLab's limited extensibility and focus on its paid offerings. As a result, the recommendation is to keep deeply connected repositories on Gerrit to preserve productivity and avoid reimplementing essential features in GitLab. The decision aims to maintain code review efficiency, protect production integrity, and support the unique workflows of critical projects within Wikimedia.
Related
I kind of like rebasing
People debate Git workflows, favoring rebasing for a linear history. Redowan Delowar prefers rebasing to consolidate changes and maintain a clean commit history. They discuss interactive rebasing benefits, squashing commits, handling conflicts, and offer practical tips.
PipeWire 1.2.0 Released
The GitLab repository for PipeWire version 1.2.0 in Aviation restricts new account creation due to spam. Users can access a wiki page for instructions on gaining full permissions.
"GitHub" Is Starting to Feel Like Legacy Software
GitHub faces criticism for performance decline and feature issues like blame view rendering large files. Users find navigation challenging and core features neglected despite modernization efforts. Users consider exploring alternative platforms.
Wikipedia is rolling out dark mode support
The MediaWiki project is enhancing accessibility by adjusting typography, introducing night mode preferences, and engaging with communities for feedback. Changes aim to improve readability and customization options for all users.
Git-PR: patch requests over SSH
A new git collaboration service, git-pr, simplifies self-hosting git servers via SSH. It combines mailing list and pull request workflows, streamlining code collaboration. Users interact in the terminal, enhancing code review with patch requests. Notifications via RSS feeds and state changes reflected in static web assets. The service aims to bridge pull requests and email-based collaboration efficiently.
> we believe that we should stop migrating all repositories unconditionally, and instead keep our two systems: Gerrit and GitLab. Gerrit should remain for the use-case of deeply connected repositories. GitLab should remain for tools, analytics and machine learning, and services.
> GitLab’s missing features are necessary for the productivity of developers, deployment safety, and operational reliability.
> There’s a demand for code hosting outside of Gerrit. Wikimedia Foundation-hosted GitLab has been a boon for these users—tool creators, engineers focused on data and analytics, and folks building services.
(of course, read TFA for the finer details and rationale)
Isn't this rather a symptom of code organization or architecture issues? If one needs to coordinate merges of individual parts, doesn't it mean they belong together? Monorepos or clearer versioning of the individual parts would enable independent merges.
Often I'm working on a set of changes that ultimately have a large code diff. I don't think huge PRs are often a great idea as they introduce more risk, so it's often a good idea to break it up. But a reviewer is not always available to review each bite-sized PR, so you end up with a backlog of PRs that are ugly to review in the GitHub UI and you need to continually rebase them as each is merged.
I quite liked the graphite.dev workflow for this, but it's a bit pricey. That and it only seems to work well if you can get your whole organisation to buy into using it. If GitHub etc integrated it as a native feature, I think that'd be great.
[0]: As mentioned in the article, and https://newsletter.pragmaticengineer.com/p/stacked-diffs
As far as I remember, and from what I observed, the decision to adopt GitLab was meant to better cater to newcomers and volunteers who generally do not appreciate Gerrit and saw it as a serious barrier to engaging with the Wikimedia software development ecosystem. Gerrit has a pretty steep learning curve and the web interface is pretty ugly (Subjective, but this is an opinion shared by many.) We got quite a bit of feedback that Gerrit was a stumbling block for new contributors as well new hires on the Product and Engineering teams. Many folks who have used Gerrit for a long time learn to love it but newcomers either hated it or found it difficult to adjust to.
So to summarize the main arguments for GitLab (as apposed to "just use github" or various other alternatives which were considered):
* It's ostensibly open * It's similar to GitHub in most ways that matter * The GitLab CI system is configured in the repo and it's entirely self-service, as apposed to the mess that is Gerrit + Jenkins + Zuul CI. Zuul requires a lot of specialty expertise to configure and maintain, and that places control of CI largely out of the hands of the people maintaining each repo. Self serve is better for the needs of many if not most developers. * Last but certainly not least, there was a fairly wide-spread fear that Microsoft would ruin GitHub, along with and a strong preference for self-hosted free software tools in keeping with https://foundation.wikimedia.org/wiki/Resolution:Wikimedia_F...
Maybe this publicity will get them to rethink their strategy, but I doubt it.
Related
I kind of like rebasing
People debate Git workflows, favoring rebasing for a linear history. Redowan Delowar prefers rebasing to consolidate changes and maintain a clean commit history. They discuss interactive rebasing benefits, squashing commits, handling conflicts, and offer practical tips.
PipeWire 1.2.0 Released
The GitLab repository for PipeWire version 1.2.0 in Aviation restricts new account creation due to spam. Users can access a wiki page for instructions on gaining full permissions.
"GitHub" Is Starting to Feel Like Legacy Software
GitHub faces criticism for performance decline and feature issues like blame view rendering large files. Users find navigation challenging and core features neglected despite modernization efforts. Users consider exploring alternative platforms.
Wikipedia is rolling out dark mode support
The MediaWiki project is enhancing accessibility by adjusting typography, introducing night mode preferences, and engaging with communities for feedback. Changes aim to improve readability and customization options for all users.
Git-PR: patch requests over SSH
A new git collaboration service, git-pr, simplifies self-hosting git servers via SSH. It combines mailing list and pull request workflows, streamlining code collaboration. Users interact in the terminal, enhancing code review with patch requests. Notifications via RSS feeds and state changes reflected in static web assets. The service aims to bridge pull requests and email-based collaboration efficiently.