Before GitHub(lucumr.pocoo.org)
513 points by mlex 14 hours ago | 43 comments
alastairp 13 hours ago
> What GitHub Gave Us

To me one of the clear things that GitHub gave us was a structure around a person rather than a project. To me it felt liberating to quickly create a repository attached to my name than it was to go through the (what felt to me) very serious process of coming up with a project name and reserving it on sourceforge just to get a cvs or svn repository (along with website, mailing lists, issue tracking(?), etc, etc...). It felt like the mental load of "oh this is just a quick thing" was a lot easier with github.

> It gave projects issue trackers, pull requests, release pages, wikis, organization pages, API access, webhooks, and later CI.

Although it didn't give us this all at once. I still remember when we created a new user account in order to simulate an organisation, before they existed. I distinctly recall discussing with friends if we wanted to set up a bug tracker software for our project with the assumption that "GitHub will probably release one in a few months anyway". In the end we just kept a text file committed in the repository. Issues were announced a few months later.

3form 5 hours ago
>To me it felt liberating to quickly create a repository attached to my name

If I remember correctly, it was also one of the few places sticking to the now-standard passing of the parameters via path rather than the '?' URL query part.

It might not seem like much now, but then the ease and simple beauty of having just github.com/user/repo - not only for web access but also cloning - was definitely some freshness factor.

Chaosvex 33 minutes ago
Definitely not. That's been a thing for at least as long as mod_rewrite has existed (and I'm sure there's prior art). It was common long before GitHub.
sstevemmitchell 1 hour ago
[flagged]
psychoslave 13 hours ago
[flagged]
pxc 12 hours ago
Huh? The usual pattern is that experiments belong to a user and then they graduate to having their own org iff they grow enough maintainers for that to make sense. How is that toxic or self-centered? It's just like "here's a place to do low-stakes experiments in public view". It's not particularly about ego or selfishness or whatever.
Lammy 9 hours ago
“Organizations” didn't exist until GitHub was already popular and entrenched, and it got popular and entrenched by centering the person developing the code instead of the code that was being developed: https://github.blog/news-insights/introducing-organizations/

And they weren't free until 2020: https://docs.github.com/en/get-started/learning-about-github...

psychoslave 12 hours ago
[flagged]
estimator7292 11 hours ago
You are being a toxic asshole right now by accusing people of being sociopaths completely unprompted.

Honestly, pretty sociopathic behavior right here.

psychoslave 5 hours ago
[flagged]
JumpCrisscross 5 hours ago
> exposing

You’re not exposing any new ideas. You’re just attacking.

psychoslave 2 hours ago
Not attacking any individual at least. Attacking in the sense of being critical of individualism as a louded ideology, and connecting technical artifacts to some form of individualism and likely outcome, yes definitely.

There is no need to pretend for novelty in such a critic, indeed. Just because we don't reinvent it on the fly doesn't make the use of arithmetic worthless.

buildsjets 9 hours ago
[flagged]
lpln3452 7 hours ago
Good grief. Now the YouTube Shorts crowd is showing up here too.
alfg 8 hours ago
Very strange take. A lot of software is built on trust and the people behind it. Hence why the social aspect of Github was so important to a lot of open source software.
psychoslave 5 hours ago
Hey, thank you for staying polite while expressing disagreement. That's much appreciated.

To the risk it might seem surprising, I actually completely agree that trust is essential to software creation and and use.

Actually I would more broadly frame it as, no trust, no viable sustainable society, no technical/cultural artifact.

But trust and societies can be realized without individualism as underlying chief paradigm.

That doesn't mean total negation of individual though. One alternative, among others yet different approches, can be state as a metaphor of individual like a cell in a social body. Thus the term metastasis, as when a cell starts to degenerate in self centric behavior at the expense of the health of the body as a whole. On the other hand, no cell, no body.

LtWorf 6 hours ago
I don't think it was important. It just came at a time when sourceforge was being heavily enshittified.
GroksBarnacles 8 hours ago
The most insane response I've ever read here, so far.
kelnos 12 hours ago
What a weird take on what GP said...
tom_ 9 hours ago
Bruh.
psychoslave 5 hours ago
Thanks for introducing me to a term I want aware of.

https://en.wiktionary.org/wiki/bruh for those who also wonder.

Lammy 9 hours ago
[flagged]
wps 13 hours ago
I am still so salty that Git won out for the average project over Fossil. Sure Git has some performance advantages for massive codebases like the Linux Kernel, but the vast majority of projects will never run into performance limits from their VCS. Fossil’s internal tools (wiki, forum, tickets<issues>, etc) are just so useful to have versioned with your code in one file.

I use Fossil for all my freelance work and it so easily allows me to get right back into the context of a project, niche details and agreements had with a client, etc. No need to pollute the codebase or gather together a million emails or notetaking software just to get back up to speed.

It can still change, I hate the notion that because Git is so culturally embedded we couldn’t ever switch. Fossil makes it super easy to switch and the workflow is actually easier coming from Git.

ragelink 8 hours ago
Funny timing — I've been working on a hosted Fossil service to scratch this exact itch. The integrated wiki+forum+tickets+code is killer for small teams, but most people who'd pick Fossil don't actually want to babysit a server. So we host it.

Two things I keep coming back to: (1) The "opinionated / small-teams only" critique others have raised in this thread is real, and I think Fossil should own it instead of fighting it. The 5,000-engineer monorepo market is a solved problem (Git won). Fossil should own the 1-50 person bracket — where having issues, wiki, forum, and code in one self-contained, syncable SQLite file is a huge unfair advantage.

(2) AI agents are a brand-new reason to look at Fossil that didn't exist when Git won. Every repo is a queryable SQLite file. An agent reads tickets + wiki + code + history with one SELECT — not 47 GraphQL calls and a rate limit. RAG and MCP setups against the repo become trivial.

We're stuck on the name (fossilforge vs fossilhub). If you have an opinion: https://fossilhub.io | https://fossilforge.io — vote, get early access.

The self-hosted side is already shipping at fossilrepo.io if you'd rather run your own.

--- Disclosure: founder, so grain of salt accordingly.

graemep 2 hours ago
Fossil is very easy to self host. If you already have a web server it needs maybe 10 or 15 lines of server config. If you want to avoid start up you need something to autostart/restart the server process. If you point it at a directory you can add a new repo simply by adding a Fossil file to the directory.

You can even run it on shared hosting as a CGI (never done it myself).

The only thing that took some setup was sending email notifications.

> The "opinionated / small-teams only" critique others have raised in this thread is real, and I think Fossil should own it instead of fighting it.

I agree I use Fossil for multiple personal and small projects. Anywhere I can, really. It is very simple and everything is distributed.

hdrz 5 hours ago
You should continue with a name which is related to fossils, fossillab.io, boneyard.dev and so on…
dijit 4 hours ago
fossilised.dev .. maybe british spelling.

palaeontology.dev ... too awkward.

museum.dev has a sort of "this is dead" ring to it.

Ironically what fossils are stored in within a museum is referred to as a "repository"..

Well, there's only 2 hard problems in computer science right?

graemep 2 hours ago
The best know hosted Fossil service is https://chiselapp.com/
hdrz 3 hours ago
Yeah, museum sounds like dead and rot… However on my small site [1] that’s the name of the fossil repos page

[1]: https://hdrz.cc/museum

selectnull 3 hours ago
> what fossils are stored in within a museum is referred to as a "repository"

I own a cute domain for that: repositoryum.com. I had the plans for it, but it's one of those that never came to a realization.

colinhb 3 hours ago
Maybe something fossil-adjacent:

- amber.dev

- quarry.sh

You’ll probably need to play with gTLDs to find something that works.

Can also echo “scm” from fossil’s domain:

- amberscm.dev

Along with useX.com, Xhq.com, etc., patterns.

Of the two you have listed, I’d choose fossilforge, but would vote for an alternative TLD since .io has an expected meaning coming from GitHub.

noosphr 3 hours ago
Or, hear me out, we learn to host our own shit again and stop giving all our data to $megacorp after the inevitable buyout.
PunchyHamster 11 hours ago
You can (and people did) do same kind of tooling based off git protocol and storage. Hell, even one for distributed code reviews.

It just... never was something majority actually want so they didn't really get any traction.

Issues wise you also get few nasty cases where you really do not want to keep it with project, like having clients send a bunch of screenshots or even videos of triggering some bugs can grow storage pretty quickly... and while extra few GBs on a file server isn't a big deal, keeping it with code repo just so someone can look at tickets locally is PITA, and you quickly get into "let's not use it, it just makes everything complicated and everyone repo bloated".

Someone could probably implement most of fossil features using git as backing store without all that much problems, the wiki/issues/whatever else features would just be separate, parallel branch hierarchy

wps 11 hours ago
Those screenshots and videos are taking up space SOMEWHERE, whether it be your inbox or your filesystem, why not have them as unversioned artifacts in your db? (Fossil supports this). Of course if you have multiple people working on it and many assets, other solutions would be better (shared cloud drives, etc). But for my use case of a storing textual information only (and perhaps a demo video, which many Git users often keep a video in their source and link it in the readme), Fossil works great to keep all my stuff together in the same context.

I explicitly dislike the idea of using Git as the backing store. Forget the fact that Git is not native on Windows and is immensely bloated; the actual .git folder is a mess for backup systems when working locally compared to a single database file.

thayne 9 hours ago
> Those screenshots and videos are taking up space SOMEWHERE,

Sure but there is a big difference between being stored once (modulo backups) on a central server, and every developer needing to download all the resources for every issue and the entire wiki in order to work on the code at all. It works fine for sqlite, because they only have a handful of developers, so it's not a big deal for them each to have their own local copy of everything. But having to download GBs of issue and wiki data in order to make a pull request (however that would work with fossil) or otherwise contribute is a significant barrier to entry.

cenamus 7 hours ago
I haven't checked but surely you can only check those out if you need them?
ElectricalUnion 5 hours ago
Not without having a degraded git experience like shallow clones, or using hacks like LFS or Xet, and then you're back at the initial problem of depending on "something else besides your repo".
thayne 4 hours ago
as far as I can tell, fossil doesn't support that. but I could be wrong.
kelnos 12 hours ago
I feel like part of that was timing. IIRC, when git was already stable and usable as a daily-driver, Fossil was still sometimes requiring that you completely recreate your repo when updating to a new version.

Git certainly had (and perhaps still has) worse user experience, but it worked and felt production-ready, with, of course, one of the largest open source projects in the world using it, and that made all the difference, perception-wise.

Karrot_Kream 11 hours ago
> It can still change, I hate the notion that because Git is so culturally embedded we couldn’t ever switch. Fossil makes it super easy to switch and the workflow is actually easier coming from Git.

I was exposed to Mercurial before Git and I stubbornly tried to advocate for it over Git for a while. BitBucket, at the time, gave Github a good run for their money and had great Mercurial support and was what I preferred.

I'm not really sure VCS were ever differentiated for there to be a wide world of them. They all solved the same set of problems so similarly that it felt, to me, that there had to be one winner. Right now most of the competition is in the Git Porcelain space.

N.B. I actually have a soft spot for darcs, which was my first actual DVCS. I just loved it so much more than svn and refused to use svn in college and used darcs to actually manage my projects and push them to svn after.

anotherevan 10 hours ago
I'm still using Mercurial whenever I can (including work!). The Tortoisehg GUI is good for doing reviews, and the command line is comfortable.

I grew up on CVS and then Subversion. Played with Bazaar a little, mainly because it could use an SFTP location as the back-end.

And I still avoid Git if I can help it. I would/do figure it out when I have to, but it never feels comfortable. Such is my avoidance that I'm dabbling with Jujutsu although I'll still need to really sit down and read through it some more to grok the way it works.

sourcegrift 6 hours ago
You might like pijul if you like darcs
thayne 9 hours ago
Part of the problem is that fossil is very opinionated. It's great if your development flow is similar to that of the sqlite team. But it is very difficult to get it to work for other workflows. And in particular, fossil is designed for use by small teams and isn't really designed to be used by large organizations. This is even explicitly mentioned in the "Fossil versus Git" page (https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki)
anotherevan 11 hours ago
When I tried Fossil it had things weirdly separated.

I was expecting when I make a commit, I would have the facility to specify what issues it addressed and it would close them for me automatically. It seemed there is so much opportunity there to "close the loop" when the issue tracker, etc and integrated in your VCS, but it wasn't taken.

pidgeon_lover 2 hours ago
I wanted to host our company wiki in Fossil, but there is no way to import it because Fossil completely separates versioned project docs and the built-in Wiki function. Our git-based wiki could be imported into Fossil as "docs" but would not receive the nice formatting, GUI editor or dedicated page that the Wiki function does. There is also no benefit to manually converting it all to Fossil Wiki as some of our wiki editors work on raw markdown.md files and commit changes by git which is not possible with the Fossil Wiki; everyone would be forced to use the online editor only, whereas currently we have a choice of markdown or Gitea's editor.
chungy 9 hours ago
This is a current architectural limitation, manifests (defining check-ins) and tickets are different types of artifacts and you cannot combine the card types into the same artifact. Changing this would likely break backwards compatibility with previous Fossil versions and I'd expect resistance. It may still be worth bringing up on the Fossil forum if you desire the feature.

Personally speaking though, I don't want things automagically closed GitHub-style based on parsing a check-in comment. An issue ought to be closed with intention.

anotherevan 9 hours ago
> I don't want things automagically closed GitHub-style based on parsing a check-in comment.

Sure, I get that. I was just disappointed that none of the project management stuff seemed terribly integrated in any way from my brief review. It seemed like opportunities there that were not taken.

sikozu 12 hours ago
Now is a great time for somebody to buy fossilhub.com and create a new community.
ClikeX 4 minutes ago
I already saw fossilhub.io mentioned in this thread, actually.
powvans 12 hours ago
I know someone[0] who is working on exactly this right now: https://fossilrepo.io/

I don't think he's got public sign ups turned on yet. Maybe hit him up on the Twitter for more info.

[0] - https://x.com/ragelink

jimbosis 7 hours ago
There's also "Chisel - Fossil SCM Hosting".

"This service is completely free and run because a service like it should exist."

https://chiselapp.com/

"All public repositories":

https://chiselapp.com/repositories/

I don't know if it has all the GitHub features people may be looking for.

Chisel runs on Flint, "The ISC licensed codebase behind http://chiselapp.com.":

https://chiselapp.com/user/rkeene/repository/flint/index

EDIT: Add "...should exist." sentence from the homepage.

maccard 3 hours ago
This appears to be down.
shevy-java 5 hours ago
I think this shows that you do not consider all build-up options here. Let me explain that.

Could something like github be made with fossil, aka fossilhub?

I believe the answer is ... in theory yes, in practice no. So this already means, if correct, the comparison between git and fossil is incorrect here. Fossilhub would not have dominated; git + github on the other hand did. Again, in theory a fossilhub could win over people to use it (and fossil), but people will compare it to github (back when github was still great) and become quite critical when fossilhub does not offer the same or similar set of functionality. At the least the core functionality - great issues + discussions, easy committing and changing of code and so forth.

Perhaps with enough resources, fossilhub could have conquered the world, but for whatever the reason, it did not, and I think this is in part due to the design. GitHub changed how people interact with repositories. They even made it easy to e. g. add files and change them online, at a later point in time. For instance in one project I am a co-maintainer and I rarely have to use the commandline; I can simply edit via the browser as it is. I don't think fossilhub would have done the same - actually, there is not even a fossilhub, so how would you want to compare git to fossil? It's not just the commandline code. Git has github; while it is a separate project, what does fossil have that people know and use?

> It can still change, I hate the notion that because Git is so culturally embedded we couldn’t ever switch.

We all have our dreams. All desert to become forests or agriculture may be a great idea. Effecting this is hard - but best luck to you betting on fossil here. I don't see it happening. Git raised the barrier here, even if only indirectly via github.

notpushkin 2 hours ago
> in theory yes, in practice no

Why? I don’t see any practical reason.

psychoslave 13 hours ago
I wonder what tradeoffs make Git faster for large repository. Though for a long time that excluded large blobs.
nc0 2 hours ago
None, it just received the help of the vast majority of well-payed SWE to make it that way
PunchyHamster 11 hours ago
Git has format dedicated for storing snapshots of trees and diffing them, fossil just uses SQLite and few tricks to keep size small
psychoslave 4 hours ago
Of tree, or of sub-DAG?

"Just use SQLite" feels like missing the forest for the tree (the pun being coincidence here). That is, certainly any database out there already use all kinds of very efficient structures to walk graphs under the wood.

Maybe Git has a more bespoke approach to its specific goal of source code as main topic to deal with, and finner layer of abstractions. Which could also explain the clumsy leaky interface it presents.

Lammy 14 hours ago
> But maybe the most underappreciated thing GitHub did was archival work: GitHub became a library. It became an index of a huge part of the software commons because even abandoned projects remained findable.

I think this is a bad thing actually. Having something that's centralized but helpful-99%-of-the-time atrophies our collective archival skills. If everything had to be seeded by someone to keep it alive, everyone would be better at holding on to their copies of the things they really cared about instead of being able to assume they can just check it out again when they want to.

There should be no single place that something can be taken down. When a project on GitHub gets DMCAed it takes everyones' forks with it too. Just look at what happened when Nintendo took down the popular Switch emulators in 2024, where archival/continuation efforts consisted of people figuring out who had the latest revision checked out and sharing it. That was only possible because they were very popular project: https://news.ycombinator.com/item?id=40254602

Aside: I really love the Splatoon-ish header/footer animation on this site! Very unintrusive, adds a lot to the vibe, and also quickly gets out of your way as soon as you scroll down. I'm totally going to rip this off lol

palata 12 hours ago
> Having something that's centralized but helpful-99%-of-the-time atrophies our collective archival skills.

Also it feels like "if it's not on GitHub, it doesn't exist", which is a bad thing. Feels like too many developers don't know that code can be stored somewhere else.

basilgohar 13 hours ago
Archival is easy but copyright and IP law gets in the way. If we removed obstacles to making information accessible, it would lead to less concentration of power.
mhi3 12 hours ago
I don't agree with this. Github has existed for years and one of the reasons developers trust it is that they never monetized their "archival" work yet (TBD with all the new Copilot features).

The alternative would be many sites, each one of them with their own DMCA rules.

What would be the better alternative?

Lammy 12 hours ago
Why are you thinking in terms of “sites”? I was imagining something more like a GitTorrent.
tomnipotent 8 hours ago
> something more like a GitTorrent

Still dependent on centralized trackers. Same story with every useful package manager, there's always a middleman.

Lammy 8 hours ago
BitTorrent has supported trackerless torrents for twenty entire years :p https://github.com/sparkslabs/kamaelia/blob/master/Sketches/...
jamesfinlayson 11 hours ago
Yeah first thing I do when I come across a repo I like is to clone it. I've seen a few reverse engineering projects disappear before my eyes.
boramalper 3 hours ago
> I definitely cringed when Zig moved to Codeberg!

If anything Codeberg’s legal structure (being a non-profit) and vision makes it a lot more aligned with the objectives of free and open source projects than GitHub in the long run (which has always been the case but it’s just abundantly clearer today).

I think “for-profit corporations providing high quality public services for free” was a zero interest-rate phenomenon and never sustainable.

dolmen 7 hours ago
> Regardless of whether GitHub is here to stay or projects find new homes, what I would like to see is some public, boring, well-funded archive for Open Source software. Something with the power of an endowment or public funding to keep it afloat. Something whose job is not to win the developer productivity market but just to make sure that the most important things we create do not disappear.

There is already such an organization in Europe:

https://www.softwareheritage.org/

Underfunded relative to the task, and the (accelerating) speed of free software production.

Tomte 6 hours ago
They are getting access to a supercomputer soon, and will be scanning all their archive for licensing information (using scancode and ort), security information, and other metadata.
dewey 7 hours ago
The top sponsors are quite telling: US tech companies and hyperscalers, Abu Dhabi, French Government and some french universities.
insane_dreamer 6 hours ago
Codeberg?
IshKebab 3 hours ago
The problem is GitHub spends on the order of $100m/year on providing free CI. Nobody else can compete with that. It's possible they could make it shit enough that a large number of projects will say "screw this we'll just pay for CI", but people really like free (and easy!) things so I think we are a long way from that point.
zoobab 2 hours ago
"Nobody else can compete with that"

My laptop is on all the time, make a WASM slave and thousands of developers can give their CPU/Memory/Disk for build slaves.

Like bitcoin mining, there could be some competition between 3 parallel builds to pick the winner if the output is the same.

notpushkin 2 hours ago
And yet, GitHub Actions are notoriously broken, and serious customers are self-hosting their runners.

Codeberg does have some free CI runners, although I’m not sure what capacity they currently have, and how well it would work out if everybody decides to switch from GitHub today. They do encourage you to pick the smallest runner that works for you, and keep the workflows lean: https://codeberg.org/actions/meta

Or you can self-host your own runners too, of course.

Edit: there’s one caveat – Forgejo Actions are Linux only. If you need Windows or macOS runners, this won’t work for you. But... you could have a readonly GitHub mirror (which you should probably do if you want people to discover your project), and use the GitHub Actions runners for free :-)

simonw 14 hours ago
I absolutely loved Trac. Getting a Trac setup as step 1 in starting a new open source project was just an unbelievable amount of friction.

Fun fact: Django is still running on Trac today, and has been for more than 20 years now: https://code.djangoproject.com/timeline

(I was not involved in setting that one up, though it's possible I helped get the private Trac that pre-dated it running, I honestly can't remember!)

mbreese 14 hours ago
Trac was great.

But, my first issue tracker was bugzilla. Setting that up was a bit of a pain, and it didn’t integrate well with anything, but it was very satisfying to see “Zarro Boogs”.

bombcar 12 hours ago
Bugzilla was relatively painless to setup but it already had a bit of the Jira going on - in that it had SO MANY OPTIONS!

I remember being interested in MantisBT and a few others (Launchpad for BZR?) mainly because it seemed they made a bunch of decisions for me.

mbreese 11 hours ago
It's a bit fuzzy, but what I remember was getting it running was painless -- but there was a ton of effort in getting it configured.

In retrospect, it was probably the flexibility of projects like Bugzilla that heralded the "opinionated" approaches to software that followed. In many ways software also follows the patterns of the language they are written in . Bugzilla was written in Perl, so of course there is more than one way to do anything.

I had forgotten about Mantis, but that was the first tracker that the non-programmers in our group were comfortable using. It is a bit funny how quickly we all migrated to Github as a larger community as it became the default for just about everything.

bombcar 10 hours ago
It's fun when you find these various things still in the wild - they're all still out there!

https://dwarffortressbugtracker.com/my_view_page.php

vbernat 8 hours ago
I've switched to GitHub from Trac because of spam. Despite using Akismet and bayesian filters, on a small instance, there were still several spam tickets if you didn't require an account (for the details, https://vincent.bernat.ch/en/blog/2011-migrating-to-github). I am a bit amazed that Trac still exists and is maintained today.
the_mitsuhiko 14 hours ago
Trac is in many ways what motivated me to build out an app in Python rather than in PHP for redistribution. It had a great plugin system!
noir_lord 14 hours ago
I liked bitbucket, it did its job, it didn’t break for me and I preferred mercurial.

Employers used GH so I switched but even now I use GH as a dumb git endpoint and do all my build/deploy with docker and shell scripts so switching for me is extremely cheap.

For work stuff I’ll use whatever I’m paid to use if I don’t get to make the call just as it was back in the svn days.

dijit 14 hours ago
Weirdly, I also have fond memories of Trac despite absolutely despising it at the time for “doing too much and excelling at nothing as a result”.

I guess that award goes to Gitlab now, which I will probably also remember fondly.

saghm 13 hours ago
I like Gitlab fine by ignoring pretty much everything it does other than host the source code and let me view READMEs in the browser (and for work, also merge requests). In general the more I have to use anything other than those, the more frustrated I get, which was also how I felt about Github in the past. I'm not sure I've ever had a non-frustrating experience when trying to set up a CI pipeline on any platform, so I guess Gitlab's CI isn't any better or worse than others in that regard. There are an awful lot of tabs on the left any time I look for something through those menus though, most of which I don't know what they do and I would probably not be happy to have to learn.
dijit 6 hours ago
> I'm not sure I've ever had a non-frustrating experience when trying to set up a CI pipeline on any platform, so I guess Gitlab's CI isn't any better or worse than others in that regard.

Honestly, Gitlab's CI is one of its killer features.

I really enjoy Gitlab CI.

But, nearly everything else (kubernetes management, AST, AI "DUO", work items, milestones, snippets, workspaces, "operations", "security dashboards", "value stream managements", "service desk") - ugh, awful.

I guess some of the artifact repository stuff is nice, but like; their terraform repository is probably the worst of all choices, all the downsides of the HTTP state backend and no upside..

It's so hit and miss; but! the CI is actually good..

saghm 36 minutes ago
I don't hate using Gitlab CI once it's set up; I just hate "put shell scripts in YAML to define how this should work". The least annoying experiences I've had with them are when every entry is literally just a single line that invokes an external script; shell scripting is already annoying enough without having to also spend the time to understand a YAML schema for what order they get invoked in and what environmental variables are in scope (not to mention what the implicit inputs are; a few months ago I tried to add a task to run some check on the commit message for an MR, and I found that even on repositories where the merge commit option is disabled in favor of squashing or fast-forwarding, the top commit message is still a merge commit).
dijit 8 minutes ago
Ah, super valid point.

I use the command invocation to run python scripts. I tend to believe that CI is just a controlled way to do things you would do locally.

jamesfinlayson 11 hours ago
> I guess that award goes to Gitlab now

Painfully true - I remember a company I was at replacing GitHub and a bunch of other tools with GitLab because it was better to pay for one tool that does it all. Kind of.

14 hours ago
physicsguy 18 minutes ago
We used bitbucket for years in our academic research group because GH didn't allow private repos. But otherwise it was better to use, so when they allowed that, we made the switch.
weiliddat 13 hours ago
Reading this and mitchellh's post I was curious about code archival services, and found a few projects.

GitHub has their own: https://archiveprogram.github.com/

Software Heritage is a non-profit funded by UNESCO: https://www.softwareheritage.org/2019/08/05/saving-and-refer...

Although they're mostly the code / commit history, not so much surrounding metadata like issues, PRs, discussions, wiki, etc.

pistoriusp 14 hours ago
This got me thinking about code.google.com, I can't believe Google dropped the ball that hard.
bsimpson 13 hours ago
…have you met Google?
zaphar 13 hours ago
Man what a blast from the past. I was on that team before it got shut down.
wanderingmind 9 hours ago
To add salt to the wound: https://killedbygoogle.com/
DaSHacka 6 hours ago
Damn Tenor's run by Google? I was always afraid this day would come. Guess its time to be relegated to the awfulness that is Giphy for the built-in GIF picker in applications.
jrobbins 12 hours ago
Memories...
kelnos 12 hours ago
It's fun to read stuff like this and then reflect on the journeys of the projects I've been involved with. Most of my open source work has been done with self-hosted infra. My main example is Xfce: back when I started with them in 2004, we had a SVN server, using (I think) CVSweb's then-new SVN support for the web interface, and... maybe that was it?

My memory is telling me that I set up Bugzilla at some point after I joined the core team, though that may have been someone else. When git started becoming a big deal, I spearheaded converting our big SVN repo into many git repositories, and set up the cgit web interface for it. We were still using Bugzilla at that point.

I left the project in 2009 or 2010 or so (I'd joined a small startup and didn't have much time for OSS, sadly), and rejoined in 2022. In the intervening years they'd stood up a GitLab instance with CI runners, and had migrated everything from Bugzilla to GitLab issues.

It's still a very small team (handful of active people), and the infra is mostly managed by one person. It's all very doable, even for small teams. We're very lucky that our infra is generously donated/sponsored, though we also probably get just enough in regular donations that we could pay for it ourselves if we had to. I really appreciate that we're not dependent on Github/Microsoft for anything. Seriously, if you told me 20 years ago that Microsoft of all companies was going to own the largest OSS code forge in the world, I would have thrown up. It still doesn't sit well with me.

rnewme 9 hours ago
xfce is integral part of my life. Thank you for working on it
epage 12 hours ago
An important part to me that gets overlooked is shared logins. Rust runs the tests of all known Rust projects in a tool called `crater`. I was analyzing a run identifying projects relying on internals of Cargo and opening issues. When making 200 issues by hand, it is a big help when the process is low friction: I had credentials for the site and allowing blank templates. Any time I came across a self-hosted instance, I usually ended up giving up.
notpushkin 2 hours ago
This is something federation could help with: you would be able to use your account on, say, Codeberg to make issues on all self-hosted instances. Sadly, it’s still not in a great shape: https://forgefed.org/

(As a fallback, why not email the maintainers instead?)

bsimpson 13 hours ago
I think I was one of the first people to try Flask. I learned Python so I could take advantage of AppEngine for free and easy modern hosting, which put me in the right spot when Flask launched. I've long been an admirer of Armin's, and recognized his domain before I clicked the link. As he points out, in those days, you didn't default to GitHub.

His post is a response to Mitchell's, from just a few hours ago. I'm impressed with how quickly he wrote a long-form, high-quality, well-reasoned post.

the_mitsuhiko 7 hours ago
That’s because most of this post was hanging around as a draft. I originally wrote it after Zig left but I didn’t finish or publish it.
pdonis 11 hours ago
> His post is a response to Mitchell's, from just a few hours ago.

Is there a link to Mitchell's post somewhere? I can't find one in the article.

mawadev 1 hour ago
I use a self hosted Gitea instance and it's very simple. I was also surprised when Zig moved to Codeberg and had a big blog post about it, but now over time I start to see the reasons materialize in reality.
p4bl0 5 hours ago
> We Need an Archive

This archival project already exists, it is funded by France computer science research agency Inria, by Europe, and maybe by the UN through UNESCO if I'm not mistaken, but I really think it should still receive much more attention and funding to really pursue its goal: Software Heritage.

https://www.softwareheritage.org/

notpushkin 3 hours ago
> But if projects move to something more akin to self-hosted forges, to their own self-hosted Mercurial or cgit servers, we run the risk of losing things that we don’t want to lose. The code might be distributed in theory, but the social context often is not. Issues, reviews, design discussions, release notes, security advisories, and old tarballs are fragile.

Thankfully, this doesn’t have to be the case – Forgejo imports pretty much everything mentioned. (1) Whether you decide to move to Codeberg or host your own instance, you won’t have to lose the context.

But I definitely agree we should also have a metadata archive of some sort, for both GitHub, Codeberg, and self-hosted projects.

(1): Not sure about code reviews, and you don’t get the security advisories, though I’m sure it can be replicated with a CI workflow somehow?

zoobab 2 hours ago
"We Need an Archive"

Before we had FTP, which made easy to mirror stuff with "lftp mirror -p".

HTML is not good for archiving.

We have to rethink those protocols so that mirroring is made easy, and "git clone" is not an answer sorry.

_the_inflator 3 hours ago
SF was exe + source code as zip file. And an admin that made all the decisions and had to for a project,

I do not agree with details, because it was for me before and after git.

So the hidden denominator here is and still is git, which sparked a tooling frenzy with reversing flow by being online server first (it wasn’t named cloud back then).

So even today, all splinters are doing something around git. That hasn’t changed.

What I really miss is the some sort of standardization that GitHub provided for a brief period of time. Projects would get no love aka stars when you couldn’t easily be used even for the experts. Some convenience as well as tooling evolved, devops became a thing.

I think of the future of a concept called cocooning. The JavaScript expert of today would be puzzled to write code on a notepad in a html file, because it has become so meta, being TypeScript essentially.

There is so much tooling going on that especially Python before AI already felt like I would miss something out if I would code more than 100 lines and that there must be libraries that abstract this all away and instead of coding I should google better.

AI is one thing, but the cluttered tech stacks aren’t really sparking any interest or joy in me, I think it is the not invented here syndrome or because I can story.

I miss the die hard coders, who stick to a tech stack which simply worked, not optimizing for weird use cases which are contrived at worst and rarely needed at best.

This became evident with the decline of data sheets, because Grunt, Gulp etc. as build tools were great but slow. We JavaScript devs couldn’t any longer joke about the compile times of the Backend dudes. And besides that, build times costs you focus, money, cpu time. But this was the main currency.

With AI I stopped trying out lots of tools because they feel like a weekend project by some dude who blasted his Claude budget.

Over are the fork and commit wars. Until AI battles itself this hard for quality source code I will stick to GitHub.

flaburgan 13 hours ago
What we need is gitlab to finally integrate ActiviyPub so we can fork, comment, open merge request on all gitlab instances from our personal instance. Git is already decentralized, this isn't that hard to do.
pietervdvn 13 hours ago
Forgejo is slowly working on federation
ctoth 13 hours ago
I remember this old thing called Bugs Everywhere -- it was a bug/issue tracker which actually lived inside your hg repository. I wonder if we could standardize on something like that? or git notes with an issues ref? or something magical like that?

Then it's BYOR -- bring your own renderer. Trivial CLI bugtrackers, agentic nonsense, pretty web stuff, whatever and the data lives in the repo.

lloydatkinson 13 hours ago
I've often wondered why no one has built an issue tracker with Git notes, or if one exists, why it's not widespread.
psychoslave 12 hours ago
https://github.com/git-bug/git-bug

And probably the network/black-hole effect of platforms like GitHub, Linkedin and the like are hard to achieve with fully distributed solutions, all the more when the other side is backed by huge capital which absolutely love concentration of power.

zkmon 3 hours ago
SVN (subversion) was working excellent for my team, about 20 yrs back. I never saw sufficient justification for the complexity brought in by Git.

But as I say, New tech invades the world and makes the perfectly working old tech as incompatible, just by changing the world around it. So git became a necessity imposed.

paganel 2 hours ago
There was a big hype around it (you probably remember it), and around distributed version control, if you weren't using a DVCS you were suddenly seen as an inferior computer programmer and hence your employment opportunities were diminishing. That perspective when it comes to almost all-things programming-related has only accelerated ("if you're not quick to adapt to agentic AI you will lose your cushy job!"), with the recent AI craze the latest example of that.
8 hours ago
steveharing1 2 hours ago
I think github is at a point that its too hard to ignore just like google is even though we might not like what they are doing now but we were the one made them this big.
edf13 3 hours ago
codeulike 3 hours ago
"Hey can you check that file back in?"
edf13 3 hours ago
Ha ha... yes... that brings back memories!
codeulike 3 hours ago
Or someone checks in the project file without checking in the new classes they added :facepalm:
jpeeler 8 hours ago
I was hoping that by now we would have an up and coming DVCS replacement that functioned as a "github in a box" (pretty sure fossil has been described as that, but it's too much on the cathedral side). Being able to mirror an entire project though version control would significantly help with mirroring if we go back to a decentralized world. Maybe going back to decentralized project hosting is just another pendulum swing similar to how compute moved to the cloud...
rtpg 12 hours ago
I really worry about a bunch of people going over to codeberg. Site's already super slow, but apparently it's quite nice when self-hosted

Anyone who is able to just plop a forgejo instance on their own machines... please do that if possible!

dndn2 17 minutes ago
Can a small project do this and (cheaply) be robust to getting slashdotted?

Which is often the dream for a small project.

Probably yes, Codeberg are very transparent about their infra details and they don't seem wild:

https://codeberg.org/Codeberg-Infrastructure/meta

prima-facie 12 hours ago
Smaller, decentralised forges actually make lots of sense from a digital sovereignty point of view. Over reliance on a single instance like GitHub is not healthy in the long run. The issue they would have to solve is federation.
kelnos 12 hours ago
Yeah, federation is really the sticky bit. It's very frustrating for people to have to create yet another account in order to file an issue or submit a pull request.

And on top of that, spam is a huge issue. We've progressively further and further locked down new accounts on gitlab.xfce.org because the spam situation has just gotten so bad. We actually don't allow new "native" account creation at this point, and ask people to come to our Matrix channel to ask for an account. We do allow SSO from Github and gitlab.com, but some spam still sneaks through that way too.

I have my own personal Gitea instance that just doesn't allow outside users at all. I'd love to move all my personal projects to it, but at some point I would actually like to try to start a community around one or two of them, and I don't want to have to deal with spam.

prima-facie 10 hours ago
Oh we have a neat solution for that. Just give us your government issued id! I'm joking of course.

Thank you for maintaining Xfce! It's the best de around.

divbzero 7 hours ago
I really like the idea of distributed forges, but am not familiar with viable solutions for federation. Are there good options available right now? Or at least a not-terrible option?

(Edit: Turns out there’s a very obvious and widely used option. git format-patch + git send-email is used to develop major open source software such as Linux, GCC, and Git itself.)

deepsun 10 hours ago
And not a single mention of GitLab. I remember it was a pretty serious contender, sometimes leader, strange that author doesn't mention it.
7 hours ago
iamgopal 3 hours ago
GitHub sooner or later will be only source of training data for the AI engine
MrAlex94 14 hours ago
If it wasn’t for SourceForge I’m not sure my life would’ve ended up where it is! They use to promote projects they liked and ended up putting Waterfox on their front page a few times. Really sad when they started blasting people with ads and swapping out installers with adware for popular projects. By that time I moved to Microsoft’s CodePlex, if anyone else remembers that? Felt like I was the only one using it at the time! I remember the connection speeds to it were atrocious, but appreciated they’d share ad revenue from the downloads of a projects page which was nice. I remember it was actually super expensive to offer downloads [for binaries] back then, using these code hosting websites was the only way to do it for “free”
xtracto 12 hours ago
I also remember SourceForge fondly, before the ad infested thing.

Specially, I remember not "getting" Github at some point. Bitbucket had mercurial support, sourceforge had SVN, and all the Cool projects lived in SF (I'm talking mid/late 2000s).

The first time I navigated into a github project and just saw the code three I was puzzled. (SF was centered on the project/product while GH focused on the code.

a1o 12 hours ago
Hey, I also remember Launchpad and Bazar, and adding an individual new source to my apt. Launchpad had something like CI before everyone from what I remember.
socalgal2 10 hours ago
What is GitHub’s decline? I’ve used it extensively since 2011 ish (to lazy to look up when) it’s only gotten better. What’s the issue?
swader999 10 hours ago
Uptime and crappy GitHub actions are the main complaints.
notpushkin 2 hours ago
[dead]
drbig 13 hours ago
Great through-history write-up! Thank you.

> That is one of the great ironies of modern Open Source. The distributed version control system won, and then the world standardized on one enormous centralized service for hosting it.

Cycles everywhere indeed. Perhaps we should ->

> GitHub wrote a remarkable chapter of Open Source, and if that chapter is ending, the next one should learn from it and also from what came before.

Indeed! Try to learn from the inevitable iterations to make the next instance at least that slightly better.

... Where the stuff meets the metastuff it seems all works under very similar forces. My thinking is step-by-step - it works on the individual level, and it scales up.

Day to day is step by step and a step today funds the step tomorrow.

DustinBrett 11 hours ago
I was posting on Planet Source Code before SourceForge existed.
dangus 13 hours ago
This “slowly dying” effect is what happens to every company that gets acquired by big monster slug companies like Microsoft.

What Microsoft acquisitions still have any of their original spark left in them? Or Oracle? Or IBM? Or Google? Etc…

Hell, some Microsoft originals from inside the company like Xbox have even lost their edge.

Money is great and I’m sure I’d take the big check, too, but I’m surprised more tech founders don’t think of their legacy in this way when they decide to sell out.

It’s considered a grand accomplishment to essentially lead the wonderful thing you created to its slow demise and hand it over to apathetic quarterly earnings zombies.

bombcar 12 hours ago
Up until about a year ago, GitHub was the example that would be given if you asked the question.

And now it’s gone.

kkfx 13 hours ago
Radicle is a good answer, coupled with a reborn Usenet, maybe Nostr. We have like never before the ability to communicate and cooperate yet most fails to understand and implement that.

Nearly any of us could run an XMPP/Matrix server and federate with friends or Nostr/{0xchat,whitenoise}, all with audio, video, text, file exchange etc, yet less than 1% do that.

Simply people, techies as well, have forgot the meaning of personal ownership and therefore are owned by someone else.

steve1977 5 hours ago
IMHO the problem is always the same. Social networks (and I consider Github as one in this discussion) tend toward centralization and hence monopolization. But monopolization tends towards enshittification. It happens again and again. There's a new cool player, it grows, it's not the cool player anymore. Rinse and repeat.

Unfortunately I don't have a clever solution (to the social aspect of the problem).

latchkey 12 hours ago
If everyone moves off GH, it'll just go back to normal again?
pbronez 12 hours ago
Maybe something like https://fossil-scm.org/home/doc/trunk/www/index.wiki is worth another look. Although Forgejo is probably an easier switch from GitHub. If their federation ideas play out well, that could be a good outcome from all this
immanuwell 6 hours ago
we let one company accidentally become the library of Alexandria for open source, and now we're shocked it's on fire - maybe don't do that again
shevy-java 5 hours ago
> That is why I find what is happening to GitHub today so sad and so disappointing. I do not look at it as just the folks at Microsoft making product decisions I dislike. GitHub was part of the social infrastructure of Open Source for a very long time.

Well ... sad or not sad ...

I remember I was very displeased when Microslop, 'xcuse me, Microsoft assimilated GitHub. But for some time it worked quite ok-ish, to some extent. Only more recently are things suddenly breaking down. I am not sure why they break down right now, but I suspect it has a lot to do with the new AI-focus Microslop pushes onto everything. The AI permeates everything like a virus and contages things (I just tried to create a new word from contagious ...). It seems as if this is the real new corporate identity. As Microslop proceeds to dive deeper into AI (they have no alternative anymore, they already sold their soul to AI), they forget that GitHub used to be about people, first and foremost. Steve Ballmer also had this with his fake antics aka "Developers developer developers" many years ago in 1999 (https://www.youtube.com/watch?v=8fcSviC7cRM - at the least Ballmer was entertaining, the current slop-CEO is boring to no ends).

> So when I think about GitHub’s decline, I also think about what came before it, and what might come after it.

Well - the decline happens largely because Microslop totally struggles. They could have decoupled departments and what not, but they decided the corporate strategy is AI-only now. And this creates a ton of downstream problems. So in many ways the current CEO is to be held responsible; he is in charge since 2014 after all. Fatigue kicks in. I am not saying a single person alone is responsible for failure, but it is clear that whatever the reasons for problems, this comes from Microslop first and foremost. The GitHub team contributes to this decline as well (services no longer working suddenly) but it really is induced from top, aka the overall corporate strategy here. And I also don't see Microslop being able to change course - they overcommitted already, so now the decline is indeed unstoppable.

> GitHub changed how Open Source feels, and later npm and other systems changed how dependencies feel. Put them together and you get a world in which publishing code is almost frictionless

Frictionless is a strange word. I retired from rubygems.org when shopify flooded the zone with ... corporate agenda. The final straw was the 100k download limit ("past that point we disallow you from removing old code you published to rubygems.org", which meant that people would download old code and assume that I would maintain that, which clearly was a lie, so thanks for that RubyCentral ... a year after that they went amok and mass-fired numerous devs; the whole story is a bit more complicated than that, but I can now wisely nod my head, since I retired about a year from that before that mass-fire devs event unfolding). I think if you have a source code hosting service in place, no matter what it is, you need to think about making publishing code super-easy at all times, including the UI. GitHub did this, sort of; I notice this when I compare it to gitlab. Perhaps gitlab has more features, but using it is soooooo much more annoying compared to GitHub. Codeberg lacks features on the other hand. Offering a good service here is actually difficult. It almost seems as if there are no clever UI designers anymore.

> My first Open Source projects lived on infrastructure I ran myself. There was a Trac installation, Subversion repositories

Well. I hated using Trac. Reporting issues is of course possible, but it feels so much more cumbersome than github issues. What could help would be to kind of make semi-universal IDs, e. g. I register once, but then I could use the same account on many different issue trackers. Right now I need to register for each instance and that is just tedious. I keep a password file (don't tell anyone) and I noticed that, say, after about 100 different websites and names and password, it just becomes unmanageable. Yes, I could use software to help me with that, but I decided that I simply no longer want to have a gazillion accounts. I almost never register for phpBB webforums (though discourse appears to be killing phpBB anyway).

> You could find forks, and old issues and discussions all stayed online.

That is true in general, but I would like to remind the blog author here that when the xz backdoors utils were found, Microslop took down the whole repository INCLUDING discussions. I remember that because I also discussed this on the xz utils github issue; and next day when I looked for more discussions, the whole thing was gone. Microslop censored here. Lateron the repository was back again, some days later, but if I recall correctly the whole discussion section was also gone. Microslop did not like the discussion; perhaps it was the author too, but the initial removal was from Microslop. So why was that bad? The whole discussion contained valuable information for people who were not yet familiar with this. Thus, Microslop deprived people of that information. Since then I am very wary about "trusting" Microslop or any private actor here when it comes to censorship. So I would not trust the "discussions stay online" claim here.

youwangd 13 hours ago
[dead]
selectively 13 hours ago
[flagged]
einpoklum 14 hours ago
> Before GitHub, Open Source was a much smaller world.

Not that much smaller right-before GitHub and right-after it became available.

> but in the number of projects most of us could realistically depend on.

Most FOSS I realistically depend on I don't obtain from GitHub actually.

> There were well-known projects, maintained over long periods of time by a comparatively small number of people.

There were even more not-well-known projects, maintained for less time, by a larger number of people. They just weren't that many of them in one place.

> You knew the names.

You absolutely did not know the names. Post author is just thinking of the names they knew as though those were everybody.

> reputation mattered in a very direct way.

And now it doesn't?

> We took pride (and got frustrated) when the Debian folks came and told us our licensing stuff was murky or the copyright headers were not up to snuff, because they packaged things up.

RedHat was just as popular a distribution; and most users used Windows (like they do today); and the BSD distributions were a thing (although we didn't have Apple's BSD, i.e. MacOS)

Bottom line: Inaccurate description of history.

the_mitsuhiko 14 hours ago
> You absolutely did not know the names. Post author is just thinking of the names they knew as though those were everybody.

I absolutely knew the names of the people I interacted with and whose projects I used. I even went to conferences with some of them. When I worked on my first web portal for Ubuntu we had a total of about ~4 dependencies and all was vendored. I knew the person who packaged my Python libraries for Debian.

You might call it an inaccurate description of history but it is very much my experience.

j16sdiz 13 hours ago
back in the day, I work in a web hosting company.

I know every name on mysql devel team.

The only reason i subscribe that mail list is: i reported some bugs and need to follows the release.

Signal to noise ratio on those mailing list was high. I can't say the same for github or discord

einpoklum 1 hour ago
> I know every name on mysql devel team.

That's one project. You did not know every name, or most names, in FOSS generally. Today as well - a project which uses GitHub still needs a mailing list, web forum, chat channel (Matrix/IRC/discord/Telegram/whatever) to discuss and coordinate, and that hasn't changed.

As for whether signal to noise ratio on mailing lists was high - that really depends on the list. I don't see that much noise on GitHub repositories, to be honest - it's not easy to post noise that many people will see, so there's not much motivation for it.

conartist6 13 hours ago
I'm working pretty hard on building what comes after Github, but I'm going full-tilt boogie and trying to also work out what comes after Git.

I'd love to have a longer conversation with you about how we can seed a better system, because on the off chance I'm successful I have a once-in-a-generation opportunity to fix past mistakes.

MeetingsBrowser 12 hours ago
Your username is con artist lol
dspillett 2 hours ago
Yours is an anagram of “emits wrong beers”.

Just as relevant a point…

conartist6 12 hours ago
Yes, Hi! I'm Conrad.
thayne 8 hours ago
I'm not sure if your aware, but in American English, "con artist" is another term for a scammer. Someone who does "cons", short for "confidence tricks" (or "confidence schemes") where you gain someone's confidence in order to take advantage of them in some way, usually financial fraud.
conartist6 8 hours ago
Yes I'm aware, I grew up in a college town in rural Pennsylvania. I chose the name when I signed up for Neopets uhhhh 20 years ago now.
fragmede 8 hours ago
The best time to have chosen a new name was 20 years ago. The second best time to choose one is now.
conartist6 7 hours ago
¯\_(ツ)_/¯ I'm me. 's not likely to change is it? I could color inside the lines and hope it buys me a nice life, but if I was that kind of person I would never have tackled this insane of a project
_-_-__-_-_- 10 hours ago
and also a con artist?
conartist6 10 hours ago
I'd say a code artist, more commonly called a hacker. https://paulgraham.com/hp.html

To be clear for the past five years I've done nothing but write OSS code (https://github.com/conartist6) while sharing pretty much all my engineering thoughts on a public Discord server (https://discord.gg/NfMNyYN6cX), so I'm not very worried at all that a person determined to find out would be unable to tell if I'm legit. You just can't fake 20,000 hours worth of public toil.

swader999 10 hours ago
Maybe he likes a challenge?
conartist6 7 hours ago
I guess I happily invite people to disrespect me for superficial reasons. Baseless disrespect keeps me motivated. Sorting out people who are only kicking tires also helps protect my time.

The ones who show real curiosity, those are the people I'll give my full attention to any day of the week.