Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Guía Open Source: Cómo contribuir

Guía Open Source: Cómo contribuir

Presentación acerca del github open source guide del Miercoles 8 de Marzo de Workshop Technology para la Facultad de Matematicas, UADY.

Avatar for Arandi López

Arandi López

March 08, 2017

Other Decks in Programming

Transcript

  1. • Mejorar mis habilidades • Conocer gente con intereses similares

    • Encontrar asesores y enseñar a otros • Construir artefactos públicos que te ayuden a hacer una reputación (y una carrera) • Aprender habilidades en equipo • Es poderoso poder hacer cambios, incluso los más pequeños
  2. • ¿Cómo el encontrar el proyecto correcto? • ¿Y si

    no sé cómo programar? • ¿Y si algo sale mal?
  3. • ¿Te gustan los eventos? ◦ Organiza talleres o meetups

    ◦ Organiza conferencias ◦ Ayuda los miembros de la comunidad a encontrar conferencias o talleres y enviar propuestas de pláticas • ¿Te gusta el diseño? ◦ Reestructura layouts o mejora la usabilidad del proyecto. ◦ Crea una guía de estilos que ayude al proyecto a tener un diseño visual consistente. ◦ Crear playeras o un nuevo logo. • ¿Te gusta escribir? ◦ Escribe y mejorar la documentación del proyecto ◦ Crea una carpeta de ejemplos de cómo el proyecto es usado ◦ Escribe tutoriales o reseñas ◦ Traduce la documentación del proyecto
  4. • ¿Te gusta organizar? ◦ Linkea issues duplicados, sugiere nuevas

    etiquetas, para mantener las cosas ordenadas ◦ Revisa issues abiertos y sugiere cerrar los más antiguos • ¿Te gusta programar? ◦ Encuentra un issue abierto que puedas hacer ◦ Pregunta si puedes ayudar con un nuevo feature ◦ Automatiza la configuración del proyecto ◦ Mejora las herramientas y pruebas • ¿Te gusta ayudar a otros? ◦ Contesta preguntas en Stackoverflow o reddit ◦ Contesta preguntas en issues abiertos ◦ Ayuda a moderar las discusiones en issues ◦ Haz revisiones del código que alguien más sube ◦ Ofrece tu asesoría a otro contribuidor
  5. Documentación • LICENSE (Open Source License) • README • CONTRIBUTING

    • CODE_OF_CONDUCT • Otra documentación ◦ Página web ◦ Tutoriales ◦ Wikis
  6. Herramientas de Organización • Issue Tracker • Pull/Merge Request •

    Foros de discusión • Listas de correo • Canal de chat
  7. “Ask not what your country can do for you -

    ask what you can do for your country.” - John F. Kennedy
  8. • Empieza con proyectos que usas o que te gustaría

    usar. • Los proyectos en los que contribuirás siempre son aquellos en los que te sientas correspondido. • El open source no es un club exclusivo; está conformado por personas como tú. • El 28% de las contribuciones son a documentación. ◦ http://www.igor.pro.br/publica/papers/saner2016.pdf
  9. Herramientas para encontrar nuevos proyectos • Github Explore: https://github.com/explore/ •

    First timers only: http://www.firsttimersonly.com/ • Your first PR: https://yourfirstpr.github.io/ • Code Triage: https://www.codetriage.com/ • Hacktoberfest: https://hacktoberfest.digitalocean.com/
  10. Un checklist antes de contribuir ❏ ¿Tiene alguna licencia?, Usualmente

    existe un archivo llamado LICENSE en la raíz del proyecto El proyecto acepta contribuciones ❏ ¿Cuando fue el último commit? ❏ ¿Cuantos contribuidores tiene? ❏ ¿Cuantos issues abiertos tiene? ❏ ¿Existen discusiones activas en los issues? ❏ ¿Los issues son recientes?
  11. ❏ ¿Cuantos pull request tiene? ❏ ¿Hay discusiones activas y

    recientes en los pull request? ❏ ¿Los pull request son recientes? ❏ ¿Qué tan seguido los pull request son mezclados? El proyecto es agradable ❏ ¿Los maintainers responden utilmente preguntas en issues? ❏ ¿La gente es amigable en issues, discusiones y chats? ❏ ¿Los pull request se revisan? ❏ ¿Los maintainers agradecen las contribuciones?
  12. Si eres contribuidor de una vez o intentas entrar a

    una comunidad, trabajar con otros es una de las habilidades más importantes que desarrollarás en el open source
  13. • Da contexto. Ayuda que entiendan rápidamente. Si tienes un

    error, explica que ocurre y cómo replicar el error. Si tienes un nueva idea, explica porque crees que sería útil para el proyectos (no solo para ti) No sucede X cuando hago Y X no sirve, arreglenlo por favor! • Haz tu tarea de antemano. Esta bien no saber cosas, pero muestra que al menos lo intentas. Antes de pedir ayuda, lee el readme o documentación del proyecto, issues o busca por internet. Los demás apreciará cuando tu demuestras que quieres aprender. No estoy seguro cómo implementar X, ya revisé los docs y no lo encontré ¿Cómo hago X?
  14. • Mantén las peticiones cortas y directas. Cada contribución requiere

    que alguien la revise. Muchos proyectos tienen más peticiones que gente disponible para revisarlas. Se conciso. Me gustaría escribir la documentación de la api Estaba en el colegio en clase de base de datos y mientras revisaba el proyecto se me ocurrió una buena funcionalidad, pero antes les muestro... • Mantén toda la comunicación pública. Aunque sea tentador, no te comuniques con los maintainers privadamente a menos que necesites compartir información sensible. (comentario) “@-someone Hola! Cómo deberíamos revisar este PR?” (email) “Hola, perdona molestarte por mail, pero me preguntaba si tienes chance de revisar mi PR”
  15. • Esta bien hacer preguntas, pero sé paciente. Todos tienen

    un nuevo proyecto en algún punto, y hasta los contribuidores más expertos necesitan agilizar los proyectos. De la misma forma, hasta los maintainers más antiguos no están muy familiarizados con cada parte del proyecto. Muestra la misma paciencia que te gustaría que tengan contigo. Gracias por revisar mi error. Seguí tus sugerencias y aqui esta la salida. ¿Por qué no puedes resolver esto?, ¿Que no es tu proyecto? • Respeta las decisiones de la comunidad. Tus ideas pueden diferir de las prioridades o visión de la comunidad. Ellos te pueden retroalimentar o simplemente no comprar tu idea. Si no estás de acuerdo con su visión, siempre puedes trabajar en tu propio fork o iniciar tu propio proyecto.
  16. Recopilando contexto Antes de hacer algo, haz una revisión rápida

    para asegurarte que tu idea no se haya discutido antes en algún lugar. Revisa el README, issues, pull requests, Stack Overflow. Si no encontraste nada de tu idea, entonces haz el movimiento. • Issues pueden ser para empezar una conversación o discusión. • Pull requests son para empezar a trabajar en una solución. • Para comunicación ligera, como aclaraciones o how-to’s, puedes preguntar en Stack Overflow, Slack u otros chats o canales de comunicación que el proyecto tenga.
  17. Abrir un Issue Deberías abrir un issue en las siguientes

    situaciones: • Reportar un error que no puedes resolver • Discutir un tema o idea • Proponer un nuevo feature u otras ideas Tips para la comunicación en issues: • Si hay un issue abierto en el que quieres trabajar, comenta en el para que la gente sepa que estás en el. • Si el issue ya tiene tiempo de estar abierto, es posible que alguien ya lo tenga resuelto o trabaje en ellos, pregunta para confirmar la situación.
  18. Abrir un Pull Request (PR) Deberías abrir un pull request

    en la siguientes situaciones: • Enviar fixes triviales (ej. Error ortográfico, link roto, error obvio). • Iniciar el trabajo de alguna contribución que se ha pedido, o que haz discutido en un issue. Un pull request no tiene que representar trabajo terminado. A veces es mejor abrir el pull request antes, así otros podrán retroalimentar tu progreso. Marca en el título del PR con WIP (Work In Progress).
  19. Cómo enviar un PR en Github • Haz un fork

    del repo y clónalo localmente. Conecta el remote del repositorio original. Baja los cambios constantemente de ese remote para estar actualizado y evitar conflictos de mezcla en tu PR. • Crea una rama para tus cambios. • Señala referencias para issues relevantes o proveer documentación en tu PR (ej. “Closes #37.”) • Incluye screenshots del antes y el después si tus cambios afectan algo visual como HTML/CSS. • ¡PRUEBA TUS CAMBIOS!. Corre las pruebas contra otras pruebas existentes y crea nuevas si es necesario. Existan o no pruebas, asegurate que tus cambios no rompan el proyecto.
  20. El Open Source está hecho por gente como tu: Un

    issue, pull request, comentario o high-five a la vez