Mediawiki

De Open Source Software

por Stephanie e Cristiane

O que é o Mediawiki?

O Mediawiki é um software multilíngue, gratuíto e open-source, foi desenvolvido com um intuíto maior, atuar como o Wikipedia. O Mediawiki é um projeto de enciclopédia que preserva contextos de crowdsourcing, onde os usuários podem contribuir colaborativamente em uma ideia. O Mediawiki permite um ambiente escalável proposto para manter e gerenciar conteúdo, além disso, é um software livre licenciado sob a versão 2 da GNU General Public License. Por ser licenciado de forma gratuita, não há nenhuma garantia até o limite permitido pela lei aplicável.

Processos organizacionais para habilitação de projetos - 12207:2017

A fase Processos organizacionais para habilitação de projetos é categorizada da seguinte forma:

  • Processo de gestão de modelos de ciclo de vida: O Mediawiki estabele uma política baseada no ciclo de vida de versões do software que opera em um modelo de integração contínua. As versões obsoletas não possuem suporte, portanto, não possuem nenhum tipo de atualização. As novas versões são mantidas e recebem atualizações por até um ano até a inserção de uma nova versão anual.
  • Processo de gestão de infraestrutura: As principais ferramentas adotadas pelo Mediawiki são o Phabricator e o Gerrit. O Phabricator é uma plataforma de desenvolvimento de código aberta adotada por inúmeros projetos do Mediawiki para gerenciamento de projeto, solicitações de recursos e relatórios de erros de software. O Gerrit é um sistema de controle de versões integrado ao sistema Git.
  • Processo de gestão de portfólio: O programa Onboarding New Developers busca ampliar a seleção de desenvolvedores para o Mediawiki. Os esforços são voltados a atividade de instruir iniciantes a como adentrarem na comunidade técnica do Mediawiki. Isso é possível através de projetos e participação ativa de usuários em colaboração com a contribuição na plataforma, as ideias de projetos serão expostas em eventos de desenvolvedores e selecionadas para agregar ao portfólio.
  • Processo de gestão de recursos humano: O objetivo do Growth Team's é criar iniciativas para envolver novos colaboradores para os projetos do Mediawiki. Os projetos detém de uma demanda constante de novos colaboradores para construção de uma comunidade diversificada de editores que possam contribuir com conteúdo relevante. A fim de reter os colaboradores nos projetos, o Growth Team's desenvolveu algumas soluções baseadas em aprendizagem iterativa.
  • Processo de gestão de qualidade: O Mediawiki detém de um sistema de revisão de qualidade próprio. Definindo uma série de atividades que compõe este processo, como por exemplo Rfam/Pfam e avaliação do WikiProject. Além de possuir uma categorização de processos internos e externos que são auditados periodicamente.
  • Processo de gestão de conhecimento: O Mediawiki possui uma plataforma aberta e padrão de gerenciamento de conhecimento corporativo denominada de Semantic Mediawiki. A abordagem adota a vertente de padrões da Web Semântica e explora componentes personalizados que foram criados para integração/mapeamento de dados, enriquecimento, visualização e replicação de informações como um gráfico de conhecimento empresarial.

Processos de gerenciamento técnico - 12207:2017

A fase Processos de gerenciamento técnico é categorizada da seguinte forma:

  • Processo de planejamento de projeto: Não houve um planejamento efetivo de projeto para a criação do Mediawiki. O Wikipedia foi experimento sem pretensões para criação de uma enciclopédia livre, que pudesse unir diferentes conteúdos em uma plataforma única revisada por pares. Inicialmente, a plataforma foi alimentada por um mecanismo denominado de UseModWiki aliado ao CamelCase que constituiram a fase I da história do Mediawiki. Entretanto, o CamelCase não representou nenhuma contribuição significativa, e assim, decidiram criar um mecanismo com o fim de melhorar o desempenho do Wikipedia denominado de "PHP wiki", constituindo assim a fase II da história do Mediawiki. Apesar dos avanços e das contribuições da inserção da fase II ao projeto, ainda existiam limitações e problemas de desempenho. Portanto, em 2003, Brion Vibber assumiu o cargo de desenvolvedor líder, e assim, os desenvolvedores decidiram ajustar e melhorar a base de código já existente e criaram o "Mediawiki" que permaneceu estável desde então, constituindo a fase III da história do Mediawiki.
  • Processo de avaliação e controle de projeto: Qualquer contribuição para o projeto deve ser feita por uma conta de desenvolvedor do Mediawiki ao Phabricator através de tarefas e subtarefas em aberto. O Phabricator é uma suite colaborativa para aplicações web e ampara todo o processo de desenvolvimento, oferecendo controle de versão, gerenciador de bugs, revisão de código, entre outros.
  • Processo de gerenciamento de decisões: Todas decisões relevantes são documentadas e passam por uma série de discussões até chegarem a uma decisão unânime entre a comunidade. Toda e qualquer decisão necessita do aval dos membros da comunidade técnica do Mediawiki.
  • Processo de gerenciamento de riscos: O Mediawiki instrui a comunidade a relatar erros de segurança, vulnerabilidades e demais problemas que o sistema possa apresentar. A equipe Wikimedia Security busca, ativamente, auferir nessas informações e aplicá-las sob alguns quesitos: (i) treinamento para desenvolvedores e funcionários; (ii) verificação regular de segurança estática e dinâmica no MediaWiki e extensões; (iii) verificação de vulnerabilidades; (IV) ferramentas e recursos que promovem melhor segurança a comunidade; (V) revisões de segurança, scrum de revisão de segurança; (VI) ata de reunião pública aleatória; (VII) resposta a incidentes; (VIII) governança de Segurança.
  • Processo de gerenciamento de configuração e medição: Para a comunidade, o Gerenciamento de Configuração detém de parâmetros adicionais, como requisitos de usuário, especificações, documento de design do software, plano de teste, plano de documentação, documentos de design da interface do usuário, cronograma, gerenciamento de tarefas, plano de gerenciamento, plano de comunicação e atualizações de status. O Phabricator ampara esta etapa.
  • Processo de gerenciamento de informação: O processo de Gerenciamento de Informação ocorre diretamente por meio de wikis que estão dispostas no próprio Mediawiki. O principal objetivo do Wikipedia é disponibilizar conteúdo de acesso livre em uma plataforma colaborativa, e assim permanece os dados técnicos do Mediawiki.
  • Processo de garantia de qualidade: A equipe Wikimedia Release Engineering detém a tarefa de gerir os esforços para a garantia de qualidade da WMF. O WMF aplica duas abordagens principais para teste de software: (i) teste exploratório; (ii) teste automatizado de navegador. Estas abordagens são aplicadas em um ambiente denominado de Beta Cluster que é responsável por apresentar a configuração de produção em um ambiente virtualizado.

Processos técnicos - 12207:2017

A fase Processos técnicos é categorizada da seguinte forma:

  • Processo de definição de necessidades e requisitos dos interessados: A comunidade do Mediawiki agrupou requisitos semelhantes entre si nas categorias de meta, fluxo de trabalho, visualização, organização e consultas, edição, conteúdo do item, história, código fonte, acesso, interface, notificações e API's. Os requisitos são aplicáveis para seis ou mais plataformas simultaneamente, como Mingle, Bugzilla, Gerrit, IRC, Translatewiki, Mediawiki.org e outros.
  • Processo de definição de requisitos de software: Para a instalação do Mediawiki se faz necessário a última versão estável, servidor Apache ou ISS, PHP versão 7.0.13 ou posterior com os atributos de expressões regulares compatíveis com o Perl, biblioteca padrão PHP e suporte JSON. Ademais, se faz necessário um servidor de banco de dados compatível, como MySQL 5.5.8+, MariaDB, PostgreSQL 9.2+, SQLite 3.3.7+.
  • Processo de definição de arquitetura: O processo de definição da arquitetura do Mediawiki foi impulsionado por colaboradores e pela comunidade, como a criação do Wikimedia Commons. Sua arquitetura está relacionada diretamente com desempenho, armazenamento em cache e otimização, além disso, ela possui quatro camadas que são denominadas de Camada de usuário, Camada de Rede, Camada lógica e Camada de dados.
  • Processo de definição de projeto: O Mediawiki disponibilizou apenas o esquema de banco de dados do núcleo. Vale ressaltar, que o modelo relacional do núcleo é adotado desde a fase II do software e demandou de esforços por parte da comunidade para atualização e incrementação de novas entidades. Para uma descrição mais detalhada do esquema e a descrição das principais tabelas de conteúdo, acessar a Arquitetura do MediaWiki
  • Processo de implementação: O Mediawiki foi projetado para ser executado em um grande farm de servidores em um site que recebe milhões de acessos por dia. Seu desenvolvimento contou com a implementação wiki do PHP aliado ao MySQL. O Mediawiki é um software escalável e pode ser acoplado a um servidor de proxy.
  • Processo de integração: O Mediawiki adota uma plataforma para execução sistemática de testes automatizados no tempo de pré-confirmação ou pós-confirmação. Os testes visam verificar se a ramificação principal dos repositórios no git permanecem em um estado constantemente implementável. A infraestrutura de integração contínua usa o Jenkins para controlar e executar compilações. O principal uso é executar testes em patches enviados no Gerrit.
  • Processo de manutenção: O Mediawiki dispõe de uma lista de scripts vinculadas ao subdiretório maintenance. A comunidade contribui ativamente e mantem a lista de scripts de manutenção atualizada, a lista é vinculada ao diretório raiz do software e pode ser atualizada ou incrementada individualmente.

Links adicionais

Referências

A Wikimedia Project. Disponível em: <https://www.mediawiki.org/wiki/MediaWiki>. Acesso em 12 de Outubro de 2019.
Wikipedia, the free encyclopedia. Disponível em: <https://en.wikipedia.org/wiki/>. Acesso em 12 de Outubro de 2019.