Este documento introduce Launchpad, una plataforma para colaborar en proyectos de software libre alojados en Ubuntu. Launchpad ofrece servicios como el reporte y seguimiento de errores, asistencia en línea, propuestas de nuevas funciones, traducciones a múltiples idiomas, alojamiento de código y construcción automática de paquetes de software. El documento también describe herramientas como Quickly que facilitan el desarrollo rápido de aplicaciones de escritorio para Ubuntu.
1. Introducción al desarrollo con
Denis Fuenzalida
<denis.fuenzalida@gmail.com / @dfuenzal>
01 de Octubre 2011
2. 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
3. Acerca de la audiencia
¿Conoces acerca del software libre?
¿Usuario de software libre?
¿Alguna experiencia en programación?
¿Usuario de Linux? ¿Debian? ¿Ubuntu?
4. ¿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
5. 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
6. 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)
7. 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
8. Reporte y seguimiento de errores
●
Los errores se pueden reportar desde la misma aplicación
en la mayoría de los casos
11. 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 ...
14. 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
15. 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
19. 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...)
20. 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.
21. 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
22. 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
23. 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
24. 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 denis.fuenzalida@gmail.com -s --createorig
25. Alojamiento y construcción de proyectos
●
Se agregan metadatos para que se pueda convertir
en un paquete de software (debianización)
26. 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.
27. Alojamiento y construcción de proyectos
●
Se sube a LP para su construcción automática
y despliegue en nuestro repositorio PPA
28. 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
29. 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/
30. 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