web-dev-qa-db-fra.com

Que se passe-t-il si le référentiel de dépendances est supprimé sur GitHub?

  • Je possède un référentiel GitHub, A.
  • Le référentiel B est un autre projet open-source, appartenant à quelqu'un d'autre.
  • Le référentiel A dépend du référentiel B (le référentiel B est un sous-module de A).

Si le propriétaire du référentiel B décide de supprimer ce référentiel, les utilisateurs ne pourront plus cloner/extraire/construire mon référentiel.

Dois-je préempter par fourche B à utiliser comme sauvegarde au cas où le propriétaire déciderait de le supprimer? Cette situation est-elle considérée comme dangereuse ou comment est-elle généralement gérée pour les projets en open source?

9
smg

Si le propriétaire du référentiel B décide de supprimer ce référentiel, les utilisateurs ne pourront plus cloner/extraire/construire mon référentiel.

Si le code dépendant "repo B" disparaît:

  • Tous les utilisateurs pourront cloner avec succès votre repo.
  • Les utilisateurs existants auront probablement une copie du référentiel B localement et continueront à créer. En règle générale, les dépôts clonés ne sont pas supprimés si la source est supprimée, sauf si un utilisateur a tout mis en œuvre pour configurer spécifiquement ce scénario. Comme Git est un DVCS, il est conçu pour se protéger contre ce genre de chose.
  • Les nouveaux utilisateurs non pourront construire votre référentiel jusqu'à ce qu'ils puissent obtenir une copie du référentiel B de quelque part. Vous seriez dans ce bateau puisque vous ne stockez pas de sauvegarde.

Dois-je préempter par fourche B à utiliser comme sauvegarde au cas où le propriétaire déciderait de le supprimer?

Oui.

Est-ce considéré comme une situation dangereuse ou comment est-il généralement traité pour des projets en open source?

Oui, il est dangereux de se trouver dans cette situation en fonction de la popularité/distribution/miroir du dépôt dépendant et de l’importance de votre dépôt pour vous. Si cela est important pour les autres, ils (espérons-le) ont déjà une sauvegarde de votre référentiel et du référentiel dep.

Notez que vous pouvez le copier sur votre compte sur GitHub et ne pas le cloner sur votre SSD pour ne pas occuper d'espace. De plus, gardez à l'esprit que cette option de sauvegarde ne dépend pas de ce que rien ne se passe sur les serveurs de GitHub ou que votre compte ne soit compromis vous seul pouvez déterminer le degré de redondance qui convient.

Tenez compte de la quantité de code sur laquelle vous comptez, de sa popularité, de la difficulté à le reproduire et du coût de son stockage fiable. Après avoir examiné cette évaluation des risques, sauvegardez-la en conséquence.


Comme le coût semble être un facteur important dans votre situation étant donné que vous ne voulez pas dépenser plus pour un SSD plus grand, voici une liste d'options de sauvegarde peu coûteuses:

  1. Évidemment, placez-le sur GitHub car il est totalement gratuit. GitHub utilisera la déduplication afin que le coût soit extrêmement minime pour eux.
  2. Localement (gratuit), anciens disques durs en rotation ou clés USB. En outre, vous payez peut-être déjà pour une sauvegarde gratuite dans le cloud via votre fournisseur d'accès Internet ou votre fournisseur de cellule.
  3. À distance (gratuit), nombreuses options de sauvegarde sur le cloud gratuites ou demandez à un ami.
  4. À distance ($), achetez un forfait Usenet par Go et téléchargez-le sur Usenet (~ 25 Go pour 10 USD)
3
adam