Eu quero consertar um bug. Por onde começo?

47

Embora eu não seja um programador profissional, escrevi um ou dois programas. No entanto, hoje em dia todo engenheiro e cientista aprende a programar um pouco também e, como tal, estou acostumado a escrever programas em Python, C e MATLAB. Agora eu quero retribuir um pouco ao Ubuntu e seus excelentes amigos e consertar um bug!

Eu dei uma olhada na lista da campanha de tamanho pequeno e tive que descobrir que a maioria não é tão fácil para eu consertar, pois suspeito que eles precisam de muito tempo para entrar no assunto, e eu não tenho isso. Ainda assim, eu descobri este e parece administrável e como um recurso interessante para mim.

Como eu nunca escrevi um patch ou lancei um programa na natureza antes, no entanto, não tenho idéia por onde começar. Qual deve ser o meu primeiro passo para resolver esse problema?

Conclusão: onde e como começo a consertar esse cara?

Ingo
fonte
11
qual é o seu passado? Você conhece os sistemas de controle de versão? Nas práticas de embalagem?
Pygabriel
Não, ainda não estou familiarizado com isso! Sujeito a alterações ...
Ingo

Respostas:

31

Responder a essa pergunta pode ser longo e complicado, por isso vou apontar os recursos disponíveis em vez de reformulá-los aqui.

Documentação

  1. Preparando-se para o desenvolvimento do Ubuntu
  2. Como corrigir bugs

Tutoriais

Realizamos eventos ao longo do ciclo para ajudar pessoas como você, especificamente, executamos a Ubuntu Developer Week no IRC, que é um tutorial ao vivo e um workshop de perguntas e respostas. Há um chegando no final de fevereiro, se você quiser participar!

Aqui estão dois logs de uma sessão passada para dar uma idéia:

Locais para encontrar oportunidades

  • Colheita - essa ferramenta percorre todos os patches e pacotes no Launchpad (e até procura em outras distros) por patches. Muitos deles podem ser capturados, aplicados, testados e, em seguida, corrigidos no Ubuntu e enviados a montante.
  • Limpeza limpa - Lista de correções que estão no Launchpad que alguém anexou a um relatório de bug. Eles podem ser úteis ou não, mas ainda devem ser vistos.

Conseguindo ajuda

Entrar em contato com o MOTU na lista de discussão ou no IRC é uma boa maneira de obter ajuda para problemas individuais nos quais você se depara:

Comentários

Passamos muito tempo reformulando esta documentação para ser o mais fácil possível. Se você fizer anotações sobre suas experiências e como podemos melhorar essas coisas, seria muito útil saber como fazer com que seja menos trabalhoso para pessoas como você.

Jorge Castro
fonte
19

A resposta generalizada de Jorge é uma ótima introdução para pular para o desenvolvimento do Ubuntu, mas vamos tentar analisar um pouco mais de perto sua questão específica ...

O principal desenvolvedor upstream do Apport e o mantenedor do Ubuntu são o mesmo. Isso simplifica um pouco as coisas para você. Em vez de ter que aprender sobre sistemas de pacotes e correções, o caminho mais fácil aqui é trabalhar diretamente no código upstream.

O desenvolvimento do Apport está hospedado no Launchpad . Ele usa o sistema de controle de versão distribuído do bazar para gerenciar seu código-fonte. O primeiro passo para corrigir seu erro é pegar a fonte. Se você nunca usou o bazar antes, o tutorial do bazar em cinco minutos é um bom lugar para começar.

Instale o bazar com:

sudo apt-get install bzr

Puxe o código fonte do apport:

bzr branch lp:apport

Agora você pode começar a invadir. Como na maioria dos VCSs, ao trabalhar com bazar, é uma boa ideia fazer apenas uma alteração por confirmação. Você também deve tornar suas mensagens de confirmação informativas. Isso facilita muito a revisão das alterações. Quando você estiver pronto para fazer seu primeiro commit, execute:

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

Continue fazendo alterações e confirmações até estar satisfeito com a correção do bug. Com seu último commit, você também pode identificá-lo como corrigindo o erro anexando --fixes lp:<bug_number>ao comando commit. Agora você está pronto para enviar suas alterações para revisão e inclusão.

Primeiro, você precisa enviá-lo para o Launchpad para disponibilizá-lo publicamente:

bzr push lp:~<launchpad_username>/apport/<branch_name>

Sua filial agora pode ser encontrada em:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

A execução bzr lp-openna ramificação abrirá esse local em um navegador.

Agora queremos propor uma mesclagem. Nessa página, selecione "Propor para mesclagem".

propor a fusão

Na próxima página, selecione seu ramo de destino e forneça uma visão geral de suas alterações.

descrever mesclagem

Agora você terá uma proposta de mesclagem ativa.

revisão ativa

Os mantenedores revisarão suas alterações. Se forem apropriados, eles serão mesclados e estarão disponíveis no próximo release. Como alternativa, a proposta pode ser definida como "Precisa de trabalho" e os mantenedores discutirão com você alterações adicionais que devem ser feitas antes da mesclagem. Se isso acontecer, não o aceite como qualquer tipo de rejeição pessoal do seu trabalho. Ao contribuir para um novo projeto pela primeira vez, geralmente existem pequenas coisas como o estilo de codificação que você talvez não saiba.

andrewsomething
fonte