How to become a MediaWiki hacker/pt

This article is written to help developers learn the basic skills needed to contribute to MediaWiki development.

If you are an experienced developer who is familiar with using MediaWiki already, visit the  instead.

Perspectiva
MediaWiki é o software que potencia o Wikipedia, seus projectos irmãos e milhares de wikis ao redor do mundo. Isto roda na maioria dos sistemas operativos, é escrito em PHP, primariamente usa o servidor de base de dados MySQL e MariaDB, e usa o jQuery como livraria de JavaScript para o utilizador. O desenvolvimento do MediaWiki é inicialmente apoiado pela Wikimedia Foundation, embora a comunidade voluntária de desenvolvedores participem em grande medida também.

Esta página poderia ajudar a levá-lo ao início do caminho de se tornar em um colaborador do MediaWiki. Isto não é um tutorial; Isto apenas o indica os vários locais onde poderá aprender o quer que seja necessário.

Iniciando
Primeiro de tudo, obtenha o  e o Tutorial Gerrit para descarregar o nosso código, teste e comece por submeter as correcções. Existe duas formas de configurar o ambiente de desenvolvimento: usando o instalador pré-configurado da máquina virtual (vagrant), ou manualmente.

Máquina Virtual com Vagrant

 * Instalação do Vagrant - Estes passos instalarão o servidor MediaWiki com todos os requerimentos dentro de uma máquina virtual Linux (pode ser usada em anfitriões Linux, Windows, ou Mac)

Instalação Manual

 * Requisitos da instalação — Verifique os requisitos de hardware, e instale um dos servidores LAMP, MAMP ou WAMP (Linux, Mac ou Windows, mais Apache, MySQL/MariaDB e PHP).
 * — Descarregue o último código fonte de Git.
 * — Continue com a instalação e a configuração inicial.
 * Configure o vários modos de depuração para mostrar alertas de erros antecipadamente.

Não é necessário descarregar a base de dados acumulada da Wikipedia para desenvolver características ou funcionalidades do MediaWiki. Na verdade, em vários casos é mais fácil uma base de dados quase vazia com poucas páginas de testes especificamente estruturadas. Contudo, se por alguma razão quiser ter a cópia do Wikipedia, poderá Obter um acúmulo.

Leituras sugeridas


Recomendações gerais
Se escolher trabalhar em um relato de erro que requer escrever ou alterar o código, deverá querer no mínimo reduzir as páginas antes:

 
 * Os dois caminhos para iniciar com o desenvolvimento MediaWiki é reparar um erro pequeno e irritante em um código existente, ou adicionar uma nova característica, geralmente através de uma extensão do MediaWiki.
 * Convenções de codificação e qualquer sub-páginas relevantes para sua tarefa (,, ,...)
 * Seguindo as linhas guia de mensagem de execução, especialmente a secção Exemplo abaixo, automaticamente adicionará notificações acerca de suas correcções ao relato correspondente em . Deste modo não haverá mais necessidade de adicionar o comentário "Please review" no relato.
 * Verifique o seu código fronte à lista de pre-execução. Não salte este passo ; Ficará feliz por não o ter feito.
 * Obtendo revisões de códigos. Procure e adicione pessoas como potenciais revisores para de suas correcções.
 * Emendar a alteração Não crie uma nova definição de alteração Gerrit (Gerrit changeset) para reparar a sua anterior!
 * Na maioria dos casos quando estiver a trabalhar com MediaWiki, você Não queira hackear as funcionalidades principais de MediaWiki a menos que realmente saiba o que está a fazer.

Comentários, perguntas e assistência
 
 * É esperado que faça pesquisas básicas por si mesmo primeiro: Verifique o código, tente obter alguma percepção do que é suposto ser, leia documentos relacionados, tente encontrar lugares prováveis onde se precisa de se efectuar alterações de formas a reparar os erros.
 * Se você tiver dúvidas gerais sobre a infraestrutura, a arquitectura de software ou fluxos de trabalho que não estão ligados a um erro específico que queira trabalhar nele, use canais genéricos como, listas de e-mails, ou páginas de discussão. Por exemplo, se tiver problemas com a Gerrit, a Página de discussão da Gerrit poderá ser um bom lugar para perguntar.
 * Se você tiver dúvidas específicas acerca do erro em si, comente no relato correspondente de . O que devo fazer para reparar este erro? não é um boa pergunta para começar: Quanto mais específico a sua pergunta for, mais probabilidade existirá de alguém poder respondê-la rapidamente. Se não tiver ideia geral de como reparar o erro, este erro poderá (ainda) não ser para si - por favor considere procurar um mais fácil, primeiro.
 * Quando perguntar, elabore o que já tentou e encontrou, para que os outros o possam ajudar a um nível mais elevado. Tente ser específico - por exemplo, copie e cole os seus comandos e as respectivas saídas (se não forem muito longas) ao invés de pré-frasear em suas próprias palavras. Isto evita desentendimentos.
 * Evite e-mails privados ou assistência a questões em nossos canais da mídia social.
 * Por favor seja paciente quando estiver a busca de entrada e comentários. No IRC, não pergunte em perguntas, apenas pergunte: a maioria das questões podem ser respondidas por outras comunidades membros igualmente, se você perguntar em um canal IRC. Se ninguém responde, por favor faça a pergunta na página de relato de erros relacionadas com o problema; não desista simplesmente da pergunta.
 * Aprenda mais em.

Comunique que está a trabalhar na reparação de um erro
Não precisa de se definir como o responsável nos relatos de erros ou anunciar os seus planos antes de começar a trabalhar na reparação de um erro, mas seria de bom proveito se assim procedesse. Em último, quando estiver prestes a criar um remendo para o erro, seria bom que anunciasse em um comentário que estiver a trabalhar. Seu anúncio também ajudará outros a não trabalhar na reparação do erro duplicadamente.

Também note que se o relato do erro estiver já um link recente com a rectificação do erro em Gerrit e tiver um projecto "Patch-For-Review" associado, você deve ao invés disso escolher um erro diferente para reparar - evite trabalhar duplicadamente em um erro. Se o remendo em Gerrit não tiver sido juntado e não for visto nenhuma mudança por um período extenso de tempo, você poderá também pegar neste remendo existente e tentar melhorá-lo.

Se parar de trabalhar em uma tarefa, deve remover-se (à si mesmo) como um signatário para a publicação do erro e restaurar a assinatura para o estado pré-definido de assinatura, de modos a que os outros saibam quem trabalha na reparação do erro e não criem expectativas sobre si em relação ao trabalho em questão.

Comunicando antecipadamente obterá mais atenção, retorno e ajuda dos membros da comunidade. 

Trabalhando em extensões
Se escolher trabalhar em extensões de códigos do MediaWiki, os seguintes links fornecerão mais informações.


 * Inicialização em extensões do MediaWiki
 * Desenvolvendo extensões — Como escrever uma extensão para o MediaWiki.
 * Escrevendo extensões para lançar — Se pretender ter suas extensões lançadas nos sites da Wikimedia (incluindo possivelmente Wikipedia), um escrutínio adicional é garantido em termos de desempenho e segurança.
 * Tutorial de escrita de extensão


 * Recursos de extensões do MediaWiki:
 * Lista de extensões simples — Uma forma simples de se tornar familiar com como a extensão trabalha.
 * Uma breve introdução ao desenvolvimento de extensão MediaWiki — Um vídeo de apresentação acerca de como criar extensões MediaWiki (slides).
 * Making a MediaWiki extension — Cobre sobre como desenvolver uma extensão para MediaWiki, melhores práticas, e como empenhar-se na comunidade MediaWiki. Desde Fevereiro de 2011.
 * Página de template especial — Adicione uma página especial para mostrar informações práticas.
 * Estendendo o markup wiki — Adicione um gancho interpretador para modificar o conteúdo do wikitext.

PHP
MediaWiki é escrito em PHP, portanto você precisará de se familiarizar com PHP para hackear o fundamental do MediaWiki.


 * Aprenda PHP
 * Tutorial de PHP — Disponível em diferentes línguas. Se não tiver nenhum conhecimento sobre PHP mas sabe como programar em outra linguagem de programação orientada a objecto, PHP será fácil para si aprender.
 * PHP Programming at Wikibooks.
 * PHP topic at Wikiversity.


 * Recursos PHP:
 * O manual PHP — Disponível em diferentes línguas.
 * Convenções de codificação em PHP dentro da comunidade MediaWiki.


 * Coisas para saber:
 * O script  em MediaWiki dispõe de um interpretador básico de PHP com objectos e classes MediaWiki carregados.

Base de dados
Várias características requerem alguma quantidade de manipulação de base de dados, portanto você geralmente precisará de se familiarizar com MySQL/MariaDB.


 * Aprenda MySQL/MariaDB
 * Tutorial MySQL — Do Manual de referência do MySQL 5.0.
 * MySQL at Wikibooks.


 * Recursos MySQL/MariaDB.
 * Manuais de referência de MySQL. — Disponível em várias línguas diferentes.
 * MariaDB Base de Conhecimento (Knowledge Base).
 * Convenções para codificação de base de dados na comunidade MediaWiki.


 * Coisas para saber:
 * Teste o seu código com MySQL/MariaDB.
 * MediaWiki actualmente utiliza MySQL e MariaDB como uma base de dados primária para fins de funcionamento interno, isto é, do lado do servidor (back-end). Também suporta outros Gestores de Base de Dados (DBMSes), tal como PostgreSQL e SQLite Contudo, a maioria dos desenvolvedores utilizam MySQL/MariaDB e não testam outras base de dados (DBs), que consequentemente quebram regularmente. É portanto advertido a utilizar MySQL/MariaDB quando testar remendos, a menos que estiver especificamente a tentar melhorar um auxiliar para outra Base de dados (DB). No último caso, certifique-se de é cuidadoso para não quebrar MySQL/MariaDB (ou escrever linhas/queries que ineficientemente manipulem os dados ou a tornam ineficiente), pois MySQL/MariaDB é a que todas as outras pessoas usam.

JavaScript e CSS
JavaScript e CSS têm se tornado omnipresente no código externo, isto é, do lado do utilizador (front-end). Não deverá estar familiarizado com JavaScript, jQuery e CSS para trabalhar na MediaWiki, mas precisará, dependendo do seu grau de envolvimento com os códigos, isto é, com o que escolher trabalhar.


 * Aprenda JavaScript e CSS
 * JavaScript and CSS at Wikibooks.
 * Iniciando com jQuery — Um tutorial jQuery.


 * Recursos de JavaScript e CSS
 * Convenções de codificação em JavaScript dentro da comunidade MediaWiki.
 * Convenções de codificação em CSS dentro da comunidade MediaWiki.

MediaWiki
O código base de MediaWiki é extenso e em algumas partes tremendo e intimidante; Não se perca nisto. Quando estiver a iniciar, foque-se em escrever funcionalidades ou repare erros que são limitados em pequenas regiões de código.


 * Inicializações e leituras-obrigatórias de MediaWiki:
 * Arquitectura do MediaWiki — Um perspectiva de alto-nível dos componentes principais do MediaWiki e como estes funcionam uns com outros.
 *  — Uma perspectiva de porquê e como escrever um código seguro.


 * Recursos MediaWiki:
 * — Uma lista importante de ficheiros e ligações para informações mais detalhadas.
 * — Uma lista de hooks (ganchos). Se estiver a tentar encontrar a funcionalidade de determinada parte do código base (codebase), geralmente um bom lugar para iniciar é procurando por hooks relacionados.
 * — Uma perspectiva geral de convenções de codificação dentro da comunidade MediaWiki.
 * — Formas de hackear o MediaWiki, das preferências do utilizador para extensões e o código base.
 * Documentação do código — Documentação automaticamente gerada do código e dos comentários sobre o código.
 * — Um guia para depurar o MediaWiki.
 * — Uma ferramenta para interagir com a ciclos de vida dos objectos de MediaWiki.

Ver também

 * – Se tiver lido sequencialmente a informação neste artigo, é tempo para mover para a informação mesa redonda (hub) do desenvolvedor.
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.