Não hackeie o núcleo do MediaWiki

This page is a translated version of the page Do not hack MediaWiki core and the translation is 88% complete.
Outdated translations are marked like this.

Mesmo que hackear o núcleo do MediaWiki seja muitas vezes uma solução proposta em outros fóruns de suporte do MediaWiki, não é uma solução ideal. Geralmente, o procedimento irá causar mais problemas do que resolver e só tornarão futuros upgrades mais difíceis de instalar.

Para os propósitos deste ensaio, o "núcleo" pretende incluir todos os arquivos que pertencem à instalação original do MediaWiki. That is to say all files except LocalSettings.php, docker-compose.override.yml, the ones in your extensions or skins folder, or other folders which you have added since your installation.

Por que você não deve modificar os arquivos do núcleo?

Não importa que seja fácil modificar os arquivos do núcleo para fazer o MediaWiki fazer o que você quer que ele faça, resista à tentação.

  • Se o fizer, fará com que seja complicado, difícil ou quase impossível de aplicar atualizações do site, tais como correções de segurança e de bugs.
  • Você vai deixar as coisas mais difíceis para aqueles que vêm depois para manter o site.
  • Você poderá deixar o seu site vulnerável a ataques.
  • Outros desenvolvedores estão menos inclinados a ajudá-lo se você tiver hackeado o seu núcleo - se não por outra razão, é difícil para eles saber o que foi feito.

O núcleo do MediaWiki foi projetado para ser modular, então não deve haver nenhuma razão para hackea-lo. Se há uma característica que você quer e não pode ser realizado fora do núcleo modificado, considere desenvolver uma extensão ou enviar o seu hackeamento como uma correção. Envie um relatório de bug e diga à comunidade o recurso que você quer realizar. Ele então será testado e seu recurso pode tornar-se uma parte do núcleo do MediaWiki.

Problemas enfrentados pelos wikis que hackeiam seu núcleo

  • Os tempos de atualização do MediaWiki vão de 30 minutos a 6 horas ou até mesmo seis semanas, se o seu diff mostrar que 13.650 linhas foram alteradas.
  • Aumento de spam e outros ataques indesejados devido a falhas de segurança
  • Perda de novos recursos devido a ataques conflitantes a arquivos do núcleo
  • Incapacidade de usar documentação do MediaWiki.org - tudo o que foi escrito sob o pressuposto de que você não tenha hackeado seus arquivos de núcleo (a não ser, é claro, que você escreva a documentação especificamente sobre a forma de operar o MediaWiki quando esse hackeamento em particular está sendo usado)
  • A repetição do problema original - como um relatório de bug é uma maneira mais confiável para resolver um problema do que um hackeamento do núcleo - se não por outro motivo, um grupo de desenvolvedores vai analisar o problema e poderá descobrir as mudanças de código necessárias você perdeu
  • Reclamar para desenvolvedores sobre os seus arquivos de núcleo que não funcionam - e não encontrar muita simpatia - se você hackear os arquivos de núcleo - um suporte técnico eficaz é quase impossível

Exceções

Existem exceções a esta regra?

Não.

Ok, muito, muito raramente. Mas isso é geralmente para wikis específicas ou para implementações feitas por pessoas que são extremamente familiarizadas com a base de código do MediaWiki, as práticas de desenvolvimento e modelo de segurança. Aqueles que documentam corretamente as suas alterações e praticar o controle de revisão adequada com o seu código. Se você tem que perguntar, é provável que você não deva.

Extensões

Observe que a maior parte desta página também se aplica às extensões importantes. É uma má idéia começar diretamente hackeando as extensões Semantic do MediaWiki, ou qualquer uma das extensões utilizadas na Wikipédia e outros sites da Wikimedia.

Uma exceção poderia ser se uma extensão for instalada principalmente copiando seu código a partir desta wiki (em vez de adquiri-lo a partir de um repositório de software). Isso significa que não é muito seriamente mantida.

O que fazer então?

Em vez de hackear o núcleo do MediaWiki, há várias soluções alternativas a considerar, mais ou menos, nesta ordem:

  1. O MediaWiki é um animal poderoso fora da caixa, você pode fazer muitas coisas com as mensagens de interface do MediaWiki, como MediaWiki:Sidebar e muitos, muitos outros, ver também outras páginas neste wiki para, por exemplo, adições de JavaScript e CSS e mudanças.
  1. Desenvolva uma extensão para realizar o que seu hackeamento faria, ou simplesmente use um dos hooks existentes
  2. Envie um relatório de bug
  3. Contribua com o seu aperfeiçoamento do núcleo para o repositório de código para que outros possam se beneficiar de sua correção

Ver também

  • {{Extension by patch warning }} — template para adicionar às páginas de extensões que exigem modificações no núcleo do MediaWiki.