How to become a MediaWiki hacker/pt

Este artigo está escrito para ajudar programadores a adquirirem as capacidades necessárias para contribuir para o desenvolvimento do MediaWiki.

Se é um programador experiente, já familiarizado com o uso do MediaWiki, visite antes o portal dos programadores - .

Perspetiva
O MediaWiki é o software da Wikipédia, os projetos relacionados com ela, e milhares de wikis em todo o mundo. Pode ser executado na maioria dos sistemas operativos, está escrito em PHP, usa sobretudo os servidores de base de dados MySQL e MariaDB, e usa o jQuery como biblioteca de JavaScript do cliente. O desenvolvimento do MediaWiki é apoiado principalmente pela Wikimedia Foundation, embora programadores voluntários da comunidade desempenhem também um papel muito importante.

Esta página pode ajudá-lo a iniciar o caminho para se tornar num colaborador do MediaWiki. Ela não é um guia prático; indica-lhe apenas os vários locais onde poderá aprender o que quer que seja necessário.

Começar
Comece por se registar para  e ler o Guia Prático do Gerrit. Posteriormente você poderá prosseguir para a descarga do nosso código, fazendo alterações, testando-os, e 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 Wikipédia para desenvolver características ou funcionalidades do MediaWiki. Na verdade, em vários casos é mais fácil usar 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 Wikipédia, 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 quaisquer 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 na mesa redonda do desenvolvedor (developer hub).
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.
 * – Se tiver lido sequencialmente a informação neste artigo, é tempo para mover para a informação na mesa redonda do desenvolvedor (developer hub).
 * MediaWiki Virtual Library (MVL) books; this page forms also part of the MediaWiki Developers Guide.