Avec une expérience de Git/GitHub et connaissant très peu de choses sur Bazaar VCS, je voudrais signaler de temps en temps un bogue aux projets hébergés sur Launchpad, et même envoyer un correctif. J'aimerais le faire de manière "correcte" pour qu'il soit prêt à être fusionné ou à être amélioré sans que vous vous mettiez en travers.
Je n'arrive pas à trouver un simple décent Comment faire pour répondre à mes besoins.
Ce que j'ai fait jusqu'à présent:
J'ai créé un compte Launchpad,
signalé le bug,
bazaar installé et configuration des clés SSH, etc.
Maintenant, si c'était GitHub, je
bifurquez le repo,
cloner le repo forké,
créer une branche nommément 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.
Alors une âme bienveillante pourrait-elle me sauver de la noyade dans des tonnes de documents et établir un cheminement simple, principalement la deuxième partie? Peut-être inclure des commandes CLI pertinentes quand elles sont nécessaires
Edit: Il semble que je devrais préciser si je pose des questions spécifiques sur les paquets Ubuntu (peu importe ce que cela signifie) ou sur les projets Launchpad.
Je ne me soucie pas vraiment de la distinction entre les paquets Ubuntu et les paquets non-Ubuntu. N'importe quel logiciel pourrait être dans Ubuntu aujourd'hui et en sortir demain, ou inversement. Le développement est ce qui compte beaucoup plus que la distribution.
Donc je supposais que
tous les paquets distribués dans Ubuntu ne sont pas tous hébergés sur Launchpad,
il existe un flux de travaux "officiel" ou "par défaut" pour Launchpad (enfin, si tous les développeurs peuvent s'accorder sur l'utilisation de Bazaar, pourquoi la plupart d'entre eux ne pourraient-ils pas s'entendre sur un flux de travaux de correction?),
alors je parle de la manière de Launchpad, pas de celle d'Ubuntu. Et j'ai choisi UA parce que l'intersection est vaste, je suppose que c'est assez sur le sujet ici.
Est-ce un projet Launchpad?
(Si vous savez déjà qu'il s'agit d'un projet Launchpad, vous pouvez l'ignorer.)
Tous les projets trouvés sur Launchpad ne sont pas réellement hébergés et développés dans ce pays. Certains sont des miroirs de code hébergés ailleurs (GitHub/Gitorious/etc), d’autres proviennent de Debian. Ces sources originales sont connues sous le nom de projets "en amont", et il est généralement préférable de soumettre les correctifs à la source et de laisser les modifications arriver "en aval" dans Ubuntu (généralement dans la prochaine version).
Indiquez clairement sur la page du projet s'il est 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 les fichiers de correctifs simples, d'autres préfèrent les envois/envois via leurs hôtes respectifs.
À noter que les paquets officiels Ubuntu (les logiciels stockés dans les dépôts officiels Ubuntu que vous pouvez installer depuis le Centre logiciel) ont plusieurs façons différentes 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. (Ceci est une toute autre question.)
Comment soumettre un patch
La méthode générale pour soumettre un correctif consiste à créer votre branche, à la valider localement et à la renvoyer au Launchpad:
bzr Push lp:~user/project/branch-name
Vous pouvez ensuite proposer à votre branche de fusionner dans le parent depuis lequel vous avez effectué la branche, via le site Web ou à l'aide de la commande bzr lp-propose
.
Si vous avez déposé un bogue et que votre branche le corrige, veillez à suivre les instructions suivantes 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 le tableau de bord, et pas ailleurs. .
bzr commit --fixes=lp:000000
ne note sur le workflow "par défaut"
C’est à peu près le processus typique moderne que vous pouvez comparer à GitHub. 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, de sorte que certains projets plus anciens peuvent s'appuyer sur d'autres méthodes d'acceptation des correctifs. Cependant, la plupart des projets plus récents reposent sur ce flux de travail. Sur GitHub, les "demandes d'extraction" ont toujours été présentes et les utilisateurs ne l'utilisent que par défaut, car il n'y avait jamais moyen de faire autre chose avec GitHub.
Réponse initiale basée sur réponse de dobey ici et réponse de Jorge Castro à une question spécifique au projet. Les modifications/corrections/suggestions sont les bienvenues.
Créez un compte Launchpad. Cela inclura un nom d'utilisateur Launchpad (LP-USER
)
Ajoutez votre clé SSH au tableau de bord à l'adresse https://launchpad.net/~LP-USER/+editsshkeys
Sur le tableau de bord, notez le nom du projet (PROJECT-NAME
).
Signalez le problème par rapport au projet. Un numéro de bogue (000000
) sera attribué au problème.
Assurez-vous que Bazar est installé dpkg-query -l bzr
. Vous voudrez peut-être lire sur intégration Bazaar/Launchpad .
Configurez bzr avec bzr whoami "Your Name <[email protected]>"
et bzr launchpad-login LP-USER
Sur votre machine, consultez une branche locale du projet
bzr branch lp:PROJECT-NAME
(Cela créera un dossier appelé PROJECT-NAME
contenant le dernier code de projet.)
Obtenez le projet en cours d'exécution. Faire des changements. Testez vos modifications. (Ces étapes sont spécifiques à un projet et à un problème.)
Validez vos modifications, y compris le numéro de bogue (000000
).
bzr commit --fixes=lp:000000
Cela ouvrira une boîte de dialogue de validation dans laquelle vous pourrez ajouter une entrée expliquant vos modifications.
Poussez vos modifications dans Launchpad. (Cela créera une nouvelle branche distante associée à votre compte.)
bzr Push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
(NEW-BRANCH-NAME
devrait être un nom descriptif court du problème corrigé/fonctionnalité ajoutée)
Ouvrez la branche de votre navigateur avec bzr lp-open
ou en allant à https://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/
Proposez une fusion avec bzr lp-propose
ou à partir de l'URL de la dernière étape en sélectionnant "Proposer pour la fusion", en ajoutant une description, collez dans lp:PROJECT-NAME
pour la branche que vous souhaitez proposer, puis cliquez sur Submit.