1. Forjas de Software y Repositorios
de Código en la nube
Araba Encounter 2014
Iñaki Arenaza & Dani Reguera
{iarenaza,dreguera}@mondragon.edu
@iarenaza & @dreguera
https://linkedin.com/in/{iarenaza,dreguera}
Creative Commons
Attribution Non-commercial Share Alike
3.0 Spain License
2. ¿Qué son?
Plataformas web que permiten el desarrollo de
software de forma colaborativa por medio de
Internet.
Aglutinan una serie de aplicaciones que permiten
alojar múltiples proyectos o desarrollos.
3. ¿A qué nos referimos?
Al servicio ofrecido por una plataforma web para
alojar proyectos de desarrollo software, también
conocidos como “repositorios en la nube”.
Al conjunto de elementos software que componen
dichas plataformas, listos para ser instalados dentro
de una organización o de cara a Internet.
4. ¿Para que se usan?
Cooperación entre desarrolladores para la creación
y difusión de software y el soporte al usuario.
Albergar código.
Colaboración en proyectos.
5. Funcionalidades
Repositorio de código
Gestor de incidencias (“bug tracker”)
Gestor de documentación / Wikis
Listas de distribución
Gestión de usuarios (Oauth, LDAP, OpenID, BBDD)
Estadísticas
Distribución de versiones publicadas (file releases)
17. Tipos de plataformas
Alojadas por nosotros:
GForge / Fusionforge
Redmine
GitLab*
Gitorius*
Launchpad*
18. Tipos de plataformas
Alojadas en la nube (modelo SaaS):
GitHub*
Googlecode
Bitbucket*
GitLab*
Launchpad*
Gitorious*
Codeplex
SourceForge
19.
20. Sourceforge
Una de las primeras forjas de software
Lanzado en Noviembre de 1999
Central de desarrollos de software que controla y
gestiona varios proyectos de software libre y actúa
como un repositorio de código fuente
Su eslogan inicial: “Find, Create, and Publish Open
Source software for free”
21.
22. FusionForge
Es un fork del proyecto Gforge. Licencia GNU GPL.
Versión estable: 5.3.2 (Septiembre 2014)
PHP+Perl, Postgresql, Linux
Provee alojamiento de proyectos, control de versiones
(Bazaar, CVS, Darcs, Mercurial, Git and Subversion), bug-tracking,
gestión de tareas, listas de correo, foros, gestion de
documentos, distribución de ficheros, etc.
Extensible mediante plugins
23.
24. Redmine
Ruby on Rails
Multiplataforma
Licencia GNU GPL v2
Roles flexibles basados en
control de acceso.
Sistema de seguimiento de
errores flexible.
Diagramas de Gantt y
calendario.
Administración de noticias,
documentos y archivos.
Fuentes web y notificaciones por
correo electrónico.
Integración con control de
versiones (Subversion, CVS, Git,
Mercurial, Bazaar y Darcs)
Soporta diferentes bases de datos
(MySQL, PostgreSQL y SQLite)
Extensible mediante Plugins
25.
26. GitHub
Alojamiento de proyectos que usan Git.
Código privativo. Utiliza el framework Ruby on Rails.
Los respositorios son públicos, aunque pueden ser privados creando cuentas
de pago.
Características:
Incidencias (Issues)
Wiki para cada proyecto.
Página web para cada proyecto
Gists*
Estadísticas y gráficos de
bifurcaciones del proyecto.
Funcionalidades de red social:
seguidores
Posibilidad de dominos
personalizados
29. Gitorious
Sitio web para alojamiento de proyectos open source,
utilizando Git como control de versiones.
Desarrollado en Ruby. Multiplataforma. Lanzado en 2008.
Licencia GNU Affero General Public License (AGPL).
Características:
Incluye wiki
Incluye “activity timeline” para los proyectos y los desarrolladores
30.
31. Bitbucket
Alojamiento de código basado en web para proyectos.
Código privativo. Escrito en Python. Lanzado en 2008.
Git y Mercurial para el control de versiones.
Numero de respositorios ilimitado.
Número de colaboradores por repositorio limitado. Hasta 5 con
cuentas gratis.
Gestión de incidencias (issues), revisión de código (code review),
API REST, integración con otros productos de Atalassian.
Posibilidad de dominos personalizados para los proyectos.
34. Launchpad
Sitio web que apoya el desarrollo de software libre.
Desarrollada y mantenida por Canonical Ltd, principalmente
para el desarrollo de Ubuntu.
Utiliza Zope (Python web server)
Lanzado en enero del 2004. Liberada en 2009, con licencia
GNU Affero General Public License, version 3.
35. Launchpad
Control de versiones usando Bazaar
Gestión de incidencias (bug tracking)
Revisión de código por pares
Gestión de construcción y alojamiento de paquetes para Ubuntu (PPA)
Gestión de traducciones de software
Listas de correo
Preguntas frecuentes (FAQ) y seguimiento de preguntas
Gestión de especificaciones y nuevas características (blueprints)
36.
37. Google Code
Lanzada y mantenida por Google en 2007.
Código privativo.
No solo para diferentes productos y APIs de Google, también
podemos alojar nuestros proyectos.
Los repositorios son siempre públicos.
Control de versiones (Git, SVN, Mercurial).
Wiki para documentación.
Listas de distribución (usando Google groups).
38.
39. CodePlex
Plataforma para alojar proyectos creada por Microsoft
Entre sus características incluye:
Páginas wiki
Control de código fuente basado
en Team Foundation Server o Git
foro de discusión
seguimiento de tareas
soporte de tags sobre el proyecto
soporte de RSS
estadísticas
gestión de la publicación de los
proyectos.
40. Criterios utilizar a la hora de eligir
http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities
42. Google Code
Crear un repositorio:
http://code.google.com/hosting/createProject
Contribuir en un proyecto:
http://code.google.com/p/support/wiki/HowToJoinAProject
Ayuda de Google Code:
https://code.google.com/p/support/wiki/GettingStarted
43. GitHub
Crear un repositorio:
https://help.github.com/articles/create-a-repo
Contribuir en un proyecto:
https://help.github.com/articles/fork-a-repo
Ayuda de Github:
https://help.github.com/