Como envio um patch para um projeto do Launchpad?

17

Com um histórico do Git / GitHub e sabendo muito pouco sobre o Bazaar VCS, eu gostaria de ocasionalmente reportar um bug para projetos hospedados no Launchpad, e até mesmo enviar um patch. Eu gostaria de fazer isso de uma maneira "adequada", de modo que esteja pronto para mesclar ou melhorar, sem entrar no caminho.

Parece que não consigo encontrar um simples e prático tutorial adequado às minhas necessidades.

O que eu fiz até agora:

  1. Eu criei uma conta do Launchpad,

  2. relatou o bug,

  3. Instalar o Bazaar e configurar chaves SSH, etc.

Agora, se fosse o GitHub, eu

  1. bifurque o repo,

  2. clone o repositório bifurcado,

  3. crie uma ramificação com nome apropriado e faça o trabalho

  4. confirmar + push,

  5. crie uma solicitação de recebimento usando o GitHub WUI.

Mas não é o GitHub, e as arquiteturas do Launchpad e do Bazaar parecem bem diferentes de suas contrapartes do GitHub / Git.

Então uma alma gentil poderia me salvar de se afogar em toneladas de documentos e compilar um caminho simples, principalmente a segunda parte? Possivelmente incluindo comandos relevantes da CLI quando são necessários?

Edit: Parece que eu deveria esclarecer se estou perguntando especificamente sobre pacotes do Ubuntu (o que quer que isso signifique) ou projetos do Launchpad.

Eu realmente não me importo muito com distinção entre pacotes do Ubuntu e pacotes não-Ubuntu. Qualquer software pode estar no Ubuntu hoje e fora dele amanhã, ou vice-versa. O desenvolvimento é o que importa muito mais que a distribuição.

Então eu estava assumindo que

  • nem todos os pacotes distribuídos no Ubuntu estão hospedados no Launchpad,

  • existe um fluxo de trabalho "oficial" ou "padrão" para o Launchpad (bem, se todos os desenvolvedores puderem concordar em usar o Bazaar, por que a maioria deles não concorda com um fluxo de trabalho de correção?),

então eu estou perguntando sobre o caminho do Launchpad, não o caminho do Ubuntu. E eu escolhi AU porque desde que o cruzamento é vasto, eu acho que é bonito no assunto aqui.

    
por Alois Mahdal 07.11.2013 / 20:56

2 respostas

14

Trata-se de um projeto do Launchpad?

(Se você já sabe que é um projeto do Launchpad, você pode pular isto.)

Nem todos os projetos encontrados no Launchpad são realmente hospedados e desenvolvidos lá - alguns são espelhos do código hospedado em outro lugar (GitHub / Gitorious / etc), outros vêm do Debian. Essas fontes originais são conhecidas como projetos "upstream", e geralmente é melhor enviar patches na origem e deixar as alterações chegarem "downstream" no Ubuntu (geralmente na próxima versão).

Deve ser claramente indicado na página do projeto se ele está hospedado em outro lugar ou no Launchpad. Se não, basta perguntar aos mantenedores do projeto como eles desejam receber as mudanças. Alguns projetos de upstream preferem arquivos de correção simples, outros preferem envios / envios através de seus respectivos hosts.

Como uma nota especial, os pacotes oficiais do Ubuntu (software armazenado nos repositórios oficiais do Ubuntu que você pode instalar do Centro de Software) tem algumas maneiras diferentes de enviar correções, pois muitos desses pacotes vêm diretamente do Debian e devem idealmente ser corrigido lá e não apenas no Ubuntu. (Esta é uma outra pergunta).

Como enviar um patch

A maneira geral de enviar um patch é que você faça sua ramificação, faça o commit localmente e envie de volta para o Launchpad:

bzr push lp:~user/project/branch-name

Você pode então propor a sua ramificação para mesclar no pai de onde você veio, seja através do site, ou usando o comando bzr lp-propose .

Se você registrou um bug, e sua filial corrige, certifique-se de fazer o seguinte ao cometer, onde 000000 é substituído pelo seu número de bug, supondo que seja um bug relatado no Launchpad, e não em outro lugar em vez disso.

bzr commit --fixes=lp:000000

Uma nota sobre o fluxo de trabalho "padrão"

Esse é basicamente o fluxo de trabalho típico moderno , que você pode comparar ao GitHub. No entanto, o Launchpad tem sido um pouco mais longo, portanto, esse fluxo de trabalho evoluiu após o fato, em vez de ser incorporado ao sistema desde o início, portanto, alguns projetos mais antigos podem depender de outros métodos de aceitação de patches. A maioria dos projetos mais recentes dependem desse fluxo de trabalho, onde no GitHub os "pull requests" sempre estiveram lá, e as pessoas simplesmente usam o padrão porque nunca houve um meio de fazer algo diferente no GitHub.

    
por dobey 07.11.2013 / 21:38
7

Resposta inicial com base na resposta do dobey aqui e A resposta de Jorge Castro a uma pergunta específica do projeto. Edições / correções / sugestões bem-vindas.

  1. Crie uma conta do Launchpad. Isso incluirá um nome de usuário do Launchpad ( LP-USER )

  2. Adicione sua chave SSH ao launchpad em https://launchpad.net/~LP-USER/+editsshkeys

  3. No Launchpad, observe o nome do projeto ( PROJECT-NAME ).

  4. Relate o problema contra o projeto. O problema receberá um número de bug ( 000000 ).

  5. Verifique se o Bazaar está instalado dpkg-query -l bzr . Você pode querer ler em integração Bazaar / Launchpad .

  6. Configure o bzr com bzr whoami "Your Name <[email protected]>" e bzr launchpad-login LP-USER

  7. Na sua máquina, confira uma filial local do projeto

    bzr branch lp:PROJECT-NAME
    

    (Isso criará uma pasta chamada PROJECT-NAME contendo o código do projeto mais recente).

  8. Obtenha o projeto em execução. Faça mudanças. Teste suas mudanças. (Essas etapas são específicas do projeto e da edição).

  9. Confirme suas alterações, incluindo o número do bug ( 000000 ).

    bzr commit --fixes=lp:000000
    
  10. Isso abrirá uma caixa de diálogo de confirmação, na qual você poderá adicionar uma entrada de changelog explicando suas alterações.

  11. Envie suas alterações para o Launchpad. (Isso criará uma nova ramificação remota associada à sua conta.)

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAME deve ser um nome descritivo curto do problema corrigido / adicionado ao recurso)

  12. Abra uma ramificação no seu navegador com bzr lp-open ou indo para https://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. Proponha uma mesclagem com bzr lp-propose ou da URL na última etapa selecionando "Propor para mesclar", adicionando uma descrição, cole em lp:PROJECT-NAME da ramificação na qual deseja propor e clique em Enviar .

por d3vid 27.11.2013 / 09:15