contribuir a rails
DESCRIPTION
Material de la ponencia sobre el proceso de contribución de código a Ruby on Rails, presentada durante la Conferencia Rails 2007(Madrid 22 y 23 de noviembre) por Juanjo BazánTRANSCRIPT
![Page 1: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/1.jpg)
Contribuir a Rails
Juanjo Bazán
![Page 2: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/2.jpg)
¿Qué es?
![Page 3: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/3.jpg)
¿Qué es?Realizar acciones que supongan u originen cambios en el código fuente de Ruby on Rails
![Page 4: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/4.jpg)
Proponer mejoras
Detectar Bugs
Plugins
Crear documentación
Corregir bugs
Código nuevo
Indirectamente
Directamente
¿Que es?
![Page 5: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/5.jpg)
¿Por qué contribuir?
![Page 6: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/6.jpg)
¡Alguien tiene que hacerlo!
¿Por qué contribuir?
![Page 7: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/7.jpg)
¿Serás mejor programador Rails?
¿Porqué?
Molaras más
Es justo
Serás mejor programador Ruby
Nadie va a hacerlo por ti
¿Que es?
![Page 8: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/8.jpg)
¿Cómo se hace?
![Page 9: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/9.jpg)
¿Cómo?
[Rails-Core]
¿Porqué?¿Que es?
Rails Trac
#rails-contrib
3 herramientas fundamentales:
Seguimiento de tickets: Parches
Lista de correo: Propuestas y discusiones sobre nuevas funcionalidades
Canal de IRC: Chat para ayuda/opiniones sobre contribuciones
![Page 10: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/10.jpg)
¿Cómo?
Proponer mejoras
Detectar Bugs
Plugins
Crear documentación
Corregir bugs
Código nuevo
[Rails-Core]
¿Porqué?¿Que es?
Rails Trac
#rails-contrib
![Page 11: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/11.jpg)
¿Cómo?
[Rails-Core]
¿Porqué?¿Que es?
Rails Trac
#rails-contribProponer cambios
Implementar cambios
Buscar apoyos para los cambios
Comunicar cambios
![Page 12: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/12.jpg)
Repositorio oficial del código fuente de Ruby On Rails
http://dev.rubyonrails.org
Rails Trac
![Page 13: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/13.jpg)
¿Cómo?¿Porqué?¿Que es?
Acceso:
Rails Trac
Rails Trac
Cualquiera puede subir parches
Sólo 12 personas pueden aceptarlos
El Core: http://www.rubyonrails.org/core
![Page 14: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/14.jpg)
¿Cómo?¿Porqué?¿Que es?
1) Implementar un cambio
Rails Trac
El proceso (muy esquematicamente):
2) Subirlo al trac
3) Conseguir que alguien del core lo acepte
![Page 15: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/15.jpg)
¿Cómo?¿Porqué?¿Que es?
1) Implementar un cambio
Rails Trac
El proceso:
2) Subirlo al trac
3) Conseguir que alguien del core lo acepte
Sincronizar nuestro entorno de desarrollo con la última versiónProgramar la funcionalidad que queramosAsegurarnos de que no modifica ninguna otra funcionalidad no deseada
Crear un parcheAbrir un ticket en el tracSubir el parche al trac y asociar nuestro parche al ticket
Publicitar/comentar nuestro parcheConseguir que suficientes personas aprueben nuestro ticket
![Page 16: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/16.jpg)
Paso a paso
![Page 17: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/17.jpg)
¿Cómo?¿Porqué?¿Que es?
Subversion
BBDD
Rails
Rails Trac
Herramientas necesarias
Paso a paso
![Page 18: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/18.jpg)
¿Cómo?¿Porqué?¿Que es?
Crear un nuevo proyecto de Rails> rails parcheando
Rails Trac
Nuestro entorno de desarrollo
Paso a paso
Obtener la última versión de Rails para nuestro proyecto> cd parcheando> svn co “http://svn.rubyonrails.org/rails/trunk” vendor/rails
Preparar la base de datos para tests -Información en: vendor/rails/activerecord/RUNNING_UNIT_TESTS -Datos: vendor/rails/activerecord/test/connections/native_XXXXX
Ejecutar tests> cd vendor/rails/activerecord> rake test_mysql> cd ../actionpack > cd ../activesupport ...> rake test
![Page 19: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/19.jpg)
¿Cómo?¿Porqué?¿Que es?
Asegurarnos de que no existen los cambios que queremos hacer
Rails Trac
Programar los cambios
Paso a paso
Respetar la guía de estilo No usar tabulador => Dos espacios No usar and o or => && y || No usar nombre_metodo( nombre_argumento ) ni usar nombre_metodo nombre_argumento => NombreClase.nombre_metodo(nombre argumento) Utiliza las convenciones que ya existan en el código
Añadir tests a nuestro código
Añadir documentación si procede
Asegurarnos de pasar tests propios y ajenos
![Page 20: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/20.jpg)
¿Cómo?¿Porqué?¿Que es?
Crear un parche con subversionparcheando/vendor/rails> svn diff > mi_parche.diff
Rails Trac
Parche
Paso a paso
Revisar con un editor de texto que el parche es correcto nombre directorio base incluye todo (y sólo) lo que queremos
![Page 21: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/21.jpg)
¿Cómo?¿Porqué?¿Que es?
Asegurarnos de que no existen los cambios que queremos hacer(II) trac >> search
svn up >> ¿conflitos?
Rails Trac
Actualizar el Trac
Paso a paso
Acceder al trac
Crear un Ticket nuevo Etiquetarlo como [PATCH]... Añadir etiquetas(keywords): componente, doc, tiny...
Explicar los cambios introducidos Si hay código nuevo incluir un ejemplo de usoAdjuntar el archivo diff Subir el archivo, no copy/paste
¿A quién lo asigno? ¿Dudas? >> Core
![Page 22: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/22.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Actualizar el Trac: New Ticket
Paso a paso
![Page 23: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/23.jpg)
Funcionamiento propio del sistema de tickets de Rails
Rails Trac
![Page 24: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/24.jpg)
¿Cómo?¿Porqué?¿Que es?
Valoración de tus parches por parte de los demás:
Rails Trac
Revisión de parches
Paso a paso
+1-1opinionespropuesta de mejoras al parchekeywords
tinyuntestedundocumented
![Page 25: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/25.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Catalogación de parches
Paso a paso
Los parches se catalogan en informes basados en la opinión de los demás sobre tu parche: http://dev.rubyonrails.org/report
![Page 26: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/26.jpg)
¿Cómo?¿Porqué?¿Que es?
Catalogación basada en palabras clave
Rails Trac
Reports
Paso a paso
untested => report 23 => report 11(incomplete)undocumented => report 24 => report 11(incomplete)tiny => report 16 (commit más rápido)doc => report 20 documentación(commit más fácil)unverified => faltan unit test => report 17
![Page 27: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/27.jpg)
¿Cómo?¿Porqué?¿Que es?
El informe 12 agrupa todos los parches cuyo funcionamiento ha sido verificado por suficiente gente http://dev.rubyonrails.org/report/12
Rails Trac
Objetivo: Report 12
Paso a paso
+1+1+1
Keyword: verified Report 12 ¡Commit!
![Page 28: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/28.jpg)
Cómo conseguir valoraciones positivas
+1s
![Page 29: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/29.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
paciencia
Paso a paso +1
![Page 30: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/30.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
#rails-contrib
Paso a paso +1
![Page 31: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/31.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
[Rails-Core]
Paso a paso +1
![Page 32: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/32.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Mantén vivala conversación
Paso a paso +1
![Page 33: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/33.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Evitar -1s
Paso a paso +1
![Page 34: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/34.jpg)
Fallos comunes y errores que generan -1s
¿Que puede ir mal?
![Page 35: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/35.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
No tests
Paso a paso +1 -1
![Page 36: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/36.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
No docs
Paso a paso +1 -1
![Page 37: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/37.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Contenido ya existente
Paso a paso +1 -1
![Page 38: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/38.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Hacer un cambio grandesin consultar previamente
Paso a paso +1 -1
(Si no consultas, mejor implementarlo como plugin)
![Page 39: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/39.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
SVN: error en directorio base
Paso a paso +1 -1
![Page 40: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/40.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Copy/paste código
Paso a paso +1 -1
(subir archivos diff/ejemplos/urls)
![Page 41: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/41.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Recibir comentarios negativos e ignorarloso abandonar
Paso a paso +1 -1
(¡hay que responder/defenderse/argumentar!)
![Page 42: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/42.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Recibir comentarios negativos y contestarcon malos modos
Paso a paso +1 -1
(hay que ser educado, y ya lo sabías)
![Page 43: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/43.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
No ejecutar tests después de crear el código
Paso a paso +1 -1
(¿rompes tests ajenos?)
![Page 44: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/44.jpg)
Comunidad
![Page 45: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/45.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
En el camino...
Paso a paso +1 -1
No olvides:
*aprender Rails *aprender Ruby *participar en discusiones de tickets ajenos *valorar otros tickets, da +1s/-1s
...
![Page 46: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/46.jpg)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Seguimiento:
Paso a paso +1 -1
WorkingWithRails
...
Blogs novedades rails
RSS trac
![Page 47: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/47.jpg)
¡Participa!
![Page 48: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/48.jpg)
Gracias.
Créditos de las fotografías:http://www.flickr.com/photos/8012118@N05/2033487464/http://www.flickr.com/photos/kuspoletto/2054705306/http://www.flickr.com/photos/76008487@N00/2049230753/http://www.flickr.com/photos/60892750@N00/2042934476/http://www.flickr.com/photos/reway2007/2050992672/
¿Preguntas?
Licencia:Este documento se presenta bajo licencia “Creative Commons Attribution-NonCommercial-ShareAlike”, versión 3,0. Es decir, se puede copiar, distribuir o crear trabajos derivados bajo las siguientes condiciones:
* Atribuir el crédito al autor original (Juanjo Bazán @ www.cafelink.es ) * No utilizar sin permiso este trabajo para usos comerciales. * Distribuir cualquier trabajo derivado usando esta misma licencia.
(Detalles en: http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es )
![Page 49: Contribuir a Rails](https://reader034.vdocuments.site/reader034/viewer/2022052301/54b49fcc4a795979368b462a/html5/thumbnails/49.jpg)
Recursos Mencionados
Rails trac:http://dev.rubyonrails.org
[Rails-core] Mail list:http://groups.google.com/group/rubyonrails-core
#rails-contrib:irc: freenode.net
Subversion:http://subversion.tigris.org
Rails Core:http://www.rubyonrails.org/core
Informes Rails Trac:http://dev.rubyonrails.org/report
Working with rails hackfest:http://www.workingwithrails.com/hackfest