Come procedere quando si sospetta un errore nelle librerie open source?

8

Stiamo usando alcune librerie open source nei nostri progetti. A volte ci sono alcuni problemi riscontrati in alcuni di essi (molto probabilmente bug di libreria, ma potrebbe anche essere un utilizzo errato da parte nostra, specialmente quando a volte la documentazione non è completa al 100%). Poiché le librerie sono spesso piuttosto complesse, il debugging per individuare la fonte del problema è talvolta piuttosto difficile. Puoi aiutarmi a riassumere quali altre opzioni ci sono e come procedere esattamente con loro?

Recentemente ho riscontrato alcuni strani problemi durante l'utilizzo di TCMalloc (allocatore di memoria scalabile di Google) su Windows, quindi sarei lieto di ricevere le risposte che si applicano a questa particolare libreria, ma anche le risposte più generali sono buone.

1) Chiedere assistenza al manutentore / proprietario del progetto. Come si può fare?

2) Assumi qualcuno per identificare e risolvere il problema. Come fare questo? Come posso trovare qualcuno con sufficiente esperienza in qualche libreria particolare?

... eventuali altre opzioni?

    
posta Suma 27.01.2011 - 13:45
fonte

6 risposte

15

Di solito provo quanto segue, nell'ordine:

1) Controlla la mailing list o i forum per vedere se il mio bug è nuovo, è già sul tracker, o è corretto in una versione più recente / SVN / qualunque sia

2) Se il bug non è noto, chiedi informazioni nella mailing list. Questo è quando ti viene detto che è una funzionalità, non un bug e / o RTFM;)

3) Se il bug è davvero un bug ed è nuovo, puoi aspettare fino a quando qualcuno lo risolve (puoi aiutare fornendo ulteriori informazioni, test o debug) o correggerlo da solo e inviare una patch

Se hai bisogno che il bug sia risolto con urgenza, la soluzione migliore è fare i passaggi 2 e 3 insieme (segnalare il bug e proporre una patch). Altrimenti il tuo bug potrebbe essere riparato o meno in modo tempestivo, a seconda che qualcuno ritenga che valga la pena ripararlo. Immagino che tu possa "corrompere" gli sviluppatori o altri membri della comunità per lavorare sul tuo bug, anche se non l'ho mai provato.

    
risposta data 27.01.2011 - 14:29
fonte
5

Il bello di OSS è che hai il codice sorgente!

Quindi puoi apportare da te la correzione o assumere qualcuno per farlo.

L'importante è restituire alla community e controllare la tua correzione!

    
risposta data 27.01.2011 - 13:52
fonte
4

Il modo più sensato che ho trovato, quando hai un problema con una biblioteca e non hai le capacità per trovare da soli il problema, è contattare i manutentori. Conoscono il codice e saranno grati di scoprire i bug, se è quello che sono, o ti indicheranno come utilizzare correttamente la libreria.

Ad esempio, ho riscontrato un problema che non riuscivo a risolvere quando stavo sviluppando un sito che utilizzava SVG Web . Non ho alcuna capacità di scripting di azioni, quindi ho iniziato a chiedere un thread riguardo il problema e mi è stato detto di registrare un bug con un caso di test minimale, quindi l'ho fatto. Si è scoperto che il problema era nel browser, quindi ho dovuto modificare leggermente il mio codice.

Se sei abbastanza intelligente da risolvere da solo, non dimenticare di restituire ciò che hai imparato.

    
risposta data 27.01.2011 - 13:58
fonte
2

Se hai una buona idea di come riprodurre il bug, allora scrivere un test unitario esponendo il bug sarebbe un buon punto di partenza. (Spesso i progetti open source hanno già suite di test di grandi dimensioni).

Il test dell'unità fallito è un buon modo per comunicare il "bug" al manutentore del progetto. Se non si tratta di un bug ma semplicemente di te che lo stai usando in modo errato, il maintainer vorrebbe far notare che questo è di progettazione, e molto spesso con una motivazione.

    
risposta data 27.01.2011 - 16:56
fonte
1

Scrivi un caso di test pulito, quindi invialo alla mailing list.

IME il più delle volte trovi un errore nel tuo codice mentre scrivi il test case.

    
risposta data 28.01.2011 - 19:33
fonte
1

Solo perché non è stato ancora menzionato, dai " Come fare domande in modo intelligente "una lettura. Ha molti consigli inestimabili su come affrontare le domande e chiedere aiuto a una comunità di sviluppo. Molto si riduce a: capire come funziona la community e assicurarsi di giocare secondo le regole. Se sei rispettoso, fai una domanda intelligente fornendo tutti i dettagli necessari (e la ricetta di riproduzione se è un possibile bug), probabilmente otterrai una risposta ragionevole.

    
risposta data 28.01.2011 - 21:04
fonte

Leggi altre domande sui tag