introduccion al desarrollo con launchpad

31
Introducción al desarrollo con Denis Fuenzalida <[email protected] / @dfuenzal> 01 de Octubre 2011

Upload: denis-fuenzalida

Post on 06-Jul-2015

782 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Introduccion al desarrollo con Launchpad

Introducción al desarrollo con

Denis Fuenzalida <[email protected] / @dfuenzal>

01 de Octubre 2011

Page 2: Introduccion al desarrollo con Launchpad

Acerca de mí

● Casi 10 años desarrollando aplicaciones [web]

● Primero programando en Perl, luego Java, Python … ultimamente Groovy y Ruby

● Usuario de Ubuntu desde 2005, colaborador esporádico (traducciones, foros, blog)

● Varios pequeños proyectos liberados en la web

● Actualmente, colaboro como editor en www.ManzanaMecanica.org

Page 3: Introduccion al desarrollo con Launchpad

Acerca de la audiencia

¿Conoces acerca del software libre?

¿Usuario de software libre?

¿Alguna experiencia en programación?

¿Usuario de Linux? ¿Debian? ¿Ubuntu?

Page 4: Introduccion al desarrollo con Launchpad

¿Qué es Launchpad?

● Plataforma web para colaborar y alojar proyectos de Software Libre*

● Desarrollada para Ubuntu, pero funciona con todo tipo de proyectos

● www.launchpad.net

* También hay suscripciones para proyectos de software cerrado desde 250 dólares/año

Page 5: Introduccion al desarrollo con Launchpad

Launchpad para colaboradores

● Por mi interés en mejorar un proyecto● Averiguar cómo se realiza una tarea● Reportar un bug para que sea corregido● Solicitar que se agregue una funcionalidad a un

programa● Para que un proyecto esté disponible en mi idioma

o en uno que yo conozco● Ninguna de estas actividades requiere

conocimientos de programación

Page 6: Introduccion al desarrollo con Launchpad

Launchpad para desarrolladores

● Por mi interés en crear o ayudar a completar un proyecto● Desarrollar un programa nuevo● Ayudar a programar a los desarrolladores de un

proyecto ya existente● Enviar una mejora a un proyecto que corrige un

bug● Para que un programa nuevo esté disponible para

instalarse en Ubuntu con facilidad (desde el Centro de Software de Ubuntu)

Page 7: Introduccion al desarrollo con Launchpad

Servicios disponibles en LP● Bugs

● Reporte y seguimiento de errores

● Answers● Servicio de asistencia en línea● Base de Conocimiento

● Blueprints● Propuestas y especificación de nuevas funciones

● Translations● Traducciones del software a docenas de idiomas

● Code● Alojamiento de código● Repositorios PPA

Page 8: Introduccion al desarrollo con Launchpad

Reporte y seguimiento de errores● Los errores se pueden reportar desde la misma aplicación

en la mayoría de los casos

Page 9: Introduccion al desarrollo con Launchpad

Reporte y seguimiento de errores

Page 10: Introduccion al desarrollo con Launchpad

Reporte y seguimiento de errores

Page 11: Introduccion al desarrollo con Launchpad

Reporte y seguimiento de errores

● Suscribirse por mail a los cambios en un bug● Marcar bugs como duplicados de otros● Adjuntar archivos (videos, capturas de pantalla, logs)

● Adjuntar un parche que soluciona el problema

● Definir atributos● Urgencia (desde “muy importante” “bajo” y “no decidido”)→● Error o nueva funcionalidad (wishlist)● Error ya está confirmado (triage)

● Se puede integrar con otros sistemas de otros equipos de desarrollo: Bugzilla, Trac, Sourceforge, Google Code ...

Page 12: Introduccion al desarrollo con Launchpad

Launchpad Answers

Page 13: Introduccion al desarrollo con Launchpad

Launchpad Answers

Page 14: Introduccion al desarrollo con Launchpad

Launchpad Blueprints

● Permite especificar ideas y tareas que se quieren implementar en un proyecto

● Se pueden usar para definir la orientación del proyecto, para ver en que etapa o hito se quiere completar una idea o funcionalidad

Page 15: Introduccion al desarrollo con Launchpad

Traducciones en Launchpad

● Una de las funciones más potentes● No requiere conocimientos de

programación (sólo inglés)● Interfaz web● Reutiliza traducciones desde otros

proyectos● Se puede configurar de forma

completamente abierta o más restringida (equipos de traducción)

● Las traducciones se pueden descargar o integrar a una rama (branch) de código de forma automática

Page 16: Introduccion al desarrollo con Launchpad

Traducciones en Launchpad

Page 17: Introduccion al desarrollo con Launchpad

Traducciones en Launchpad

Page 18: Introduccion al desarrollo con Launchpad

Traducciones en Launchpad

● Se puede reutilizar traducciones similares de otros proyectos

Page 19: Introduccion al desarrollo con Launchpad

Alojamiento de código en LP

● Utiliza Bazaar (bazaar.canonical.com), pero se puede importar código de otras fuentes (Google Code, Sourceforge, SVN...)

● Desarollo distribuido (similar a Git, Mercurial, etc.)

● Se puede tener código personal/experimental y ramas de desarrollo oficiales de un proyecto

● Se puede operar con línea de comandos o con herramientas de escritorio (a-la TortoiseSVN...)

Page 20: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● En Ubuntu (y en casi todas las distribuciones de Linux), los programas se instalan en forma de paquetes de software

● Paquete de software = Archivos + Metadatos

● Los metadatos indican:

● Sección del catálogo al que pertenece este programa o paquete (utilidades, oficina, web, juegos...)

● Dependencia en otros paquetes (y versiones)● Pasos a seguir en la instalación (y desinstalación)● Otros: Autor(es), licencia, página web, etc.

Page 21: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Los programas provienen de los repositorios en CD,DVD o de repositorios en línea

● Se pueden agregar repositorios llamados PPA (Personal Package Archive) que están alojados en Launchpad● Centro de software Editar Orígenes del Software→ →● $ sudo add-apt-repository ppa:usuario/repositorio

Page 22: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Launchpad permite construir y distribuir programas que no forman parte de la distribución oficial de Ubuntu

● Sin problemas de hosting, ni de ancho de banda● Permite generar paquetes de software firmados digitalmente

y para diferentes procesadores (32 y 64 bits)● Puedo crear versiones optimizadas de programas ya

existentes, o empaquetar versiones más nuevas que las que están disponibles ahora o de programas ya no soportados

Page 23: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Se obtiene el código del proyecto y se prepara para que sea instalable

● Se agregan metadatos para que se pueda convertir en un paquete de software (debianización)

● Se sube a Launchpad para su construcción automática y despliegue en nuestro repositorio PPA

Page 24: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Se obtiene el código del proyecto y se prepara para que sea instalable

$ git clone https://github.com/dfuenzalida/gedit-git-branch-statusbar $ mv gedit-git-branch-statusbar gedit-git-branch-statusbar-1.0$ cd gedit-git-branch-statusbar-1.0

# Generar archivos para paquete .deb$ dh_make -c gpl -e [email protected] -s --createorig

Page 25: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Se agregan metadatos para que se pueda convertir en un paquete de software (debianización)

Page 26: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Se sube a LP para su construcción automática y despliegue en nuestro repositorio PPA

# Creo un paquete de código fuente con mi firma digital$ debuild -S -sa -kADF0F1AD. . .Successfully signed dsc and changes files

$ cd ..$ dput ppa:denis-fuenzalida/ppa gedit*.changes. . .

Uploading to ppa (via ftp to ppa.launchpad.net): Uploading gedit-git-branch-statusbar_1.0-1.dsc: done. Uploading gedit-git-branch-statusbar_1.0.orig.tar.gz: done. Uploading gedit-git-branch-statusbar_1.0-1.debian.tar.gz: done. Uploading gedit-git-branch-statusbar_1.0-1_source.changes: done.Successfully uploaded packages.

Page 27: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Se sube a LP para su construcción automática y despliegue en nuestro repositorio PPA

Page 28: Introduccion al desarrollo con Launchpad

Alojamiento y construcción de proyectos

● Para que otros usuarios instalen los programas de nuestro PPA:

● Centro de Software de Ubuntu Orígenes →del software Otro software→

Page 29: Introduccion al desarrollo con Launchpad

Quickly

● Nueva herramienta para el desarrollo rápido de aplicaciones de escritorio

● Python, GTK, Gedit, Glade, Bazaar y Launchpad en un paquete más integrado

● Ver más en developer.ubuntu.com/get-started/

Page 30: Introduccion al desarrollo con Launchpad

Sitio de desarrolladores de Ubuntu

● Recién estrenado: developer.ubuntu.com● Tutoriales sobre las tecnologías disponibles

para desarrollo de aplicaciones● Cómo crear un reproductor multimedia con Python

y GTK

Page 31: Introduccion al desarrollo con Launchpad

Fin

Muchas gracias!