How to become a MediaWiki hacker/it


 * ''Per altri modi per partecipare alla comunità di MediaWiki, vedi come contribuire.

Questa pagina intende aiutare gli sviluppatori nuovi ad apprendere quanto necessario per contribuire allo sviluppo di MediaWiki.

Se sei uno sviluppatore esperto, visita invece il developer hub.

Panoramica
MediaWiki è il software che fa girare Wikipedia, i suoi progetti fratelli e migliaia di wiki in tutto il mondo. Gira sulla maggior parte dei sistemi operativi, è scritto in PHP, usa primariamente il server di database MySQL e usa jQuery come libreria client di Javascript. Lo sviluppo di MediaWiki è sostenuto principalmente dalla Wikimedia Foundation, anche se la comunità degli sviluppatori volontari gioca un ruolo importantissimo.

Questa pagina dovrebbe aiutarti a muovere i tuoi primi passi nella partecipazione allo sviluppo del MediaWiki. Non è un tutorial; si limita ad indirizzarti a diversi luoghi in cui puoi apprendere ciò che ti occorre sapere.

PHP
MediaWiki è scritto in PHP, perciò devi avere un po' di familiarità con il PHP per entrare nel vivo di MediaWiki.


 * Studia il PHP
 * tutorial PHP — Disponibile in molte lingue. Se non conosci affatto il PHP, ma sai programmare in altri linguaggi object-oriented, apprendere il PHP non ti sarà difficile.
 * Programmazione in PHP su Wikibooks.
 * Argomento PHP su Wikiversity.


 * Risorse PHP:
 * Il manuale di PHP — Disponibile in molte lingue.
 * Convenzioni di PHP coding nella comunità di MediaWiki.


 * Cose da sapere:
 * Lo script maintenance/eval.php in MediaWiki fornisce un interprete PHP di base con gli oggetti e le classi MediaWiki caricate.

Database
Molte funzioni richiedono un po' di manipolazione del database, spesso ti verrà comoda una certa familiarità con il MySQL.


 * Impara il MySQL:
 * tutorial MySQL — Dal manuale MySQL 5.0.
 * MySQL su Wikibooks.


 * Risorse MySQL:
 * MySQL Reference Manuals — Disponibile in molte lingue.
 * Convenzioni di coding sul database nella comunità MediaWiki.


 * Cose da sapere:
 * Prova il tuo codice con MySQL.
 * MediaWiki attualmente usa MySQL (e compatibili) come back-end primario del database. Supporta altri DBMS, come PostgreSQL e SQLite. Ad ogni modo, quasi tutti gli sviluppatori (developers, o dev) usano MySQL e non testano con altri DB, che conseguentemente ogni tanto si scassano con regolarità. Ti consigliamo dunque di usare MySQL quando testi delle patch, a meno che tu non stia specificamente lavorando a migliorare il supporto per un altro DB. In quest'ultimo caso, fai bene attenzione a non arrecare danni a MySQL (e a non scrivere query che sono terribilmente inefficienti su di esso), perché MySQL è ciò che tutti gli altri usano.

JavaScript e CSS
JavaScript e CSS sono diventati onnipresenti nel codice front-end. Non devi avere familiarità con JavaScript, jQuery e CSS per lavorare su MediaWiki, ma potresti averne bisogno, a seconda di ciò su cui tu scegli di lavorare.


 * Impara JavaScript e CSS
 * JavaScript e CSS su Wikibooks.
 * Iniziare con jQuery — Un tutorial jQuery.


 * Risorse per JavaScript e CSS
 * convenzioni di coding per JavaScript nella comunità MediaWiki.
 * convenzioni di coding per CSS nella comunità MediaWiki.

MediaWiki
Il codice di MediaWiki è molto molto vasto e alcune sue porzioni sono proprio brutte; non farti scoraggiare. All'inizio, concentrati a scrivere funzioni o correggere bug che riguardano solo una piccola regione del sorgente.


 * I fondamentali di MediaWiki e le cose che vanno lette:
 * Architettura del MediaWiki — Panoramica di alto livello sui principali componenti di MediaWiki e sulla loro interazione.
 * La sicurezza per i dev — Panoramica su come scrivere codice sicuro.


 * Risorse per MediaWiki:
 * Manual:Code — Una lista di file importanti e link verso informazioni più dettagliate.
 * Convenzioni di coding — Panoramica sulle convenzioni generali di coding nella comunità MediaWiki.
 * Intro-to-MediaWiki workshop syllabus — Come hackerare MediaWiki, dalle preferenze utente alle estensioni e al core.
 * Code documentation — Documentazione automaticamente generata dal codice e commenti sul codice.
 * Come fare debug — Una guida per il debugging di MediaWiki.
 * eval.php — Uno strumento per interagire con gli oggetti MediaWiki in diretta.

Imposta il tuo ambiente di sviluppo
Ci sono due modi per impostare il tuo ambiente di sviluppo: usando il setup per una macchina virtuale pre-configurata (vagrant), o manuale. La scelta della vagrant è molto più veloce e facile, ed è il metodo preferito.

Macchina virtuale con Vagrant

 * Installazione di Vagrant — Verrà installato un server MediaWikicon tutti i requisiti in una macchina virtuale Linux (fattibile su host Linux, Windows o Mac)

Installazione manuale

 * Requisiti di installazione — Controlla i requisiti hardware e installa un server LAMP, MAMP or WAMP (Linux, Mac o Windows), più Apache, MySQL e PHP.
 * Scarica da Git — Scarica il sorgente più recente da Git.
 * Guida all'installazione — Continua l'installazione e la configurazione iniziale
 * Imposta le modalità di debug nel tuo ambiente per avvisi di errore efficienti.

Non serve scaricarsi i dump dei database di Wikipedia per lavorare su MediaWiki. Spesso, anzi, è meglio usare un database quasi vuoto con un po' di pagine appositamente scritte per la sperimentazione. Se poi una copia di Wikipedia la vuoi lo stesso perché è sempre il miglior prodotto editoriale del mondo, puoi prelevarne un dump qui.

Iniziamo
Le due strade principali per iniziare a sviluppare MediaWiki sono correggere un piccolo bug noioso nel codice esistente, o aggiungere una nuova funzione, di solito con una estensione MediaWiki. Il più delle volte, quando lavori con MediaWiki, tu non vuoi andare a toccare il core di MediaWiki a meno che tu non sappia esattamente cosa stai facendo.


 * Fondamenti sulle estensioni MediaWiki:
 * Sviluppare estensioni — Come scrivere un'estensione per MediaWiki.
 * Scrivere estensioni da distribuire — Se desideri che la tua estensione sia diffusa sui siti Wikimedia (compresa magari Wikipedia), ci saranno verifiche aggiuntive in termini di performance e security.
 * tutorial sulla scrittura di estensioni


 * Risorse sulle estensioni di MediaWiki:
 * Lista di estensioni semplici — Un modo semplice per capire come funziona un'estensione.
 * A brief introduction to MediaWiki extension development — Una presentazione video su come creare un'estensione MediaWiki (slide).
 * Creare un'estensione MediaWiki — Come sviluppare un'estensione MediaWiki, best practices, e come affrontare la comunità Mediawiki. Da Febbraio 2011.
 * Special page template — Aggiungi una pagina speciale per mostrare facilmente alcune informazioni.
 * Estendere il wiki markup — Aggiungi un parser hook per modificare il wikitesto.

Invia le tue modifiche
MediaWiki projects are hosted in Git repositories and code contributions are done through the Gerrit review tool. Check the short Getting started guide or the more explanatory Tutorial to learn how to work with Git for MediaWiki development.

We used to accept patches attached to Bugzilla reports but such practice is currently discouraged.

Segui questi passaggi:


 * 1) Get developer access if you do not already have it.
 * 2) Make your change in a branch in Git.
 * 3) Check your code against the pre-commit checklist. Don't skip this step ; you'll be happy you didn't.
 * 4) Commit your change and upload it to Gerrit.
 * 5) * Include the number of any bug report your change addresses in the commit message footer.
 * 6) * A link to your change will be automatically added to the bug report, which will be set to PATCH_TO_REVIEW status.
 * 7) Ask for your code to be reviewed, watch for email updates, and make requested changes.

Discuti e ottieni aiuto
MediaWiki ha una davvero amichevole, vasta e variegata comunità. Ci sono molti posto in cui chiedere aiuto. Se hai già un'idea sulle funzionalità che vuoi implementare, potrebbe essere una buona idea fare due chiacchiere con un dev anziano prima di cominciare, specialmente se non sei sicuro di come la tua funzione possa interagire con altre parti del codice.


 * IRC — Specificamente, il canale . The MediaWiki developer community is distributed around the world, and there most likely is someone awake, no matter what your timezone is. Hop in and start talking.
 * Mailing Lists — Since you are looking to be a developer, wikitech-l is where you should be at. You can also browse through the archives to get a feel of how the community operates.

Vedi anche

 * "Learn how to hack MediaWiki" workshop
 * Developer hub – When you've thoroughly read the information in this article, it's time to move on to the information in the developer hub.
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.