J'ai préparé un téléchargement en clonant un référentiel git-ubuntu et en validant certaines modifications localement. En tant que développeur Ubuntu, j'ai la permission de télécharger dans l'archive. Que dois-je faire pour télécharger correctement mes modifications?
Vous avez deux options.
Vous pouvez dput
comme d'habitude sans rien faire de plus. Une fois que Launchpad a accepté votre téléchargement, l'importateur git-ubuntu le récupérera et synthétisera un commit qui lui correspond. Les pointeurs de branche dans le référentiel git-ubuntu seront mis à jour en conséquence.
Il s'agit du résultat par défaut et signifie que les flux de travail des développeurs existants ne sont pas obligés de changer.
Cela signifie qu'un ensemble plus riche de commits que vous avez pu faire localement ne sera pas conservé dans le référentiel "officiel" de git-ubuntu pour le paquet.
Vous remarquerez que c'est ainsi que la majorité des téléchargements dans git-ubuntu aujourd'hui ont été importés, car nous n'avons pas d'historique riche pour les téléchargements historiques.
La conception de git-ubuntu permet de préserver pleinement vos commits en les adoptant dans le dossier "officiel". Cependant, la mise en œuvre n'est pas encore terminée. Pour l'instant, nous avons une mesure provisoire qui permet une riche conservation de l'histoire, mais cela nécessite malheureusement quelques étapes manuelles.
Notez que cela ne s'applique qu'aux téléchargeurs Ubuntu.
Si vous avez besoin d'un sponsor, veuillez d'abord demander à votre sponsor, car la conservation de quelque chose qui ne correspond pas exactement au téléchargement ultérieur ne fonctionnera pas. N'oubliez pas que la préservation d'une riche histoire est facultative. Veuillez ne pas supposer que votre sponsor est disposé à suivre ce processus.
Avant dput
, demandez à un membre de ~ usd-import-team de rendre votre riche historique visible à l'importateur pour qu'il l'adopte. Dès que le service importateur voit le téléchargement du package dans Launchpad, il recherchera cet historique riche et synthétisera un commit s'il ne peut pas être trouvé, c'est pourquoi cela doit être fait avant dput
.
Le moyen le plus simple de fournir à ~ usd-import-team votre riche historique est via un lien vers une proposition de fusion. Notez qu'il n'y a pas encore de processus général garantissant que les propositions de fusion contre les branches git-ubuntu sont examinées. Veuillez organiser cela vous-même ou approuver vous-même comme vous le souhaitez; lorsque vous êtes prêt à dput
, envoyez-nous un lien vers la proposition de fusion pour l'étape de conservation de l'historique riche uniquement.
Maintenant que prise en charge de l'ACL par référence du Launchpad est prêt, nous espérons pouvoir permettre aux téléchargeurs Ubuntu de pousser l'historique riche pour être visible directement par l'importateur, supprimant ainsi la latence de l'étape humaine supplémentaire actuellement requise. .
À terme, nous souhaitons que le service d'importateur git-ubuntu puisse récupérer une riche histoire directement à partir de propositions de fusion ou similaires.
Pourquoi cela semble-t-il obtus?
Le référentiel git-ubuntu est destiné à refléter la source unique de vérité, qui pour Ubuntu est la publication Launchpad des packages Ubuntu. Les développeurs Ubuntu téléchargent les mises à jour des packages; ceux-ci sont publiés et le référentiel git devrait refléter ces publications. C'est l'opposé des autres projets de développement où le flux est l'inverse: normalement les développeurs poussent vers git, et font des versions à partir de git.
Pour empêcher le référentiel git de ne pas correspondre aux publications Launchpad, il est nécessaire de s'assurer que les mises à jour de la branche git-ubuntu correspondent exactement à leurs publications Launchpad correspondantes avant d'être poussées. Nous y parvenons en limitant les poussées au service d'importateur git-ubuntu uniquement. Le service d'importateur adoptera un historique riche fourni par l'uploader uniquement s'il correspond exactement à la publication Launchpad qu'il importe. Si l'historique riche fourni ne correspond pas, ou si l'historique riche n'est pas fourni, l'importateur synthétisera à la place un commit qui correspond exactement à la publication Launchpad qu'il importe.
Cela signifie que nous avons besoin d'un moyen de fournir un historique riche au service d'importateur git-ubuntu, qui devrait expliquer les trois options détaillées ci-dessus.