← Back to context

Comment by SenHeng

5 hours ago

GitHub is almost forever. Your custom domain disappears when you stop paying the bills, which if you’re an open source developer has a higher likelihood than GitHub disappearing.

One day, we’re all going back to vendoring dependencies.

Why did we stop vendoring dependencies in the first place?

  • I think its a good question. The short answer is: because tooling doesn't default to this or make it easy.

    The answer to the question of why THAT is the case - is not so easy to answer. The main benefit I can see with using lock files instead of vendoring is that it saves a lot of storage and diff history from entering your repository. So clones are much faster, backups smaller etc.

    I think Go used to work this way (automated vendoring) but it’s the only language I can think of that ever did in terms of standard tooling. It would be instructive to learn why that changed.

  • Because it sucks. But maybe it should suck? It would make us think twice before adding dependencies.

    I use dotnet and I never liked seeing dlls and binary files in my diffs. I would argue if we are adding vendor code to our projects, we should demand the FULL source code instead of dlls. Maybe it is already possible with things like x unit. I have never given it much thought... But then that vendoree code has to come from somewhere as well, right? I mean there is something to be said about provenance or something here?

    Sorry if this feels like a stream of consciousness because it is ↔

    • Vendoring dependencies doesn’t necessarily mean you have to include binary objects in your repo. They could be content-addressable artifacts in your org’s private blob store.

In the case of a typical software enterprise having your domain gone means that you probably don't care about the code anymore anyway.