Desarrolladores nuevos
Esta página explica cómo empezar como desarrollador que quiere contribuir a proyectos técnicos de Wikimedia.
¡Bienvenido!

La comunidad técnica de Wikimedia siempre da la bienvenida a nuevos contribuidores a nuestros proyectos.
Forma parte de una comunidad global y ayuda a que el acceso al conocimiento libre sea más fácil para todos!
Cómo comenzar a contribuir
Los siguientes pasos son un esquema general de cómo comenzar a contribuir:
- Aprenda los conceptos básicos de cómo funcionan los proyectos de software de código abierto de Wikimedia.
- Lea las Pautas de comunicación.
- Configurar cuentas: Crear una cuenta de desarrollador. Según el tipo de contribución que desee realizar, es posible que también necesite configurar cuentas en Phabricator y configurar Git y Gerrit.
- Escoge un proyecto de software
- Escoge y resuelve una tarea (escribe y prueba tu código)
- Envía tus cambios de código Siga la Guía para que revisen su código y envíe un parche.
El resto de esta guía proporciona detalles adicionales sobre el proceso.
Conceptos básicos de cómo funcionan los proyectos de software de Wikimedia
Wikimedia tiene proyectos de software en muchas áreas diferentes.
Quienes mantienen a cada proyecto de software eligen la infraestructura que prefieran. En general, la mayoría de los proyectos de software tienen:
- Un task tracking herramienta en la que se notifican, gestionan y debaten los fallos de los programas informáticos y las solicitudes de mejora.Ejemplos son Wikimedia Phabricator, GitHub, o Wikimedia GitLab.
- Un code repository donde el código fuente puede ser "desprotegido" a todos. Algunos ejemplos son: Wikimedia Gerrit, GitHub, o Wikimedia GitLab.
- Una herramienta code review donde se discuten y mejoran los cambios propuestos (parches). Algunos ejemplos son Wikimedia Git/Gerrit, GitHub o GitLab. Una vez aprobado el parche propuesto y fusionado con el repositorio de código, los cambios estarán disponibles para todos.
- Lugares generales de discusión sobre el proyecto de software y para obtener ayuda y soporte. Estos lugares pueden ser listas de correo, canales de chat de IRC, páginas wiki u otros. Los lugares exactos dependen de cada proyecto.
Si tiene algún problema o necesita ayuda, no dude en preguntar. Para hacer buenas preguntas en el lugar adecuado, siga los "consejos de comunicación".
Resumen de áreas técnicas
Para obtener una descripción general de la tecnología de Wikimedia y ejemplos de las principales áreas en las que los desarrolladores pueden contribuir, visita Introducción al Ecosistema Técnico de Wikimedia.
Contribuyendo al software en MediaWiki
¿Es usted usuario de una wiki de MediaWiki y busca agregar una característica o corregir un error en uno de ellos? Consulte Cómo llegar a ser un hacker de MediaWiki para saber cómo encontrar y contribuir a la parte del proyecto de software de MediaWiki que está buscando.
Escoger un proyecto de software
Los siguientes proyectos ofrecen recursos, tutoría y buscan nuevos desarrolladores que contribuyan a ellos. Elija uno de los siguientes proyectos y siga la documentación del proyecto para configurar su entorno de desarrollo, elegir una tarea en la que trabajar, resolver la tarea y enviar los cambios de su código para su revisión. Eres libre de contribuir a estos proyectos o a cualquier otro que te interese relacionado con Wikimedia. La mayoría se pueden encontrar buscándolos por Phabricator o en línea.

Un lector sin conexión de [1] para personas sin acceso a Internet
- Habilidades requeridas: Java/Kotlin (Android), Swift (iOS), Qt (desktop), NodeJS (mediawiki offliner), C++, Python (WP1)
- Ponte en contacto: Lista de correo / Slack
- Ver código fuente GitHub
- Leer la documentación general y el archivo README.md del proyecto correspondiente
- Revise las tareas recomendadas para trabajar: Android, iOS, JS, mwoffliner en GitHub
- Mentor(es): Matthieu Gauthier, Emmanuel Engelhart, Stephane Coillet-Matillon
Commons App for Android

Una aplicación para dispositivos Android para subir tus fotos a Wikimedia Commons
- Habilidades requeridas: Java
- Ponte en contacto: Google Groups
- Ver código fuente GitHub
- Leer la [[2]]
- Revise las tareas recomendadas para trabajar: GitHub
- Mentor(es): Josephine Lim
Wiki Education Dashboard
Pywikibot

Una biblioteca Python y una colección de scripts que automatizan el trabajo en los sitios de MediaWiki.
- Habilidades requeridas: Python
- Ponte en contacto: #pywikibot connect on irc.libera.chat / Mailing list
- Ver código fuente Use git para obtener el código fuente
- Lea la documentación y la referencia de la API
- Revise las tareas recomendadas para trabajar: Phabricator
- Mentor(es): xqt
Scribe

Scribe ofrece teclados basados en Wikidata para estudiantes de segundas lenguas. Incluye funciones como traducción, conjugación de verbos y anotación de género de sustantivos. Este proyecto está abierto a quienes deseen aprender los idiomas necesarios y a trabajar con Wikidata.
- Habilidades requeridas: Swift para Scribe-iOS; Kotlin para Scribe-Android; Python y/o Wikidata Query Service para nuestra CLI de extracción de datos del lenguaje Scribe-Data
- Contáctanos: GitHub o correo electrónico
- Obten el codigo fuente: GitHub
- Lea las pautas de contribución: Scribe-iOS, Scribe-Android o Scribe-Data
- Consulta las tareas recomendadas: Scribe-iOS, Scribe-Android o Scribe-Data
- Mentor(es): Andrew McAllister
VideoCutTool

Una herramienta para editar los vídeos en Wikimedia Commons.
- Habilidades requeridas: React JS, Node JS.
- Póngase en contacto: #VideoCutTool en Zulip
- Consulta el código fuente Ver link en description in Phabricator
- Leer la documentación
- Revise las tareas recomendadas para trabajar: Phabricator
- Mentor(es): Gopa Vasanth, Varun Shrivastava, Punith B Nayak
¿Eres mantenedor y quieres que tu proyecto se incluya en la lista de proyectos de software anterior? ¡Descubre más y únete!
Programas de extensión y tareas individuales
Además de los proyectos de software recomendados anteriormente, existen más formas de elegir un proyecto o tarea en la que trabajar:
Outreach Programas
Good first tasks
Sin embargo, es posible que no haya mentores disponibles para estas tareas y que los parches propuestos no reciban revisiones rápidas.
Consejos de comunicación
Sigue estos consejos para comunicar eficazmente y obtener ayuda de otros miembros de la comunidad.
Utiliza eficazmente las tareas de Phabricator
Cuando te plantees trabajar en una tarea de Phabricator:
- No es necesario pedir permiso: Puedes trabajar en tareas no asignadas sin tener que pedir que alguien te las asigne. No hay una autoridad que asigne las tareas ni alguien a quien haya que preguntar en primer lugar.
- Si una tarea ya tiene un parche reciente en Gerrit, elige una tarea diferente en la que trabajar.
- Si un parche existente en Gerrit aún no se ha fusionado y no ha tenido cambios en mucho tiempo, puedes mejorar ese parche que ya existe en función de los comentarios que haya recibido en Gerrit y de la tarea.
- Investiga de antemano: Cuando te plantees trabajar en una tarea, investiga antes de escribir código. Mira el código, trata de entender lo que se supone que tiene que hacer, lee la documentación al respecto y trata de encontrar los lugares donde tienes que cambiar el código.
- En una tarea de Phabricator, utiliza las etiquetas de proyecto en la barra lateral para encontrar el repositorio de código para la tarea.
- Si no tienes ni idea de cómo arreglar el error, trata de encontrar primero una tarea más fácil.
- No hace falta que anuncies tus intenciones antes de empezar a trabajar en una tarea, pero si estás trabajando en una en estos momentos, dilo.
- Cuando empieces a trabajar, asígnate la tarea haciendo clic en Edit Task… en Phabricator, e introduce tu nombre de usuario en Phabricator en el campo Assigned To. Esto comunica a los demás que estás trabajando en ello, para evitar que se duplique el trabajo.
- Cuando cambies tus planes o intereses: Si ya no estás trabajando en una tarea, desasígnatela. Esto les dice a los demás que pueden trabajar en la tarea sin que asuman que vas a seguir con ella.
- Sigue la etiqueta de Phabricator.
- En las tareas de Phabricator, limítate a discutir sobre cuestiones específicas acerca de esa tarea. No utilices Phabricator para plantear preguntas generales, por ejemplo, sobre cómo montar un entorno de desarrollo o cómo solucionar problemas con Gerrit.
Haz buenas preguntas
- No preguntes si puedes preguntar: ¡pregunta!.
- Sé conciso y proporciona contexto: En lugar de preguntar sin más «¿Me pueden dar más información?», «Necesito ayuda» o «Por favor, díganme cómo empezar», incluye la siguiente información en tu pregunta:
- ¿Qué estás tratando de conseguir?
- ¿Qué has intentado hasta ahora? Copia y pega tus comandos y su salida (si no es demasiado larga) en lugar de parafrasear esto en tus propias palabras.
- ¿Qué has descubierto durante tu investigación? Incluye los enlaces al código, la documentación u otros recursos que ya hayas consultado.
- Emplea títulos y líneas de asunto específicos en tu comunicación. «Proyecto de propuesta» o «Necesito ayuda» no son específicos.
- Procura que las conversaciones sean legibles: Cuando respondas en Zulip, en las tareas de Phabricator o en listas de correo, limítate a citar secciones de comentarios anteriores que sean relevantes para tu respuesta. Si citas un comentario anterior completo, hace que los hilos de discusión resulten difíciles de leer.
Sigue las políticas y buenas prácticas de comunicación
Antes de enviar o publicar tu pregunta:
- Lee y sigue el código de conducta para especios técnicos de Wikimedia.
- Utiliza el Lenguaje inclusivo: En lugar de emplear términos que asuman una determinada identidad de género (como «chicos», «señora» o «señor») para llamar a alguien, utiliza el nombre de la persona.
Pregunta en el lugar correcto
- Pregunta en público: No envíes mensajes privados si el tema de tu conversación no es secreto. Los mensajes privados no ayudan a los demás.
- Pregunta y discute en el lugar más adecuado:
- En las tareas de Phabricator, limítate a discutir sobre cuestiones específicas acerca de esa tarea.
- Haz las preguntas generales, por ejemplo, cómo montar un entorno de desarrollo o cómo solucionar problemas con Gerrit, en los lugares indicados en Comunicación.
- Si participas en un programa de difusión, Zulip sirve para responder a preguntas sobre los propios programas de difusión.
Ten paciencia
Después de publicar tu pregunta:
- No solicites una revisión de código en un mensaje separado. La gente recibe notificaciones de Gerrit y Phabricator y responde cuando puede.
- Cuando busques respuestas o comentarios, especialmente durante los fines de semana o los festivos, puede que tengas que esperar a que se reanude el horario laboral. En los canales de chat como IRC: si nadie contesta, inténtalo de nuevo a otra hora, ¡no abandones sin más!
- Si no obtienes una respuesta tras haber esperado con paciencia, plantéate si los canales de comunicación pudieran ser un lugar más adecuado para plantear tu pregunta.
Recursos adicionales
- Introducción al Ecosistema Técnico de Wikimedia ofrece una descripción general de la tecnología de Wikimedia, centrada en las principales áreas en las que los desarrolladores pueden contribuir.
- Cómo contribuir enumera muchas más formas de contribuir, incluidas áreas como documentación, pruebas y más.
- Cómo llegar a ser un hacker de MediaWiki: Para desarrolladores que quieran trabajar en el núcleo de MediaWiki o en las extensiones de MediaWiki.
- Centro de desarrolladores: más recursos para desarrolladores de Wikimedia establecidos.
- Para hacer preguntas y participar en discusiones generales, consulte los lugares que aparecen en Comunicación.
- Tutoriales de Wikimedia: un índice de tutoriales que presentan varios idiomas, API y marcos en la pila de tecnología de Wikimedia.
- Apoyando a los recién llegados en hackathons
- Apoyo para recién llegados en hackatones y la guía del mentor asociada
- Sección Recién llegados del Manual de hackatones, así como la página Consejos de mentoría
- Página de instrucciones para principiantes en el Wikimedia Hackathon 2022
