Desarrolladores nuevos
This page explains how to get started as a developer who wants to contribute to Wikimedia technical projects.
¡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
The following steps are a general outline of how to get started contributing:
- Learn the basics of how Wikimedia open source software projects work.
- Read the Communication guidelines.
- Set up accounts: Create a developer account. Depending on the type of contribution you want to make, you may also need to set up accounts in Phabricator, and set up Git and Gerrit.
- Escoge un proyecto de software
- Escoge y resuelve una tarea (escribe y prueba tu código)
- Envía tus cambios de código Follow the Guide to getting your code reviewed and submit a patch.
The rest of this guide provides additional details about the process.
Basics of how Wikimedia software projects work
Wikimedia tiene cientos de proyectos de software en muchas áreas diferentes.Revisa esta presentación si quieres obtener una visión general.
Quienes mantienen a cada proyecto de software son bastante libres de elegir la infraestructura que prefieran. En general, básicamente todos 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 Sourceforge.
- a code repository where the source code can be "checked out" to everybody. Examples are Wikimedia Git/Gerrit, GitHub, or Sourceforge.
- a code review tool where proposed code changes (so-called patches) get discussed and improved. Examples are Wikimedia Git/Gerrit, GitHub, or Sourceforge. Once your proposed patch is good and is merged into the code repository, your code changes will become available to everybody. (You could read more about good practices for code review here.)
- general places for discussion of the software project and/or for receiving help and support. Those places can be mailing lists or IRC chat channels or wiki pages or other places. The exact places depend on each project. You could also contact specific mentors via "Email this user" on their user pages, but note that "questions asked in private don't help others".
At any point, if you run into problems or need help, please ask. To ask good questions in the right places, follow the "communication tips".
Overview of technical areas
For an overview of Wikimedia technology and examples of the major areas where developers can contribute, visit Introduction to the Wikimedia Technical Ecosystem.
Contributing to software in MediaWiki
Are you a user of a MediaWiki wiki looking to add a feature or fix a bug in one? Please see Cómo llegar a ser un hacker de MediaWiki to learn how to find and contribute to the software project part of MediaWiki you are looking for.
Escoger un proyecto de software
The following projects offer resources, mentorship, and are looking for new developers to contribute to them. Choose one of the following projects and follow the project's documentation to set up your development environment, choose a task to work on, solve the task, and submit your code changes for review. You are free to contribute to these projects or any others you are interested in related to Wikimedia. Most can be found by searching for them on Phabricator or online.
An offline reader for people without internet access
- Habilidades requeridas: Java/Kotlin (Android), Swift (iOS), Qt (desktop), NodeJS (mediawiki offliner), C++, Python (WP1)
- Ponte en contacto: Mailing list / Slack
- ver código fuente GitHub
- Leer la general documentation y el archivo README.md del proyecto correspondiente
- Revise las tareas recomendadas para trabajar: Android, iOS, JS, mwoffliner on 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 [[1]]
- Revise las tareas recomendadas para trabajar: GitHub
- Mentor(es): Josephine Lim
Wiki Education Dashboard
A web application that supports Wikipedia education assignments, provides data and course management for instructors and students
Pywikibot
A Python library and collection of scripts that automate work on MediaWiki sites.
- Habilidades requeridas: Python
- Ponte en contacto: #pywikibot connect on irc.libera.chat / Mailing list
- ver código fuente Use git para obtener el [$source source code]
- Lea la Special:MyLanguage/Manual:Pywikibot en la documentación y la [$url API referencia]
- Revise las tareas recomendadas para trabajar: Phabricator
- Mentor(es): xqt
Scribe
Scribe provides Wikidata based keyboards for second language learners. Features include translation, verb conjugation and noun-gender annotation. This project is very open to those who want to learn the needed languages and how to work with Wikidata!
- Skills required: Swift for Scribe-iOS; Kotlin for Scribe-Android; Python and/or Wikidata Query Service for our Scribe-Data language data extraction CLI
- Get in touch: GitHub or email
- Get the source code: GitHub
- Read the contribution guidelines: Scribe-iOS, Scribe-Android or Scribe-Data
- Check the recommended tasks: Scribe-iOS, Scribe-Android or Scribe-Data
- Mentor(s): Andrew McAllister
VideoCutTool
A tool to edit the videos on Wikimedia Commons.
- Skills required: React JS, Node JS.
- Póngase en contacto: #VideoCutTool in Zulip
- Get the source code: See link in description in Phabricator
- Read the documentation
- Check the recommended tasks to work on: Phabricator
- Mentor(s): Gopa Vasanth
SignIt Firefox Extension
Lingua Libre SignIt web-browser extension translates selected written word via an elegant pop up so you learn sign language while reading online. You can add a signed video using Lingualibre.org by selecting a signed language, then video recording yourself while signing.
- Skills required : JS, web extension, OOjs
- Get in touch: contact Yug or on GitHub
- Get the source code: GitHub
- Read the documentation: m:Lingua Libre/SignIt
- Check the recommended tasks to work on: Good first issues on GitHub »
- Mentor(s): Yug
Are you a maintainer and want your project to be included in the list of software projects above? Find out more and join!
Outreach programs and single tasks
In addition to the recommended software projects above, there are more ways to choose a project or task to work on:
Outreach Programas
Good first tasks
However, mentors may not be available for these tasks, and your proposed patches may not receive fast reviews.
Communication tips
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.
Additional resources
- Introduction to the Wikimedia Technical Ecosystem provides an overview of Wikimedia tech, focused on the major areas where developers can contribute.
- How to contribute lists many more ways to contribute, including areas like documentation, testing, and more.
- How to become a MediaWiki hacker: For developers who want to work on MediaWiki core or MediaWiki extensions.
- Newbie guide for the Web team
- Developer hub: More resources for established Wikimedia developers.
- To ask your questions and to join general discussions, check the places listed on Communication.
- Wikimedia tutorials: An index of tutorials that feature various languages, APIs, and frameworks in the Wikimedia technology stack.
- Supporting newcomers at hackathons
- Newcomer support at hackathons and the associated mentor guide
- Newcomers section of the Hackathons Handbook, as well as the Mentoring Tips page
- How-to page for newcomers at the Wikimedia Hackathon 2022