- PRESENTACIÓN DE SEMINARIO DE LA PDSL DE FECHA 27/08/2008
Plataforma para el Desarrollo de Software Libre 1 Volver al índice
Plataforma para el Desarrollo de Software Libre
Avances al 27/08/08
Ana Rangel
Erwin ParedesJuan Bastidas
Juan Vizcarrondo 2 Volver al índice
- Plataforma para el Desarrollo de Software Libre
1. Introducción
2. ¿Qué estamos haciendo?
- 2.1. Componentes trac
- 2.1.1. Multiples proyectos ✔ Diseño 2.1.2. Plantillas de la metodología ✔ Diseño ✔ Implementación
2.2.1. Caso CEIT ✔ OpenKomodo 2.2.2. Caso Cooperativa Tecnoguayana 2.2.3 Coral Vision
- Plataforma para el Desarrollo de Software Libre
1.-A modo de introducción ¿Con qué Proyectos/Redes se relaciona la iona PDSL?
4
- Plataforma para el Desarrollo de Software Libre
5
- Plataforma para el Desarrollo de Software Libre
2.-¿Qué estamos haciendo?
6
- Plataforma para el Desarrollo de Software Libre
2.1-Componentes Trac
2.1.1.-Múltiples proyectos
7
- 8
VARIAS MANERAS DE REALIZARLO
● Multiples proyectos en multiples ambientes y bases de datos.
- ● Multiples proyectos en multiples ambientes y una sola base de datos (varios esquemas o sufijos). ● Multiples proyectos en un solo ambiente y una sola base de datos
9
- 10
Para el 15/10/2008
● Gestión Básica de Multiples Proyectos
● Gestión de usuarios y permisos por proyecto.
11
- Plataforma para el Desarrollo de Software Libre
2.1-Componentes Trac
2.1.2.-Plantillas de la Metodología
12
- Archivos para la creación de un .egg para Trac. Cree los directorios del componente:
mkdir /directoriofuente/componente
mkdir /directoriofuente/componente/nombrecomponente
Escribir los archivos principal y sus derivados dentro de /directoriofuente/componente/nombrecomponente:
cd /directoriofuente/componente/nombrecomponente
vim api.py
vim crearpaginas.py
vim init.py
Genere el archivo guía para la instalación en /directoriofuente/componente
vim setup.py
13
- Setup.py
from setuptools import setup
PACKAGE = 'gestion setup(name=PACKAGE, description='Componente que ofrece la digitalizacion de la metodologia para el desarrollo de softare libre', keywords='trac plugin metodologia gestion', version='0.1', url=http://www.cenditel.gob.ve',
license='GPL',
author='Erwin Paredes',
author_email= eparedes@cenditel.gob.ve ', long_description=""" Metodologia para el desarrollo de Software Libre! """, packages=[PACKAGE], from trac.core import * from trac.env import IEnvironmentSetupParticipant from crearpaginas import CreadorPaginasWiki class GestionSetupParticipant(Component): implements(IEnvironmentSetupParticipant) version = 1 version_instalada = 0 nombre = "gestion_plugin_version" def init(self): # Inicializa la version en la base de datos. db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute('SELECT value FROM system WHERE name=%s', (self.nombre,)) try: self.version_instalada = int(cursor.fetchone()[0]) except: self.version_instalada = 0 cursor.execute('INSERT INTO system (name,value) VALUES(%s,%s)', (self.nombre, self.version_instalada)) db.commit() db.close() def necesita_modificacion(self): return self.version_instalada < self.version def modificar_db(self): db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute('UPDATE system SET value=%s WHERE name=%s', (self.version, self.nombre)) db.commit() db.close() def do_crear_pagina(self): 15 objeto = CrearPaginasWiki(self.env, self.log) Volver al índice Api.py ... # IEnvironmentSetupParticipant methods def environment_created(self): """Called when a new Trac environment is created.""" if self.environment_needs_upgrade(None): self.upgrade_environment(None) def environment_needs_upgrade(self, db): """Called when Trac checks whether the environment needs to be upgraded. Should return True if this participant needs an upgrade to be performed, False otherwise. """ return (self.necesita_modificacion()) def upgrade_environment(self, db): """Actually perform an environment upgrade. Implementations of this method should not commit any database transactions. This is done implicitly after all participants have performed the upgrades they need without an error being raised. """ print 'Componente para la gestion necesita ser modificado' print ' * Modificando BD' self.modificar_db() print 'Modificado' 16 Volver al índice Crearpaginas.py from trac.core import * class CreadorPaginasWiki: """Clase para crear los componentes""" version = 1 nombre = "creador_paginas_wiki_version" env = None log = None def init(self, env, log): self.env = env self.log = log self.upgrade() def upgrade(self): # Chequear la version en la BD db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("SELECT value FROM system WHERE name=%s", (self.nombre,)) try: version = int(cursor.fetchone()[0]) except: version = 0 cursor.execute("INSERT INTO system (name,value) VALUES(%s,%s)", (self.nombre, version)) if version > self.version: raise TracError("Error: Se ha ejecutado una version superior y genera conflictos " "en la clase CreadorPaginasWiki." 17 Volver al índice Crearpaginas.py # Se crea la pagina en el Wki try: if version < 1: cursor.execute("INSERT INTO wiki (" "name," "version," "time," "author," "ipnr," "text) " "VALUES (" "'metodologia'," "1," "1211313153," "'trac'", "'127.0.0.1'", "'== Metodologia para el Desarrollo de Software Libre == " " * GestionBR" " * AcuerdosProyectosBR" " * DescripcionAplicacionBR" " * AcuerdosEstandaresBR" " * EstudioFactibilidadBR" " * NecesidadesProblemasBR" " * PlanProyectoBR" " * PriorizacionFuncionalidadesBR" " * PriorizacionRiesgosBR" " * AdministracionBR" " * DescripcionPlataformaBR" " * DesarrolloBR" " * DefinicionRequerimientosBR" " * DiagramaActividadesBR" " * DiagramaSecuenciaBR" " * ImplementacionComponentesBR" " * PrototipoInterfazBR" " * DominioAplicacionBR" 18 " * ReportePruebasBR') ") Volver al índice Instalacion del componente para Trac Luego de Generar los archivos del componente se procede a su instalación en el directorio de paquetes de python (site-packed): cd /directoriofuentes/componente python setup.py install Luego generara el huevo para instalarlo en el ambiente de Trac: cd /direcotoriofuentes/componente python setup.py bdist_egg cp dist/Traccomponente0.1-dev-py2.5.egg /direcotorioambiente/proyecto/plugins Modificar el trac.ini vim /directorioambiente/proyecto/conf/trac.ini Añadir la linea: [componentes] componente.* = enabled 20 Volver al índice Resultado: 21 Volver al índice Plataforma para el Desarrollo de Software Libre 2.2.-Experiencia con actores externos Caso CEIT (Extensión para OpenKomodo para componentes en Plataforma para el Desarrollo de Software Libre ¿Preguntas? 23 Volver al índice
package_data={PACKAGE : ['templates/*.cs']},
entry_points = { 'trac.plugins': [ 'gestion.api = gestion.api', 'gestion.metodologia = gestion.metodologia' ] },
install_requires=[ 'TracWebAdmin' ])
Trac). Caso Cooperativa Tecnoguayana (traducción de openkomodo y la
posible incorporación del framework
Canaima). Coral Vision (Framework de Desarrollo) 22 Volver al índice