Com experiência em Git / GitHub e conhecendo muito pouco sobre o Bazaar VCS, gostaria ocasionalmente de relatar um bug em projetos hospedados no Launchpad e até enviar um patch. Eu gostaria de fazê-lo de uma maneira "adequada", para que esteja pronto para mesclar ou melhorar sem atrapalhar.
Parece que não consigo encontrar um guia simples decente adequado às minhas necessidades.
O que eu fiz até agora:
Eu criei uma conta no Launchpad,
relatou o bug,
Bazaar instalado e configurar chaves SSH etc.
Agora, se fosse o GitHub, eu teria
bifurque o repo,
clonar o repositório bifurcado,
crie uma filial com nome saudável e faça o trabalho,
confirmar + empurrar,
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 amável poderia me salvar de me afogar em toneladas de documentos e compilar um caminho simples, principalmente a segunda parte? Possivelmente incluindo comandos CLI relevantes quando necessários?
Edit: Parece que devo esclarecer se estou perguntando especificamente sobre pacotes Ubuntu (o que quer que isso signifique) ou projetos do Launchpad.
Eu realmente não me importo muito com distinção entre pacotes Ubuntu e pacotes não-Ubuntu. Qualquer software pode estar no Ubuntu hoje e sair amanhã, ou vice-versa. O desenvolvimento é o que importa muito mais do que 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 podem concordar em usar o Bazaar, por que a maioria deles não concordou com um fluxo de trabalho de correção?),
então estou perguntando sobre o modo Launchpad, não o modo Ubuntu. E eu escolhi a AU porque, como a interseção é vasta, acho que é bastante interessante aqui.
Respostas:
É um projeto do Launchpad?
(Se você já sabe que é um projeto do Launchpad, pode pular isso.)
Nem todos os projetos encontrados no Launchpad são realmente hospedados e desenvolvidos lá - alguns são espelhos de código hospedados em outros lugares (GitHub / Gitorious / etc), outros são do Debian. Essas fontes originais são conhecidas como projetos "upstream", e geralmente é melhor enviar correções na fonte e deixar que as mudanças cheguem "downstream" no Ubuntu (normalmente na próxima versão).
Deve ser claramente indicado na página do projeto se ele está hospedado em outro lugar ou na Barra de Ativação. Caso contrário, pergunte aos mantenedores do projeto como eles desejam receber as alterações. Alguns projetos upstream preferem arquivos de correção simples, outros preferem envios / empurrões por meio de seus respectivos hosts.
Como nota especial, os pacotes oficiais do Ubuntu (software armazenado nos repositórios oficiais do Ubuntu que você pode instalar a partir do Centro de Software) têm algumas maneiras diferentes de enviar patches, já que muitos desses pacotes vêm diretamente do Debian e devem, idealmente, ser corrigidos lá ao invés de apenas no Ubuntu. (Essa é outra questão.)
Como enviar um patch
A maneira geral de enviar um patch é fazer seu branch, comprometer-se localmente e enviá-lo de volta ao Launchpad:
Em seguida, você pode propor que sua ramificação seja mesclada ao pai de onde você ramificou, seja pelo site ou usando o
bzr lp-propose
comandoSe você registrou um bug e sua ramificação o corrigiu, faça o seguinte ao confirmar, onde
000000
é substituído pelo número do seu bug, assumindo que é um bug relatado no Launchpad e não em outro lugar.Uma observação sobre o fluxo de trabalho "padrão"
Esse é praticamente o fluxo de trabalho moderno típico , que você pode comparar com o GitHub. O Launchpad já dura um pouco mais, portanto, esse fluxo de trabalho evoluiu após o fato, em vez de ser incorporado no sistema desde o início, para que alguns projetos mais antigos possam contar com outros métodos de aceitação de patches. Porém, quase todos os projetos mais recentes contam com esse fluxo de trabalho, onde no GitHub as "solicitações de recebimento" sempre existiram e as pessoas simplesmente o usam porque nunca houve um meio de fazer algo diferente no GitHub.
fonte
Resposta inicial baseada na resposta de dobey aqui e na resposta de Jorge Castro a uma pergunta específica do projeto. Edições / correções / sugestões são bem-vindas.
Crie uma conta no Launchpad. Isso incluirá um nome de usuário da barra de ativação (
LP-USER
)Adicione sua chave SSH à barra de ativação em
https://launchpad.net/~LP-USER/+editsshkeys
No Launchpad, observe o nome do projeto (
PROJECT-NAME
).Relate o problema no projeto. O problema receberá um número de bug (
000000
).Verifique se o Bazaar está instalado
dpkg-query -l bzr
. Você pode ler sobre a integração do Bazaar / Launchpad .Configure o bzr com
bzr whoami "Your Name <[email protected]>"
ebzr launchpad-login LP-USER
Na sua máquina, confira uma filial local do projeto
(Isso criará uma pasta chamada que
PROJECT-NAME
contém o código de projeto mais recente.)Coloque o projeto em execução. Faça mudanças. Teste suas alterações. (Essas etapas são específicas do projeto e do problema.)
Confirme suas alterações, incluindo o número do bug (
000000
).Isso abrirá uma caixa de diálogo de confirmação na qual você pode adicionar uma entrada no registro de alterações que explica suas alterações.
Envie suas alterações para o Launchpad. Isso criará uma nova filial remota associada à sua conta.
(
NEW-BRANCH-NAME
deve ser um nome descritivo curto do problema corrigido / recurso adicionado)Abra uma ramificação no seu navegador com
bzr lp-open
ou indo parahttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/
Propor uma mesclagem com
bzr lp-propose
ou a partir da URL na última etapa, selecionando "Propor para mesclagem", adicionando uma descrição, colelp:PROJECT-NAME
o ramo que você deseja propor e clique em Submit.fonte
ubuntu/saucy/msttcorefonts
estou fazendobzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname
ou apenasbzr push lp:~amandabee/msttcorefonts/actualbranchname
bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname
trabalhou