top | item 45493341

(no title)

salzig | 4 months ago

Just a thought of mine: why don’t we switch fully to git? Commit signing, tag signing, Decentralize. Doesn’t that sound like a good alternativ?

discuss

order

pornel|4 months ago

The git protocol is more complex and harder to scale. It's especially wasteful if people are going to redownload all packages every time their amnesiac CI runs.

Single-file archives are much easier to distribute.

Digests and signatures have standard algorithms, not unique to git. Key/identity management is the hard part, but git doesn't solve it for you (if you don't confuse git with GitHub).

webstrand|4 months ago

git bundles exist to solve the single-file caching and distribution problems

salzig|4 months ago

Going crazy: we cold also adopt the container registry api for distributing gems, similar to how helm charts are also distributed nower days.

zdragnar|4 months ago

Someone has to run the git server. Then, someone has to find the git server to pull each gem from, since not every git server is likely to be up-to-date with the each gem, or the correct version. Since these are all decentralized, each individual owner of a git server has to independently scale as more people start using each one.

The benefit to being centralized is... everything is in one place. Everything scales at once. Every update is available at the same time.

We did this back in the day using artifactory and co. to proxy NPM and a few other package managers as well as docker containers and some other things. No third party service going down could keep us from deploying.

Not everyone does it because as a solo developer or a small team, as it feels like pointless overhead.

salzig|4 months ago

So GitHub would be one option. Developers already discover all kind of things there. And each gem can still be provided by its “main repository”, but I don’t mind on whatever domain that repository is located. Somewhat how container images are referenced/distributed already. I think go already does it like that too.

having a decentralized, and maybe sometime unavailable, infrastructure would make more people think about the problem and maybe brings us more stable solutions than we have now.

dismalaf|4 months ago

Well, rubygems (the software) can pull from any git repository. So we kind of have it already anyway.

phoronixrly|4 months ago

You've seen golang's package... situation?... and you still think switching to Git is a good idea?

lr0|4 months ago

What "situation"?

lr0|4 months ago

Exactly. Go already adopts that.