this post was submitted on 20 Jul 2023
392 points (95.6% liked)

Programming

17364 readers
181 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

Initially, LinkedIn was just another site where you could find jobs. It was simple to use, simple to connect with others; it even had some friendly groups with meaningful discussions.

And then it gained monopoly as the "sole" professional network where you could actually land a job. If you are not on LinkedIn now, you are quite invisible in the job market. Recruiters are concentrated there, even if they have to pay extremely high prices for premium accounts. The site is horrible now: a social network in disguise, toxic and boring influencers, and a lot of noise and bloated interface to explore.

When Google decided to close their code.google.com, GitHub filled a void. It was a simple site powered by git (not by svn or CVS), and most of the major open-source projects migrated there. The interface was simple, and everything was perfect. And then something changed.

GitHub UI started to bloat, all kinds of "features" nobody asked for were implemented, and then the site became a SaaS. Now Microsoft hosts the bulk of open-source projects the world has to offer. GitHub has become a monopoly. If you don't keep your code there, chances are people won't notice your side projects. This bothers me.

Rant over. I hate internet monopolies.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 1 year ago (5 children)

Hi! I am new to the programming world, and everything involved. What do you think about gitlab? Many people are using it instead Github. Also I heard about Codeberg, but I dont know anything about it :)

[–] [email protected] 18 points 1 year ago (2 children)

Advantage of Github over Gitlab is code discoverability. My organization hosts Gitlab instance but I would still rather host my open source project on Github instead, because its impossible to collaborate on Gitlab with external users who dont have an account on our instance.

Once there is a federation feature similar to Lemmy, I would be happy to host everything there.

[–] [email protected] 3 points 1 year ago (1 children)

This could be what you're looking for. Their main implementation is a gitea fork, but I've seen mentions of gitlab as well. Unfortunately I don't think github would ever consider being compatible, that would just lose them users.

[–] [email protected] 2 points 1 year ago

Thanks. There is also a Gitlab issue requesting this feature, which I am tracking.

It needs to reach a polished state before organizations and university adapt it. So something like what you linked probably wont fly.

[–] [email protected] 2 points 1 year ago (1 children)

You can use Gitlab exactly the same as GitHub though if you use the hosted Gitlab. I have multiple of my open source projects on Gitlab.com and everyone can access.

[–] [email protected] 1 points 1 year ago (1 children)

Well not really, you would need an account in the organization in order to create issues, pull requests for a privately hosted instance. You can see the public repository but apart from cloning you cannot do anything else.

While Gitlab.com is centrally hosted, not much different than Github, you still cannot communicate with other Gitlab hosted servers.

[–] [email protected] 1 points 1 year ago

Ah yes this I agree. But it's not like it's different on GitHub. I guess I got confused because you said "Advantage of Github over Gitlab is code discoverability.".
While no it's the same? There is no advantage for GitHub

[–] [email protected] 6 points 1 year ago

https://sr.ht/

Gitlab adheres to a “one tool for all the jobs” philosophy and tends to be a performance mess for the end user. Every time I had to use it, I wanted not to.

SourceHut is a counterexample to claims of monolith superiority gitlab makes. Whether it will continue to be that is an open question, but right now it’s quite a joy to use.

[–] [email protected] 3 points 1 year ago (1 children)

Gitlab marketing docs heavily mislead you on its capabilities. Technically they are correct, but the way something works is reality isn't often useful (epic boards are a great example).

This would be ok, but It's really tightly integrated and doesn't provide means for external tools to hook into it usefully.

For example I think GitLabs CI is the worst on the market but if you integrate another CI you don't have a means to feedback information into Gitlab.

[–] [email protected] 5 points 1 year ago (1 children)

For example I think GitLabs CI is the worst on the market but if you integrate another CI you don't have a means to feedback information into Gitlab.

You can do almost everything with the Gitlab API so I'm curious what issue you had.
I'm also not sure why "Gitlab CI is the worst on the market"? I really like in particular that I can have my own gitlab-runner on any machine.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

I want a build job to be triggered when a merge request is raised/changed to verify merge requests. Primarily I want it to comment/annotate changes so peer review focusses on logic and warnings are clear.

I can do this with Concourse, Circle, Jenkins and Github Actions on Azure Devops, Bitbucket Cloud, Bitbucket Server & Github. All Gitlab can tell you is pass/fail, which was good in 2003 but seriously lacking in 2023.

Similarly I want the ability to trigger a release and supply a desired version for the release (or someway to achieve that since our projects follow semantic versioning).

The release DSL is incomplete and could not work on server/cloud last time I used it. The page claims it can do alot but there is a hole in it and even the writer clearly knew.

I want the ability to specify multiple reusable pipelines, in a central place. This is not possible in cloud.

Lastly I would like to have multiple potential pipelines in a repository (e.g. smoke test and release). You can hack this in via variables. This will/won't work depending specifically on the runner for your job. if self hosted or cloud you'll notice different parsing behaviour depending on what host it runs on. This is shocking.

I have an email somewhere where I went through every GitLab CI DSL and documented which didn't consistently work, which only worked consistently on cloud and which only worked on server. Also things like release that are broken on both.

The only way to make it work is to use multi stage docker builds and if your doing that build bot and a bash script would be better.

[–] [email protected] 1 points 1 year ago (1 children)

All of what you said seems completely doable to me.

Primarily I want it to comment/annotate changes so peer review focusses on logic and warnings are clear.

You can. See https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

CI_PIPELINE_SOURCE

How the pipeline was triggered. Can be push, web, schedule, api, external, chat, webide, merge_request_event, external_pull_request_event, parent_pipeline, trigger, or pipeline

You have full access to the API and can do whatever you want in the MR too.

I want the ability to specify multiple reusable pipelines, in a central place. This is not possible in cloud.

You can, with CI templates. Templates can be in a completely different repository

Lastly I would like to have multiple potential pipelines in a repository (e.g. smoke test and release).

I do have different pipelines for staging and production in my projects with no issue.

[–] [email protected] 1 points 1 year ago (1 children)

Try to do it and get back to me.

For extra fun try to do it in cloud and server, you'll realise some stuffis server only, some cloud only and the docs don't tell you which one is true

[–] [email protected] 1 points 1 year ago

I'm only using the hosted version, it works. I do have a separate gitlab-runner in GCP at the moment though that is working fine.
If something doesn't work for you I suggest creating a ticket?

[–] [email protected] 3 points 1 year ago (1 children)

Every time I have to try to find things on gitlab I have a generally harder time doing so than on github. Maybe I'm just used to github's layout, but gitlab's just seems awkward to me. Also, I think non-tech-savy people will inevitably be confused by having to click "deployments" to get to releases; and on release pages, below where you actually download files, it always says "evidence collection", which sounds really ominous (for end users)

[–] [email protected] 2 points 1 year ago (1 children)

I was thinking about switching to GitLab. But after reading your comment... not so much.

[–] [email protected] 1 points 1 year ago

Just check it out, it has an open source base unlike GitHub. If you don't like it, that's fine, but like you do t even want to try it now?

[–] [email protected] 1 points 1 year ago

We use gitlab at work.

If you're going for hosted, I'd always use github (userbase, UI, free features set). If you're self hosting, gitlab is a good alternative. Their heavy promotion of and focus on full chain into managed cloud can be irritating and annoying though.

Gitlab has a free tier too. If you're curious, try it out.