-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
159 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]] |