Skip to content

Commit

Permalink
Add post about GitLab.
Browse files Browse the repository at this point in the history
  • Loading branch information
wmedrano committed May 14, 2024
1 parent 1ec6d3d commit 3b86fc2
Show file tree
Hide file tree
Showing 3 changed files with 159 additions and 0 deletions.
3 changes: 3 additions & 0 deletions build.el
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
(require 'ox-publish)

(defun build-wmedrano-dev-site ()
"Build wmedrano.dev website.
The static site is output into the site directory."
(let ((org-publish-project-alist
'(("wmedrano-site" :components ("wmedrano-home" "wmedrano-posts"))
("wmedrano-home"
Expand Down
155 changes: 155 additions & 0 deletions src/posts/gitlab.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
#+TITLE: GitLab for Hobby Projects
#+AUTHOR: Will Medrano
#+DATE: [2024-05-13 Mon]

* Introduction
:PROPERTIES:
:CUSTOM_ID: GitLab-8nt9l58067k0
:END:

GitHub and GitLab are code hosting platforms. After using both, I
prefer to keep my solo development needs on GitHub. It's not that
GitHub is significantly better than GitLab, but its slightly better
and lets be get back to focusing on my dev work.

* Basics
:PROPERTIES:
:CUSTOM_ID: Basics-5rg5ya9067k0
:END:

Although GitLab also sells itself as a DevOps platform as well, both
GitLab and GitHub can have essentially the same functionality.

For my hobbyist needs, they both:

- Host code using Git, I'd prefer Mercurial, but whatever.
- Allow browsing the code, although poorly compared to SourceGraph
or your local IDE.
- Automate workflows on Pull/Merge request such as building, running
tests, and deploying code.
- Allow feedback and contributions from others within the community.


* Categories
:PROPERTIES:
:CUSTOM_ID: Considerations-gackdb9067k0
:END:

** Speed
:PROPERTIES:
:CUSTOM_ID: CategoriesSpeed-d8ci1d9067k0
:END:

GitHub just feels snappier. I can't help but get annoyed at how
sluggish page loads are in GitLab. Doing a quick comparison, I found
that loading the "Changes" tab for a Merge Request takes about ~2.5s~
before any reviewable code appears on the screen. Similarly, GitHub
takes about ~1.0s~ to display code.

Really, this is the make or break feature for most of my usage. The
sluggishness of GitLab gives my mind enough time to wander and get
bored. This is especially bothersome for the moments where I'm locked
in and highly productive.


** Community
:PROPERTIES:
:CUSTOM_ID: CategoriesCommunity-3eei1d9067k0
:END:

Community is pretty important for the small libraries I
develop. Although I have no expectation that anyone will use my niche
library, it does happen from time to time. Its always a good feeling
when someone contributes back a great feature to even a niche library
like [[https://github.com/wmedrano/livi-rs][livi-rs]].

GitHub's community eclipses GitLab. Anecdotally, I've noticed most
projects I use or have had any contribution to tend to be on
GitHub. Due to this, GitHub is the safer choice if you expect or would
appreciate contributors.


*** Library Engagement Caveats
:PROPERTIES:
:CUSTOM_ID: CategoriesCommunityLibraryEngagementCaveats-1nxih7a067k0
:END:

All of my libraries are on GitHub while I only have binaries on
GitLab. Libraries tend to attract at least a few users so it may be
worth it to experiment with the amount of engagement the equivalent
GitLab package would have. Unfortunately, Open Source development is
only a side project as my main job eats most of my development time
and energy.


** CI
:PROPERTIES:
:CUSTOM_ID: CategoriesCI-bjgi1d9067k0
:END:

The CI between GitHub and GitLab is pretty comparable. Both allow
running builds, lints, tests, and other checks before comitting
code.


GitHub's implementation (GitHub Actions) involves writing YAML
that executes commands as well as importing other open source
actions. I've imported other actions to checkout repos, set up caching
for Rust, uploading coverage results to another provider, and probably
a few other cases.

GitLab's ecosystem is a bit more barebones. You write YAML that also
executes commands, but there is no ecosystem of actions/commands like
GitHub. Unpopular opinion, but I prefer not having to import magical
actions to accomplish tasks. GitLab also had the extra benefit that
you can provide specific artifacts/files/directories and export
them. I used this to surface code coverage and test
results. Additionally, I ran benchmarks in the CI which exported
HTML. The frontend was then able to provide a link to the HTML.

Overall, these are pretty equivalent for me. I do wish that GitHub
would allow me to publish arbitrary HTML as a report (without having
to download artifacts). GitHub has an [[https://github.com/actions/upload-artifact/issues/14][open issue]] for this feature
request.


** Security & Reliability
:PROPERTIES:
:CUSTOM_ID: CategoriesSecurity-umii1d9067k0
:END:


I'm not an expert in security or reliability. I also don't use GitHub
or GitLab at my professional work. However, I see more headlines about
GitLab going down. Some famous incidents include GitLab calling
deleting its database [[https://news.ycombinator.com/item?id=13537052][[hackernews post]​]] or tthe password reset exploit
[[https://thehackernews.com/2024/05/cisa-warns-of-active-exploitation-of.htm][[hackernews post]​]].


** Features & UX
:PROPERTIES:
:CUSTOM_ID: CategoriesFeaturesUX-8lki1d9067k0
:END:

This category is basically equivalent. I slightly prefer GitLab's
terminology (Merge Request vs Pull Request) and its use of the
sidebar. However, GitHub gets the job done as well and its interface
is less cluttered than the myriad of options on GitLabs
sidebar. GitLab also has a few more widgets at code review like
displaying (if set up) the code coverage percentage, the number of
passed/failed tests and can even link to HTML artifacts. I would give
GitLab a very slight edge, but the sluggishness compared to GitHub
really holds the experience back for me.

* Conclusion
:PROPERTIES:
:CUSTOM_ID: Conclusion-oyr71p4167k0
:END:

While both GitHub and GitLab offer similar experiences for code
hosting, I have a slight preferance for GitHub. I can't speak to how
everyone else perceives GitLab, but the unresponsiveness of the
website is a slight annoyance. Additionally, GitHub has the larger
developer community which helps bolster the open source
community. As the underdog, I hope GitLab can make strides to improve
GitLab for solo and small open source development.
1 change: 1 addition & 0 deletions src/posts/index.org
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
#+TITLE: Posts

- [[file:gitlab.org][Why I Don't Use GitLab]]

0 comments on commit 3b86fc2

Please sign in to comment.