Avec un background Git / GitHub et connaissant très peu Bazaar VCS, je voudrais occasionnellement signaler un bug aux projets hébergés sur Launchpad, et même envoyer un patch. Je voudrais le faire d'une manière "correcte" afin qu'il soit prêt à fusionner ou à s'améliorer sans se mettre en travers.
Je n'arrive pas à trouver un mode d'emploi simple décent adapté à mes besoins.
Ce que j'ai fait jusqu'à présent:
J'ai créé un compte Launchpad,
a signalé le bug,
installé Bazaar et configuré les clés SSH, etc.
Maintenant, si c'était GitHub, je
bifurquer le repo,
cloner le dépôt fourchu,
créer une branche bien nommée et faire le travail,
commit + push,
créer une demande d'extraction à l'aide de GitHub WUI.
Mais ce n'est pas GitHub, et les architectures Launchpad et Bazaar semblent assez différentes de leurs homologues GitHub / Git.
Une âme bienveillante pourrait-elle donc m'éviter de me noyer dans des tonnes de documents et compiler un chemin simple, principalement la deuxième partie? Incluant éventuellement des commandes CLI pertinentes lorsqu'elles sont nécessaires?
Edit: Il semble que je devrais clarifier si je pose des questions spécifiquement sur les packages Ubuntu (quoi que cela signifie) ou les projets Launchpad.
Je ne me soucie pas vraiment de la distinction entre les packages Ubuntu et les packages non Ubuntu. Tout logiciel pourrait être dans Ubuntu aujourd'hui et en sortir demain, ou vice-versa. Le développement est ce qui compte beaucoup plus que la distribution.
Je supposais donc que
tous les packages distribués dans Ubuntu ne sont pas hébergés sur Launchpad,
il existe un workflow "officiel" ou "par défaut" pour Launchpad (enfin si tous les développeurs peuvent se mettre d'accord sur l'utilisation de Bazaar, pourquoi la plupart d'entre eux ne pourraient-ils pas s'entendre sur un workflow de patch?),
donc je pose des questions sur la manière Launchpad, pas la manière Ubuntu. Et j'ai choisi AU parce que puisque l'intersection est vaste, je suppose que c'est assez sur le sujet ici.
Réponses:
Est-ce un projet Launchpad?
(Si vous savez déjà qu'il s'agit d'un projet Launchpad, vous pouvez ignorer cela.)
Tous les projets trouvés sur Launchpad n'y sont pas réellement hébergés et développés - certains sont des miroirs de code hébergés ailleurs (GitHub / Gitorious / etc), d'autres viennent de Debian. Ces sources originales sont appelées projets "en amont", et il est généralement préférable de soumettre des correctifs à la source et de laisser les modifications arriver "en aval" dans Ubuntu (généralement dans la prochaine version).
Il doit être clairement indiqué sur la page du projet, qu'il soit hébergé ailleurs ou sur Launchpad. Sinon, demandez simplement aux responsables du projet comment ils souhaitent recevoir les modifications. Certains projets en amont préfèrent des fichiers correctifs simples, d'autres préfèrent les soumissions / push via leurs hôtes respectifs.
En particulier, les paquets Ubuntu officiels (logiciels stockés dans les dépôts officiels Ubuntu que vous pouvez installer à partir du Centre logiciel) ont plusieurs façons de soumettre des correctifs, car beaucoup de ces paquets proviennent directement de Debian et devraient idéalement y être corrigés. plutôt que seulement dans Ubuntu. (C'est une toute autre question.)
Comment soumettre un patch
La manière générale de soumettre un patch est de créer votre branche, de vous y engager localement et de la repousser vers Launchpad:
Vous pouvez ensuite proposer la fusion de votre branche dans le parent à partir duquel vous avez créé votre branche, soit via le site Web, soit à l'aide de la
bzr lp-propose
commande.Si vous avez déposé un bogue et que votre branche le corrige, assurez-vous de faire ce qui suit lors de la validation, où
000000
est remplacé par votre numéro de bogue, en supposant qu'il s'agit d'un bogue signalé sur Launchpad, et pas ailleurs à la place.Une note sur le workflow "par défaut"
C'est à peu près le flux de travail moderne typique , que vous pouvez comparer à GitHub. Le Launchpad existe depuis un peu plus longtemps, donc ce flux de travail a évolué après coup, plutôt que d'être intégré au système depuis le début, donc certains projets plus anciens peuvent s'appuyer sur d'autres méthodes d'acceptation des correctifs. Cependant, la plupart des nouveaux projets s'appuient sur ce flux de travail, où sur GitHub les "demandes de tirage" ont toujours été là, et les gens l'utilisent par défaut car il n'y avait jamais de moyen de faire quelque chose de différent sur GitHub.
la source
Réponse initiale basée sur la réponse de dobey ici et la réponse de Jorge Castro à une question spécifique au projet. Modifications / corrections / suggestions bienvenues.
Créez un compte Launchpad. Cela comprendra un nom d'utilisateur Launchpad (
LP-USER
)Ajoutez votre clé SSH au tableau de bord à
https://launchpad.net/~LP-USER/+editsshkeys
Sur Launchpad, notez le nom du projet (
PROJECT-NAME
).Signalez le problème par rapport au projet. Le problème se verra attribuer un numéro de bogue (
000000
).Assurez-vous que Bazaar est installé
dpkg-query -l bzr
. Vous voudrez peut-être lire sur l' intégration Bazaar / Launchpad .Configurer bzr avec
bzr whoami "Your Name <[email protected]>"
etbzr launchpad-login LP-USER
Sur votre machine, consultez une branche locale du projet
(Cela créera un dossier appelé
PROJECT-NAME
contenant le dernier code de projet.)Lancez le projet. Faire des changements. Testez vos modifications. (Ces étapes sont spécifiques au projet et au problème.)
Validez vos modifications, y compris le numéro de bogue (
000000
).Cela ouvrira une boîte de dialogue de validation dans laquelle vous pourrez ajouter une entrée de journal des modifications expliquant vos modifications.
Envoyez vos modifications à Launchpad. (Cela créera une nouvelle succursale distante associée à votre compte.)
(
NEW-BRANCH-NAME
devrait être un nom descriptif court du problème résolu / fonctionnalité ajoutée)Ouvrez une succursale dans votre navigateur avec
bzr lp-open
ou en allant surhttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/
Proposez une fusion avec
bzr lp-propose
ou à partir de l'URL à la dernière étape en sélectionnant "Proposer pour la fusion", en ajoutant une description, collezlp:PROJECT-NAME
la branche que vous souhaitez proposer et cliquez Submit.la source
ubuntu/saucy/msttcorefonts
je faisbzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname
ou simplementbzr push lp:~amandabee/msttcorefonts/actualbranchname
bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname
travaillé