Nothing they’ve done since they were created has ever moved them in a more open source friendly direction, and they’ve broken a ton of promises both implicit and explicit along the way.
GitHub OTOH has only become more open source friendly (minus the AI stuff, but I suspect Gitlab is no better on that front).
One feature area where Gitlab is still better for realworld stuff is CI (Gitlab CI vs Github Actions). Yes, you can do most things on both, but Gitlab CI makes a lot more sense.
In general, Github still feels like it's built for hobby coders (focusing on simplicity instead of configurability - which doesn't have to be a bad thing) while Gitlab feels like it's built for professional teams from the ground up.
I have used Gitlab CI basically daily for over 5 years and it makes sense. I would need to think hard to come up with something that seems fundamentally wrong.
I have never used Github Actions. Can you explain or give some examples what doesn't make sense?
IIRC Github Actions started as a 'visual editor' where you would drop and arrange 'Actions' and define the data flow between actions, but what most people want from a CI system is just a script/config file in their git repo which defines what command line tools to run, and to group those commands in jobs dependending on each other so that some jobs can run in parallel (which Github Actions only implemented as an afterthought after users demanded it).
To reuse code, Gitlab CI has simple template files which you can import into your toplevel .gitlab-ci.yml, and you have an inheritance system to derive new jobs from other jobs. That's a very simple and powerful system.
Code reuse in Github works with above mentioned 'actions' where each action seems to be a whole repository of stuff instead of a single file like in Gitlab CI.
Gitlab CI seems to be designed by people who know what they do and what their users need, while Github Actions seems to be designed by architecture astronauts, and has only afterwards and reluctantly been hammered into a shape where it does the things most users expect.
GitHub Actions feels like it was first designed to let people customize the GitHub Pages deploy flow (since GitHub by default only offered Jekyll as a static site generator, and Jekyll is Ruby tooling and not lightweight to run at all) and as a CI tool second, being molded into behaving like one after Travis CI went bad for open source projects.
Gitlab CI actually seems like it was made for CI in the first place.
I'm pretty sure of the same, and that feature actually leaks into the implementation. Right after the initial introduction of the current Github Actions, we translated some Azure Devops scripts to Actions and a lot of the structure and most keywords where nearly identical. As well as the interface when running the CI.
If I remember correctly GitHub CI is pretty much a straight port of Microsoft’s existing Azure DevOps CI, done pretty soon after the acquisition. The rest of Azure DevOps UX is kinda insane so it’s no surprise the CI is a bit of a pain too.
Try and test a Github Action locally - it's an engineering project up there with the Space Shuttle.
Repositories around the world are filled with endless commits of "test1", "test2", "test3" trying to debug their actions in prod.
Right, but Gitlab does have the excellent built-in pipeline editor that will visualize and validate your pipelines for you.
It can also render the complete pipeline config (making it easy to run and debug the problematic parts locally just by copying the relevant parts, even if they're hidden in and include somewhere).
I find them both equally bad just in different ways.
Compare the gitlab UI with phabricator for example. The workflows are mostly a strange mixture of whatever github made up on the back of a napkin and Stakeholder-consultant slop.
GitLab has accepted my patches…do you have a timeline for when Github will do the same? Sure, maybe the directions are different, but the baselines couldn't be more different either.
Neat…though considering how far removed it is from the actual behaviors of the forge rather than things that are essentially "bikeshed topics", I'm still not very convinced that Github is even in the same league as GitLab in "OSS friendliness".
In my experience, Gitlab is a lot more stable than Github. My last job was on Github, and we had an outage a couple times a month at least. We even had a Slack emote for it! My current job is on Gitlab, and we haven’t had a single outage in the year that we’ve been on them.
Second that. My job before last moved to a locally hosted enterprise Github instance, which promptly ate itself. The specs required to run it were also impressive, something like 64gb minimum to boot but more was strongly recommended.
Haha, I keep getting burned by GitHub outages even as a private contributor with my personal account... speaking of which, I expect one outage soon, this week so far it has been available always when I needed it...
GitHub is open source friendly on paper, but almost nothing they do is actually open source, or even source available. Contrast that to GitLab who are actually open core, and the vast majority of their software if publicly available for free with a very permissive license.
One talks about open source because it's the de facto home of open source. The other is actually open source.
Nothing they’ve done since they were created has ever moved them in a more open source friendly direction, and they’ve broken a ton of promises both implicit and explicit along the way.
GitHub OTOH has only become more open source friendly (minus the AI stuff, but I suspect Gitlab is no better on that front).