GitHub publie GitHub Package Registry en beta ouverte,
un nouveau service qui permet de gérer les livrables associés aux dépôts

Contexte

GitHub, s'il est encore besoin de la présenter, est une entreprise américaine fournissant un service d'hébergement de dépôts git sur Internet. Le service a été ouvert en octobre 2007 et depuis s'est imposé comme le standard pour un grand nombre de projets open source. De nombreuses entreprises utilisent également le service en ligne pour y héberger leurs dépôts privés, certaines autres utilisent la version "enterprise" qui leur permet de bénéficier du service tout en conservant le contrôle de leurs données en installant dans leur propre réseau une version payante de GitHub.

Le dernier State Of the Octoverse qui a eu lieu à l'automne 2018 établissait la plateforme comme le leader pour l'hébergement de code source avec presque 100 millions de dépôts hébergés.

Nom : github-package-registry-min.png
Affichages : 1930
Taille : 5,4 Ko

Le 10 mai dernier, GitHub a dévoilé sur son blog un nouveau service nommé GitHub Package Registry, publié en beta.

L'annonce effectuée par Simina Pasat, directrice du management des produits chez GitHub et anciennement employée par Microsoft, décrit le nouveau service comme pleinement intégré à GitHub.

Qu'est ce qu'un registre ?

Un registre est un service d'hébergement et d'indexation de livrables.

Lorsqu'un développeur (ou une équipe) publie une nouvelle version de son application ou de sa bibliothèque, il ne publie pas le code source sous sa forme brute ni même le binaire si binaire il y a.

Le code source (ou le binaire c'est selon) est conditionné dans un paquet (le livrable) qui est lui publié sur un registre. Ce livrable est alors utilisé en tant que dépendance dans un projet ou directement déployé sur un serveur.

Un registre va de pair avec un package manager. Il s'agit d'un outil CLI (Command Line Interface) permettant aux développeurs de manipuler le registre.

Ce couple CLI / registre permet à la fois de gérer les dépendances d'un projet en les téléchargeant dans les versions souhaitées, et à la fois à publier ses projets pour servir en tant que dépendance ou dans le but d'être déployés.

Jusqu'à hier, chaque écosystème avait un ou plusieurs registre dédiés et un ou plusieurs outil CLI :

  • JavaScript dispose du registre npm et des CLI npm et yarn ;
  • Java dispose de Maven Central et du CLI Maven ;
  • PHP de Packagist ;
  • .NET de NuGet ;
  • etc.


On peut trouver une liste non-exhaustive mais très fournie des packages managers existants sur le site libraries.io ainsi qu'un moteur de recherche inter-registres.

Le service

Entièrement intégré à l'expérience utilisateur existante de GitHub pour gérer les dépôts, ce nouveau service permet de gérer les livrables associés à ces dépôts.

Un nouvel onglet "Packages" est disponible depuis votre profil GitHub, listant les différents livrables hébergés.

Nom : github-package-registry-profile.png
Affichages : 1759
Taille : 83,6 Ko

De même un nouveau bouton "Packages" est disponible dans la partie "Release" de votre dépôt.

Nom : github-package-registry-repo.png
Affichages : 1794
Taille : 146,4 Ko

Ce nouveau service est compatible avec les registres majeurs existants.

Pour le moment les registres supportés sont :

  • npm (JavaScript) ;
  • Maven (Java) ;
  • NuGet (.NET) ;
  • RubyGems (Ruby) ;
  • Docker.


La documentation du service indique comment configurer les outils CLI existants afin de leur permettre de manipuler les livrables depuis le nouveau registre de GitHub.

Avantage concurrentiel

Le nouveau service de GitHub hérite naturellement de toute la gestion utilisateur de GitHub.

Il permet ainsi aux équipes de développement d'économiser cette gestion en l'unifiant sur GitHub.

Plus besoin d'avoir des accréditations et des comptes multiples pour gérer le ou les registre(s) de tel projet dans tel langage, tout peut être concentré sur GitHub.

On pourra par exemple avoir au même endroit le code source, le livrable pour le registre de référence et l'image docker correspondante.

C'est un avantage majeur pour GitHub qui entre de fait en concurrence avec tous les autres fournisseurs de registres.

Sources :

Introducing GitHub Package Registry par Simina Pasat sur le blog GitHub officiel.
Your packages, at home with their code, sur GitHub
Aide en ligne de GitHub.

Et vous ?

Pensez-vous utiliser ce nouveau service à l'avenir ?
La concentration des codes sources et des livrables au sein d'une même plateforme est-elle une bonne chose ?
Les registres indépendants résisteront-ils à cette nouvelle concurrence ?
Voyez-vous dans ce nouveau service une continuité dans la stratégie de Microsoft sur l'opensource ?