# MediaWiki/Contribuire

MediaWiki
Copertina Tutti i moduli · Sviluppo
IntroduzioneMediaWiki/Introduzione
Markup NamespaceMediaWiki/Namespace TemplateMediaWiki/Template Ricerca SkinMediaWiki/Le skin EdittoolsMediaWiki/Edittools Importazione ed esportazioneMediaWiki/Importazione ed esportazione API
PrerequisitiMediaWiki/Installare i programmi necessari - InstallazioneMediaWiki/Installazione - ConfigurazioneMediaWiki/Configurazione - LocalSettings.phpMediaWiki/LocalSettings.php UploadMediaWiki/Upload
Personalizzare la graficaMediaWiki/Personalizzare la grafica
* Hacking interfacciaMediaWiki/Hacking interfaccia
* La barra lateraleMediaWiki/La barra laterale
* La toolbar di modificaMediaWiki/
* Altre personalizzazioni graficheMediaWiki/Altre personalizzazioni grafiche
Cancellare vandalismi in Ultime modificheMediaWiki/Ultime modifiche Limitare l'accesso al wikiMediaWiki/Restrizioni di accesso AggiornamentoMediaWiki/Aggiornamento Dump JavascriptMediaWiki/Javascript AltroMediaWiki/Come fare per
Le estensioniMediaWiki/Estensioni
* Semantic MediaWikiMediaWiki/Semantic MediaWiki
* Formule matematicheMediaWiki/TeX
* Estensione CollectionMediaWiki/Estensione Collection
* Estensione WarnNoCategoriesMediaWiki/Estensione WarnNoCategories
Contribuire allo sviluppo di MediaWikiMediaWiki/Contribuire Grammatica del markup GlossarioMediaWiki/Glossario
Modifica il sommario
MediaWiki è un progetto open source, pertanto è modificabile liberamente da chiunque abbia le conoscenze richieste. Per contribuire, è necessario conoscere il linguaggio PHP e bisogna saper accettare le critiche positive e negative. Inviando il proprio codice, si accetta che altri forniscano feedback, suggerimenti e richieste; gli sviluppatori di MediaWiki potrebbero porre alcune modifiche come condizioni da rispettare prima dell'integrazione del codice con il repository, in particolare per l'aderenza alle convenzioni di scrittura del codice. Inoltre, si accetta che altri possano modificare e ridistribuire il codice liberamente.
Il manuale ufficiale e le pagine di documentazione si trovano al sito http://www.mediawiki.org. Le segnalazioni dei bug e le richieste di nuove funzionalità sono invece su un sito a parte, chiamato Bugzilla.

## Cosa si può fare

Per contribuire allo sviluppo del software, è possibile:
* segnalare un bug, dopo aver controllato che non sia già stato segnalato
* scrivere una patch per uno dei bug già segnalati
* Sviluppare una estensione
* Adottare una estensione il cui sviluppatore originale l'ha abbandonata
* MediaWiki aderisce all'iniziativa Google Summer of Code, che assegna borse di studio a studenti che realizzano un mini-progetto nell'ambito di un progetto open source.
Esiste una lista di annoying little bugs, dedicata agli sviluppatori alle prime armi o che non hanno dimestichezza con il codice di MediaWiki. Sono bug circoscritti e facili da correggere. Al contrario, chi vuole intervenire più in profondità nel codice, può affrontare gli annoying large bugs, consultandosi a priori con gli sviluppatori di MediaWiki, per concordare una soluzione e scambiare pareri.

## Proporre modifiche al software

Per chiedere una qualunque modifica del software, bisogna disporre di un account sul sito "Bugzilla". Per ciascuna richiesta viene aperta una segnalazione, che raccoglie le informazioni fornite dal segnalante, le ulteriori domande degli sviluppatori, e i progressi fatti al riguardo. Ciascuna di esse segue un percorso che va dall'apertura, alla conferma indipendente da parte degli sviluppatori (che sono riusciti a riprodurre il bug sulle wiki di test), alla notifica del lavoro in corso da parte di uno sviluppatore, alla verifica dell'efficacia delle correzioni apportate al codice e alla chiusura della richiesta; il percorso non è lineare: la correzione apportata dallo sviluppatore potrebbe non essere sufficiente o potrebbe rivelarsi inefficace, anche dopo la chiusura della segnalazione (nel qual caso sarà riaperta).

### Fare una segnalazione

Su Bugzilla è possibile segnalare un bug, indicando almeno queste informazioni:
* I messaggi di errore restituiti.
* Le caratteristiche del sistema su cui è stato riscontrato (versione di MediaWiki, sistema operativo, ecc., oppure wiki della Wikimedia Foundation).
* Le istruzioni precise per riprodurre il bug (se non può essere riprodotto a comando, è bene specificarlo).
È possibile anche chiedere una correzione minore (per es. ad un messaggio di sistema tradotto male). È possibile chiedere un miglioramento di altro tipo, come l'introduzione di una nuova funzione, eventualmente rendendo disponibile il codice da integrare nel software come allegato (attachment) alla segnalazione, in formato diff.
Le istruzioni per fare una segnalazione e i dettagli dei campi da riempire sono indicate in mw:Bugs.

## Documentazione

La pagina principale che raduna i link per tutte le informazioni sullo sviluppo di MediaWiki è Developer hub. Gli sviluppatori alle prime armi o che non hanno dimestichezza con il codice di MediaWiki possono consultare la relativa pagina di aiuto.
I codici sorgenti delle diverse versioni di MediaWiki sono disponibili su un repository Subversion. Inoltre, è possibile consultare online i codici e la rispettiva documentazione tramite un browser. La documentazione del codice PHP è all'indirizzo http://svn.wikimedia.org/doc/.
Solo gli sviluppatori di MediaWiki e gli sviluppatori delle estensioni hanno accesso al repository in scrittura. Invece, chiunque può leggere da questa cartella e può scaricarne i file. Le versioni disponibili sono:
* le vecchie versioni, fino alla più recente, memorizzate nella cartella branches;
* la versione attualmente in fase di sviluppo o testing, contenuta nella cartella trunk.
La cartella branches contiene le versioni stabili, cioè quelle distribuite, attualmente o in passato, come versioni ufficiali utilizzabili dall'utente finale. Anche il codice delle ultime due versioni è stabile, nel senso che non viene modificato per includere nuove funzionalità, tuttavia viene usato come base per produrre versioni aggiornate "minori" che includono le correzioni dei bug incontrati dagli utenti durante l'utilizzo del software. Ogni versione stabile viene aggiornata per un tempo limitato, che (in genere) scade in prossimità del rilascio di nuove versioni stabili. Nella cartella trunk viene costruito il codice della prossima versione stabile, partendo dal codice dell'ultima versione e applicando le correzioni e i miglioramenti richiesti su Bugzilla. A meno che non si intenda lavorare apposta su una vecchia versione del software, si dovrebbe sempre modificare il codice di trunk.

## Comunicazione

È possibile contattare gli sviluppatori di MediaWiki, anzi ciò è incoraggiato, per ricevere feedback e scambiare pareri sul codice che si intende inviare.
* mw:Mailing lists
* Canali IRC (info su mediawiki.org): #wikimedia-dev, #wikimedia-tech, #mediawiki

## Creare una patch

Una patch è un file che contiene le correzioni da effettuare al codice di MediaWiki per correggere un bug.
La procedura da seguire è questa:
* installare Git, cioè il programma che viene usato per gestire il codice sorgente di MediaWiki
* Scaricare MediaWiki dal repository, in una nuova cartella
* integrare nel codice la propria correzione
* adattarlo secondo la checklist
* creare la diff, cioè il file che contiene le modifiche formattate tra la versione scaricata e la nuova versione
* lasciare un messaggio sulla pagina di segnalazione del bug, allegando la diff e indicando le parole-chiave patch e patch-need-review.

## Note

* ↑ www.mediawiki.org condivide lo stesso sistema di gestione degli account dei progetti open content della Wikimedia Foundation (cioè Wikibooks, Wikipedia, ...) mentre Bugzilla ha un sistema di gestione degli account separato, pertanto è necessario registrarsi e fare il log in separatamente.
* ↑ Manuale di Bugzilla.
* ↑ https://bugzilla.wikimedia.org/docs/en/html/lifecycle.html
* ↑ http://svn.wikimedia.org/ Core di MediaWiki su Gerrit. (Cliccare su "blob" per leggere un file, "raw" per scaricarlo, "tree" per aprire una cartella.)