Rails Chat! Rails 勉強会 @ 関西 [email protected]. Rails Chat の歴史.
Contribuir a Rails
-
Upload
juanjo-bazan -
Category
Technology
-
view
2.242 -
download
0
description
Transcript of Contribuir a Rails
Contribuir a Rails
Juanjo Bazán
¿Qué es?
¿Qué es?Realizar acciones que supongan u originen cambios en el código fuente de Ruby on Rails
Proponer mejoras
Detectar Bugs
Plugins
Crear documentación
Corregir bugs
Código nuevo
Indirectamente
Directamente
¿Que es?
¿Por qué contribuir?
¡Alguien tiene que hacerlo!
¿Por qué contribuir?
¿Serás mejor programador Rails?
¿Porqué?
Molaras más
Es justo
Serás mejor programador Ruby
Nadie va a hacerlo por ti
¿Que es?
¿Cómo se hace?
¿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
¿Cómo?
Proponer mejoras
Detectar Bugs
Plugins
Crear documentación
Corregir bugs
Código nuevo
[Rails-Core]
¿Porqué?¿Que es?
Rails Trac
#rails-contrib
¿Cómo?
[Rails-Core]
¿Porqué?¿Que es?
Rails Trac
#rails-contribProponer cambios
Implementar cambios
Buscar apoyos para los cambios
Comunicar cambios
Repositorio oficial del código fuente de Ruby On Rails
http://dev.rubyonrails.org
Rails Trac
¿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
¿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
¿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
Paso a paso
¿Cómo?¿Porqué?¿Que es?
Subversion
BBDD
Rails
Rails Trac
Herramientas necesarias
Paso a paso
¿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
¿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
¿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
¿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
¿Cómo?¿Porqué?¿Que es? Rails Trac
Actualizar el Trac: New Ticket
Paso a paso
Funcionamiento propio del sistema de tickets de Rails
Rails Trac
¿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
¿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
¿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
¿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!
Cómo conseguir valoraciones positivas
+1s
¿Cómo?¿Porqué?¿Que es? Rails Trac
paciencia
Paso a paso +1
¿Cómo?¿Porqué?¿Que es? Rails Trac
#rails-contrib
Paso a paso +1
¿Cómo?¿Porqué?¿Que es? Rails Trac
[Rails-Core]
Paso a paso +1
¿Cómo?¿Porqué?¿Que es? Rails Trac
Mantén vivala conversación
Paso a paso +1
¿Cómo?¿Porqué?¿Que es? Rails Trac
Evitar -1s
Paso a paso +1
Fallos comunes y errores que generan -1s
¿Que puede ir mal?
¿Cómo?¿Porqué?¿Que es? Rails Trac
No tests
Paso a paso +1 -1
¿Cómo?¿Porqué?¿Que es? Rails Trac
No docs
Paso a paso +1 -1
¿Cómo?¿Porqué?¿Que es? Rails Trac
Contenido ya existente
Paso a paso +1 -1
¿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)
¿Cómo?¿Porqué?¿Que es? Rails Trac
SVN: error en directorio base
Paso a paso +1 -1
¿Cómo?¿Porqué?¿Que es? Rails Trac
Copy/paste código
Paso a paso +1 -1
(subir archivos diff/ejemplos/urls)
¿Cómo?¿Porqué?¿Que es? Rails Trac
Recibir comentarios negativos e ignorarloso abandonar
Paso a paso +1 -1
(¡hay que responder/defenderse/argumentar!)
¿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)
¿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?)
Comunidad
¿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
...
¿Cómo?¿Porqué?¿Que es? Rails Trac
Seguimiento:
Paso a paso +1 -1
WorkingWithRails
...
Blogs novedades rails
RSS trac
¡Participa!
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 )
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