Voglio riparare un bug. Da dove comincio?


47

Anche se non sono un programmatore professionista, ho scritto un programma o due. Tuttavia, al giorno d'oggi ogni ingegnere e scienziato impara anche a programmare un po ', e come tale sono abituato a scrivere programmi in Python, C e MATLAB. Ora voglio restituire un po 'a Ubuntu e ai suoi fantastici amici e correggere un bug!

Ho dato un'occhiata all'elenco della campagna mordace e ho dovuto scoprire che la maggior parte di loro non è così facile da risolvere perché sospetto che richiedano molto tempo per approfondire la questione, e non ce l'ho. Ancora ho scoperto questo e sembra gestibile e come una caratteristica fredda per me.

Dato che non ho mai scritto una patch o rilasciato un programma allo stato brado prima, non ho idea da dove cominciare. Quale dovrebbe essere il mio primo passo per affrontare questo problema?

Bottom line: dove e come posso iniziare a risolvere quel ragazzo?


1
qual è il tuo background? Conosci i sistemi di controllo della versione? Nelle pratiche di imballaggio?
Pygabriel,

No, non ancora familiare! Salvo modifiche ...
Ingo,

Risposte:


31

Rispondere a questa domanda può diventare lungo e complicato, quindi ti indicherò le risorse disponibili invece di ripassarle qui.

Documentazione

  1. Prepararsi allo sviluppo di Ubuntu
  2. Come correggere i bug

Esercitazioni

Organizziamo eventi durante tutto il ciclo per aiutare le persone come te, in particolare eseguiamo Ubuntu Developer Week in IRC, che è un tutorial dal vivo e un seminario di domande e risposte. Ce n'è uno in arrivo alla fine di febbraio se vuoi unirti!

Ecco due log di una sessione passata per darti un'idea:

Luoghi per trovare opportunità

  • Raccolto : questo strumento esamina tutte le patch e i pacchetti in Launchpad (e cerca anche in altre distro) le patch. Molti di questi possono essere agganciati, applicati, testati e quindi riparati in Ubuntu e quindi inviati a monte.
  • Cleansweep - Elenco di patch presenti in Launchpad che qualcuno ha allegato a una segnalazione di bug. Questi potrebbero essere utili o meno, ma dovrebbero comunque essere considerati.

Ottenere aiuto

Contattare la MOTU sulla mailing list o IRC è un buon modo per ottenere aiuto per i singoli problemi che si verificano:

Risposta

Abbiamo trascorso molto tempo a rielaborare questa documentazione per essere il più semplice possibile, se prendessi appunti sulle tue esperienze e su come possiamo migliorare questa roba sarebbe molto utile sapere come farla succhiare di meno per persone come voi.


19

La risposta generalizzata di Jorge è un'ottima introduzione al salto nello sviluppo di Ubuntu, ma proviamo ad esaminare un po 'più da vicino il tuo problema specifico ...

Il principale sviluppatore a monte di Apport e il manutentore di Ubuntu sono la stessa cosa. Questo ti semplifica un po 'le cose. Invece di dover imparare sui sistemi di packaging e patch, il percorso più semplice qui è lavorare direttamente sul codice upstream.

Lo sviluppo di Apport è ospitato su Launchpad . Utilizza il sistema di controllo della versione distribuita del bazar per gestire il suo codice sorgente. Il primo passo verso la correzione del bug è quello di afferrare la fonte. Se non hai mai usato il bazar prima, il tutorial di cinque minuti in bazar è un buon punto di partenza.

Installa bazar con:

sudo apt-get install bzr

Estrarre il codice sorgente di apport:

bzr branch lp:apport

Ora puoi iniziare l'hacking. Come con la maggior parte dei VCS, quando si lavora con il bazar, è una buona idea apportare una sola modifica per commit. Dovresti anche rendere i tuoi messaggi di commit informativi. Rende le tue modifiche molto più facili da rivedere. Quando sei pronto per effettuare il tuo primo commit, esegui:

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

Continua ad apportare modifiche e si impegna fino a quando non sei sicuro che il tuo bug sia stato corretto. Con il tuo ultimo commit, puoi anche contrassegnarlo come correzione del bug aggiungendo --fixes lp:<bug_number>al comando commit. Ora sei pronto per inviare le modifiche per la revisione e l'inclusione.

Innanzitutto, devi inviarlo a Launchpad per renderlo pubblicamente disponibile:

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

Ora puoi trovare la tua filiale su:

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

L'esecuzione bzr lp-opennel ramo aprirà quella posizione in un browser.

Ora vogliamo proporre una fusione. In quella pagina, seleziona "Proponi per l'unione".

proporre di fondersi

Nella pagina successiva, selezionare il ramo di destinazione e fornire una panoramica delle modifiche.

descrivere l'unione

Ora avrai una proposta di unione attiva.

recensione attiva

I manutentori esamineranno le tue modifiche. Se sono appropriati, verranno uniti e saranno disponibili nella prossima versione. In alternativa, la proposta può essere impostata su "Lavori necessari" e i manutentori discuteranno con te ulteriori modifiche che dovrebbero essere apportate prima della fusione. In questo caso, ti preghiamo di non considerarlo come qualsiasi tipo di rifiuto personale del tuo lavoro. Quando contribuisci a un nuovo progetto per la prima volta, spesso ci sono piccole cose come lo stile di programmazione di cui potresti non essere a conoscenza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.