• 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
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
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
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)
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
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 ...
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
• 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
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...)
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.
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
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
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
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
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.