El documento explica cómo contribuir a Ruby on Rails. Detalla las herramientas clave como Rails Trac, la lista de correo [Rails-Core] y el canal IRC #rails-contrib. Explica el proceso de proponer mejoras, detectar errores, crear plugins y documentación, y corregir errores.
9. ¿Que es? ¿Porqué? ¿Cómo?
3 herramientas fundamentales:
Rails Trac
Seguimiento de tickets: Parches
[Rails-Core]
Lista de correo: Propuestas y discusiones sobre nuevas funcionalidades
#rails-contrib
Canal de IRC: Chat para ayuda/opiniones sobre contribuciones
13. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac
Rails Trac
Acceso:
Cualquiera puede subir parches
Sólo 12 personas pueden aceptarlos
El Core: http://www.rubyonrails.org/core
14. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac
El proceso (muy esquematicamente):
1) Implementar un cambio
2) Subirlo al trac
3) Conseguir que alguien del core lo acepte
15. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac
El proceso:
1) Implementar un cambio
Sincronizar nuestro entorno de desarrollo con la última versión
Programar la funcionalidad que queramos
Asegurarnos de que no modifica ninguna otra funcionalidad no deseada
2) Subirlo al trac
Crear un parche
Abrir un ticket en el trac
Subir el parche al trac y asociar nuestro parche al ticket
3) Conseguir que alguien del core lo acepte
Publicitar/comentar nuestro parche
Conseguir que suficientes personas aprueben nuestro ticket
18. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Nuestro entorno de desarrollo
Crear un nuevo proyecto de Rails
> rails parcheando
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
19. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Programar los cambios
Asegurarnos de que no existen los cambios que queremos hacer
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
20. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Parche
Crear un parche con subversion
parcheando/vendor/rails> svn diff > mi_parche.diff
Revisar con un editor de texto que el parche es correcto
nombre
directorio base
incluye todo (y sólo) lo que queremos
21. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Actualizar el Trac
Asegurarnos de que no existen los cambios que queremos hacer(II)
trac >> search
svn up >> ¿conflitos?
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 uso
Adjuntar el archivo diff
Subir el archivo, no copy/paste
¿A quién lo asigno?
¿Dudas? >> Core
22. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Actualizar el Trac: New Ticket
24. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Revisión de parches
Valoración de tus parches por parte de los demás:
+1
-1
opiniones
propuesta de mejoras al parche
keywords
tiny
untested
undocumented
25. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Catalogación de parches
Los parches se catalogan en informes basados en la opinión de los
demás sobre tu parche: http://dev.rubyonrails.org/report
26. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Reports
Catalogación basada en palabras clave
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
27. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso
Objetivo: Report 12
El informe 12 agrupa todos los parches cuyo
funcionamiento ha sido verificado por suficiente gente
http://dev.rubyonrails.org/report/12
+1
¡Commit!
+1 Keyword: verified Report 12
+1
34. ¿Que puede ir mal?
Fallos comunes y errores que generan -1s
35. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
No tests
36. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
No docs
37. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
Contenido ya existente
38. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
Hacer un cambio grande
sin consultar previamente
(Si no consultas, mejor implementarlo como plugin)
39. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
SVN:
error en directorio base
41. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
Recibir comentarios
negativos e ignorarlos
o abandonar
(¡hay que responder/defenderse/argumentar!)
42. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
Recibir comentarios
negativos y contestar
con malos modos
(hay que ser educado, y ya lo sabías)
43. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1
No ejecutar tests
después de crear
el código
(¿rompes tests ajenos?)
45. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1 ...
En el camino...
No olvides:
*aprender Rails
*aprender Ruby
*participar en discusiones de tickets ajenos
*valorar otros tickets, da +1s/-1s
48. Gracias.
¿Preguntas?
Licencia: ¿dudas?
Este documento se presenta bajo licencia “Creative Commons Attribution- jjbazan@cafelink.es
NonCommercial-ShareAlike”, versión 3,0. Es decir, se puede copiar, distribuir
o crear trabajos derivados bajo las siguientes condiciones:
Créditos de las fotografías:
http://www.flickr.com/photos/8012118@N05/2033487464/
* Atribuir el crédito al autor original (Juanjo Bazán @ www.cafelink.es )
http://www.flickr.com/photos/kuspoletto/2054705306/
* No utilizar sin permiso este trabajo para usos comerciales.
http://www.flickr.com/photos/76008487@N00/2049230753/
* Distribuir cualquier trabajo derivado usando esta misma licencia.
http://www.flickr.com/photos/60892750@N00/2042934476/
http://www.flickr.com/photos/reway2007/2050992672/
(Detalles en: http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es )
49. 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