Jump to content

Centro del desarrollador

From mediawiki.org
This page is a translated version of the page Developer hub and the translation is 99% complete.
  • Usuarios
  • Administradores de sistema
  • Desarrolladores
  • Traductores


Esta es una descripción de alto nivel del desarrollo de MediaWiki que incluye enlaces a los documentos relevantes, recursos y herramientas disponibles a los desarrolladores de MediaWiki. Está escrito para desarrolladores especializados en LAMP con experiencia en el uso de MediaWiki.

Descripción

MediaWiki es el software que permite el funcionamiento de Wikipedia, sus proyectos hermanos y miles de wikis en todo el mundo.

MediaWiki está escrito en lenguaje de programación PHP [1]. Usa jQuery como librería cliente de JavaScript.

MediaWiki está escrito principalmente para la plataforma LAMP[2] y funciona en la mayoría de sistemas operativos. MediaWiki usa principalmente los servidores de bases de datos MySQL y MariaDB.[3]

MediaWiki está desarrollado al estilo código abierto[4], su desarrollo principal se coordina en gran parte online, y respaldado por la Fundación Wikimedia, aunque la comunidad de desarrolladores voluntarios juega también un papel importante.

  • La discusión sobre el desarrollo se realiza en varias listas de correo y canales IRC La principal lista del desarrollador es wikitech-l. El canal del desarrollador es #mediawiki connect.
  • El código fuente se gestiona mediante el sistema de control de revisiones Git.[5]
  • La revisión del código de la mayoría de los proyectos se realiza en Gerrit . Consulta este tutorial para configurar git y gerrit y poder enviar parches.
  • Los reportes de error y las tareas se manejan en Phabricator .
  • Los desarrolladores que trabajan en la ampliación o la interfaz de MediaWiki (en lugar de trabajar en el código principal) disponen de varios puntos prácticos de extensión, como la API, el sistema de puntos de extensión (hooks) y apariencias. Consulta la sección #Extending MediaWiki de esta página para obtener información general.

Documentos relevantes

Código, desarrollo y estilo

Depuración y pruebas

Arquitectura

Subsistemas

  • API: la API de MediaWiki provee un acceso directo de alto nivel a los datos en las bases de datos de MediaWiki
  • ContentHandler – La infraestructura de MediaWiki para soportar tipos personalizados de contenido de página.
  • Acceso a base de datos – descripción de la utilización de las bases de datos en MediaWiki. Se incluye una guía breve de la capa de abstracción.
  • Job queue – infraestructura de MediaWiki para procesar tareas largas asincrónicamente.
  • Messages API – infraestructura de MediaWiki para proveer mensajes localizados de la aplicación con PHP o JavaScript.

Ampliación de MediaWiki

MediaWiki ha sido diseñada para permitir modificaciones sin cambiar el "código del núcleo". Así se facilita la actualización a una nueva versión sin necesidad de fusionar manualmente en cambios del código anteriores. Hay seis puntos principales de extensión que permiten cambiar o expandir lo que hace MediaWiki. Los puntos de extensión son:

Ayuda para desrrolladores de extensiones

Ayuda para desarrolladores de apariencias

Ayuda para la reutilización del código de bibliotecas

Notas

  1. No todo MediaWiki está escrito en PHP. Algunas herramientas de soporte están escritas en otros lenguajes, incluso batch files, shell scripts, makefiles y Python.
  2. MediaWiki funciona en la mayoría de las plataformas que soportan PHP. Sin embargo, la falta de ciertas utilidades o funciones del sistema operativo puede limitar la funcionalidad o el rendimiento de MediaWiki en plataformas que no soportan LAMP.
  3. Aparte de MySQL y MariaDB, MediaWiki tiene soporte para DBMS en PostgreSQL y SQLite.
  4. Los desarrolladores son una mezcla de voluntarios y personal de la Fundación Wikimedia (o contratados). Hay una lista completa de personas que trabajan en el código MediaWiki en el artículo Desarrolladores .
  5. Explora el código y las revisiones de los repositorios de código en Gerrit o descarga el código fuente a tu sistema usando Gerrit .