SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
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
¿Que es?


           Indirectamente

                      Proponer mejoras

                      Detectar Bugs

                      Plugins

                      Crear documentación

                      Corregir bugs

                      Código nuevo
           Directamente
¿Por qué contribuir?
¿Por qué contribuir?
     ¡Alguien
     tiene que
     hacerlo!
¿Que es?       ¿Porqué?




           ¿Serás mejor programador Rails?

           Molaras más

           Es justo

           Serás mejor programador Ruby

           Nadie va a hacerlo por ti
¿Cómo se hace?
¿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
¿Que es?     ¿Porqué?      ¿Cómo?




           Proponer mejoras
                                    [Rails-Core]
           Detectar Bugs

           Plugins
                                    Rails Trac
           Crear documentación

           Corregir bugs
                                    #rails-contrib
           Código nuevo
¿Que es?          ¿Porqué?        ¿Cómo?




 [Rails-Core]                Comunicar cambios
   Proponer cambios

                                                    #rails-contrib
                                                     Buscar apoyos para los cambios




                             Rails Trac
                              Implementar cambios
Rails Trac
Repositorio oficial del código fuente
        de Ruby On Rails
           http://dev.rubyonrails.org
¿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
¿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
¿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
Paso a paso
¿Que es?    ¿Porqué?       ¿Cómo?   Rails Trac   Paso a paso



           Herramientas necesarias

                       Subversion


                       BBDD


                       Rails
¿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
¿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
¿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
¿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
¿Que es?      ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso


           Actualizar el Trac: New Ticket
Rails Trac
Funcionamiento propio del sistema
        de tickets de Rails
¿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
¿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
¿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
¿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
+1s
Cómo conseguir valoraciones positivas
¿Que es?     ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1




           paciencia
¿Que es?   ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1




                        #rails-contrib
¿Que es?   ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1



[Rails-Core]
¿Que es?   ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1




                      Mantén viva
                      la conversación
¿Que es?   ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1




     Evitar -1s
¿Que puede ir mal?
Fallos comunes y errores que generan -1s
¿Que es?   ¿Porqué?    ¿Cómo?   Rails Trac   Paso a paso   +1   -1




                      No tests
¿Que es?   ¿Porqué?    ¿Cómo?   Rails Trac   Paso a paso   +1   -1




                      No docs
¿Que es?   ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1   -1




       Contenido ya existente
¿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)
¿Que es?   ¿Porqué?   ¿Cómo?   Rails Trac   Paso a paso   +1   -1




              SVN:
     error en directorio base
¿Que es?    ¿Porqué?           ¿Cómo?        Rails Trac      Paso a paso   +1   -1




           Copy/paste código
                       (subir archivos diff/ejemplos/urls)
¿Que es?     ¿Porqué?       ¿Cómo?       Rails Trac   Paso a paso   +1   -1




           Recibir comentarios
           negativos e ignorarlos
           o abandonar
                (¡hay que responder/defenderse/argumentar!)
¿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)
¿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?)
Comunidad
¿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
¿Que es?   ¿Porqué?    ¿Cómo?    Rails Trac   Paso a paso   +1   -1   ...




            Seguimiento:
  WorkingWithRails
                                  Blogs novedades rails




                      RSS trac
¡Participa!
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 )
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

Más contenido relacionado

Destacado

El Reto
El RetoEl Reto
El Retodav1d
 
Fuentes para la investigación en Comunicación
Fuentes para la investigación en ComunicaciónFuentes para la investigación en Comunicación
Fuentes para la investigación en Comunicaciónefernandezp
 
Exportación de amaranto producido en el estado de Tlaxcala
Exportación de amaranto producido en el estado de TlaxcalaExportación de amaranto producido en el estado de Tlaxcala
Exportación de amaranto producido en el estado de Tlaxcalacarlavazquezperez
 
mijoscultura/instalaciones
mijoscultura/instalacionesmijoscultura/instalaciones
mijoscultura/instalacionesmijo
 
M A N A G E M E N T 20 D D W
M A N A G E M E N T 20  D D WM A N A G E M E N T 20  D D W
M A N A G E M E N T 20 D D WJuan Carlos Lucas
 
Desayunos en el mundo
Desayunos en el mundoDesayunos en el mundo
Desayunos en el mundosergimv
 
Observatorio Apm 14 Abril 2009
Observatorio Apm 14 Abril 2009Observatorio Apm 14 Abril 2009
Observatorio Apm 14 Abril 2009Juan Varela
 
Virus informático o virus computacional
Virus informático o virus computacionalVirus informático o virus computacional
Virus informático o virus computacionalluisalcidesmalpica
 
La comunicación empresarial
La comunicación empresarialLa comunicación empresarial
La comunicación empresarialsoni-m
 

Destacado (20)

No Importa Tu Religion
No Importa Tu ReligionNo Importa Tu Religion
No Importa Tu Religion
 
El Reto
El RetoEl Reto
El Reto
 
Fuentes para la investigación en Comunicación
Fuentes para la investigación en ComunicaciónFuentes para la investigación en Comunicación
Fuentes para la investigación en Comunicación
 
Exportación de amaranto producido en el estado de Tlaxcala
Exportación de amaranto producido en el estado de TlaxcalaExportación de amaranto producido en el estado de Tlaxcala
Exportación de amaranto producido en el estado de Tlaxcala
 
Diapositiva 02 daniel
Diapositiva  02 danielDiapositiva  02 daniel
Diapositiva 02 daniel
 
Reporte
ReporteReporte
Reporte
 
Universidad de Murcia
Universidad de MurciaUniversidad de Murcia
Universidad de Murcia
 
mijoscultura/instalaciones
mijoscultura/instalacionesmijoscultura/instalaciones
mijoscultura/instalaciones
 
Confesiones
ConfesionesConfesiones
Confesiones
 
M A N A G E M E N T 20 D D W
M A N A G E M E N T 20  D D WM A N A G E M E N T 20  D D W
M A N A G E M E N T 20 D D W
 
Servicio
ServicioServicio
Servicio
 
Desayunos en el mundo
Desayunos en el mundoDesayunos en el mundo
Desayunos en el mundo
 
Desfile Carlomagno
Desfile  CarlomagnoDesfile  Carlomagno
Desfile Carlomagno
 
Observatorio Apm 14 Abril 2009
Observatorio Apm 14 Abril 2009Observatorio Apm 14 Abril 2009
Observatorio Apm 14 Abril 2009
 
La flor_2
La flor_2La flor_2
La flor_2
 
Negocio local
Negocio localNegocio local
Negocio local
 
Virus informático o virus computacional
Virus informático o virus computacionalVirus informático o virus computacional
Virus informático o virus computacional
 
Educación En Linea
Educación En LineaEducación En Linea
Educación En Linea
 
La comunicación empresarial
La comunicación empresarialLa comunicación empresarial
La comunicación empresarial
 
Azucenabarzola
AzucenabarzolaAzucenabarzola
Azucenabarzola
 

Similar a Contribuir a Rails

Joserojas Web 2.0
Joserojas Web 2.0Joserojas Web 2.0
Joserojas Web 2.0Jose Rojas
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Nelson Rojas Núñez
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007JuancaPompilla
 
Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopiesGroopify
 
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas
 
[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.Esteban Pintos
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railsJoski Jk
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on RailsJoski Jk
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsDavid Calavera
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
Ruby On Rails Jun2009
Ruby On Rails Jun2009Ruby On Rails Jun2009
Ruby On Rails Jun2009Sergio Alonso
 
Introduccion al Akelos Php Framework
Introduccion al Akelos Php FrameworkIntroduccion al Akelos Php Framework
Introduccion al Akelos Php FrameworkBermi Ferrer
 
Presentación rails 3 Santo Tomás Concepción
Presentación rails 3 Santo Tomás ConcepciónPresentación rails 3 Santo Tomás Concepción
Presentación rails 3 Santo Tomás ConcepciónNelson Rojas Núñez
 
Probando las vistas
Probando las vistasProbando las vistas
Probando las vistasRubyc Slides
 

Similar a Contribuir a Rails (20)

Joserojas Web 2.0
Joserojas Web 2.0Joserojas Web 2.0
Joserojas Web 2.0
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Descifrando Ruby on Rails
Descifrando Ruby on RailsDescifrando Ruby on Rails
Descifrando Ruby on Rails
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007
 
Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopies
 
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoRJose Rojas Desarrollo Rapido de Aplicaciones con RoR
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
 
[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.[Meetup] Code Quality tools used at Wolox for Web developing.
[Meetup] Code Quality tools used at Wolox for Web developing.
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y Rails
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Ruby On Rails Jun2009
Ruby On Rails Jun2009Ruby On Rails Jun2009
Ruby On Rails Jun2009
 
Introduccion al Akelos Php Framework
Introduccion al Akelos Php FrameworkIntroduccion al Akelos Php Framework
Introduccion al Akelos Php Framework
 
Presentación rails 3 Santo Tomás Concepción
Presentación rails 3 Santo Tomás ConcepciónPresentación rails 3 Santo Tomás Concepción
Presentación rails 3 Santo Tomás Concepción
 
Probando las vistas
Probando las vistasProbando las vistas
Probando las vistas
 

Más de Juanjo Bazán

Más de Juanjo Bazán (6)

How to manage an open source project
How to manage an open source projectHow to manage an open source project
How to manage an open source project
 
Space software
Space softwareSpace software
Space software
 
Ruby & Ciencia
Ruby & CienciaRuby & Ciencia
Ruby & Ciencia
 
Ruby and Science
Ruby and ScienceRuby and Science
Ruby and Science
 
Nimbus
NimbusNimbus
Nimbus
 
Rails para programadores Java
Rails para programadores JavaRails para programadores Java
Rails para programadores Java
 

Último

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 

Último (20)

Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 

Contribuir a Rails

  • 1. Contribuir a Rails Juanjo Bazán
  • 3. ¿Qué es? Realizar acciones que supongan u originen cambios en el código fuente de Ruby on Rails
  • 4. ¿Que es? Indirectamente Proponer mejoras Detectar Bugs Plugins Crear documentación Corregir bugs Código nuevo Directamente
  • 6. ¿Por qué contribuir? ¡Alguien tiene que hacerlo!
  • 7. ¿Que es? ¿Porqué? ¿Serás mejor programador Rails? Molaras más Es justo Serás mejor programador Ruby Nadie va a hacerlo por ti
  • 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
  • 10. ¿Que es? ¿Porqué? ¿Cómo? Proponer mejoras [Rails-Core] Detectar Bugs Plugins Rails Trac Crear documentación Corregir bugs #rails-contrib Código nuevo
  • 11. ¿Que es? ¿Porqué? ¿Cómo? [Rails-Core] Comunicar cambios Proponer cambios #rails-contrib Buscar apoyos para los cambios Rails Trac Implementar cambios
  • 12. Rails Trac Repositorio oficial del código fuente de Ruby On Rails http://dev.rubyonrails.org
  • 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
  • 17. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso Herramientas necesarias Subversion BBDD Rails
  • 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
  • 23. Rails Trac Funcionamiento propio del sistema de tickets de Rails
  • 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
  • 29. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 paciencia
  • 30. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 #rails-contrib
  • 31. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 [Rails-Core]
  • 32. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 Mantén viva la conversación
  • 33. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 Evitar -1s
  • 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
  • 40. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1 Copy/paste código (subir archivos diff/ejemplos/urls)
  • 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
  • 46. ¿Que es? ¿Porqué? ¿Cómo? Rails Trac Paso a paso +1 -1 ... Seguimiento: WorkingWithRails Blogs novedades rails RSS trac
  • 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