GitHub announces GitHub Package Registry

twitter logo github logo ・1 min read

GitHub just announced GitHub Package Registry. They set up an info page you can check out: https://github.com/features/package-registry

Follow Tierney Cyren (@bnb ) on Twitter to follow along live.


What are your reactions to the announcement?

twitter logo DISCUSS (26)
markdown guide
 

I actually have no idea what a package registry is, or what it does. I read this article on Tech Crunch and still am not really sure what it means: techcrunch.com/2019/05/10/github-g...

An "explain like I'm five" would be greatly appreciated! 🙇‍♂️

 

Let's say you're working in a restaurant...

You, as a chef, don't wanna take the recipes from other chefs and cook it by yourself everytime you wanna create that delicious plate (that needs many recipes).

You would love if you had a kitchen that serves some ready-to-eat commodity food and compose it into your special plate.

Now, the lovely thing about that kitchen is that it keeps old commidity food with labels because some chefs prefer the old taste of that commodity food, and the kitchen is only allowed to enter for the chefs of that restaurant (because you don't wanna share your trade secrets with other restaurants).

Now change the above story wording:

Restaruant = your organization

Chefs = other developers/teams in your organizations

Recipe = package code (raw)

Kitchen = registry

Commodity food = packages (ready to be consumed)

Plate = your app

Labels = versions of those packages (to ensure new version won't affect apps using previous version of that package)

 

A good analogy and precisely why I'm looking forward to it.

 

Yes, it is like npm registry...

But, they say it supports all shapes and colors of registries (npm, maven, nuget... etc).

 

So something like a local maven repository (artifactory, nexus,...) instead of using maven central?

I'm not familiar with Java tooling, but I read about it and it seems like nexus.

If you're familiar with docker it's like a docker registry.

I think the unique value here is that it's a cloud based solution from the mighty Github.

Both sonatype (makers of maven, Nexus, and maintainers of central report) and jfrog (makers of artifactory) have cloud based solutions.
But they are mostly not gratis.

 
 

same :D

it seems great for big co's that have private packages shared among teams though!

 
 

This will be a enormous fragmented repo world.

As a Java developer I do not see any good reason to move away from Maven Central any time soon.

As for public repos, I do not see any mentions of repo and package integrity. The fact that they allow arbitrary deletion doesn't help in creating trust in these repos.

 

At first I was quite worried that Microsoft would be gaining even more monopoly on the developer workflow, but then I realized that this wouldn’t be competing with existing tools, but only be there as another location from which packages can be downloaded from.

I think for the general public this doesn’t solve any actual problem, because you don’t want your users to have to install your specific package from say registry.github.com instead of registry.npmjs.org (which I think is the default for JavaScript).

For businesses and private enterprise usage however, I can totally see how this would solve the problem of sharing private packages across teams.

In Python in particular, you can specify the registry once and for all in the Pipfile (provided you’re using Pipenv). The default PyPI index is already listed so you just have to swap it for yours, and there you go!

So I guess this is a nice feature that some people may find useful, but that won’t change the way people do open source.

 

Very interesting of course! But also not sure what to think of it.
Everything is in one place and easy to manage <-> You are locked in the Github 'ecosystem'

Also wondering if they will support other registries, for example Composer (PHP).

 

After reading the feature page quickly I think one of their big benefits is gonna be for businesses that want to have a private hosted registry.
I know that's something we've wanted before at my company, and I could see us easily adopting this product since it fits into Githubs existing security model.

Not sure I'll use it personally, but if it gains momentum maybe I'll push to this to as a second registry :shrug:

 

So it only took a day for me to realize that I would actually like this personally too 😆

So now I just have to wait patiently for my beta invite!

 

Well it's the next step. I like the idea of that. Especially when its integrated directly in pip or npm :)

On pip I could also install private repos. Maybe its more comfortable in the future

pip3 install -U 'git+ssh://git@github.com/...'
 

Assuming I understand package registries, I'm not sure what problem GitHub is trying to solve with their own package registry. Is the point of this so that your source code will be on GitHub and the package will also be published there, so it is a "one-stop shop"? Will I still need to use npm's/yarn's CLI for JavaScript, but change where it downloads the packages from? If I understand that correctly, it would seem like a hassle if only some packages I am using are on GitHub's registry, but all of them are on npm's registry. Wouldn't it make sense just to use npm?

Is this more beneficial to enterprise customers that already use GitHub for their code so that they can have their private packages published in GitHub's registry instead of npm Enterprise or setting up and maintaining their own registry?

 

I wrote a direct reply to these news here: dev.to/victorb/the-everlong-quest-...

TLDR: GitHub Package Registry is great, but not enough to make sure we get a solid package registry for the long-term.

 

I love the idea of having releases strongly tied to actual git commits/ tags. With Actions, I can see a near future where you can verify a given release is exactly what is in the repo. GitHub would know that a given artifact was released from an action and can verify "this artifact was the result of a build on the push of this commit".

 

A really good thing for private registries (particularly for Maven, can't really tell for others), but likely to make things harder for consumers of public artifacts, so public projects should avoid that feature (unless maybe it's coupled with bot to auto-deploy to public central registries)

 

Great! So when Github goes down I can no longer run ‘npm install’. No thank you. There are times when decentralization is a good thing.

 
 
 

We will see how it goes. I think the Docker and Npm registry is a good option.

 

It will be hard to pick up steam with initial adoption even if there is good reason.

Classic DEV Post from Jan 28

Nuxt.js v2.4.0 is out! TypeScript, Smart prefetching and more...

We are proud to finally release the v2.4.0 of Nuxt.js, a major release with plenty of features and bug fixes.

Peter Kim Frank profile image
Working on a little bit of everything at DEV.