Archive

Posts Tagged ‘plugin’

cmislib, cliente CMIS en python

May 23rd, 2010

A finales de agosto del año pasado comencé un nuevo proyecto, un plugin para Trac que permitiese su integración con Alfresco. Desde entonces mucho ha llovido, especialmente este año. Cuando comencé no encontré ninguna librería que facilitase el trabajo con el Restful API que proporciona Alfresco y comencé un pequeño cliente para este proyecto. Más adelante pensé que si el cliente maduraba, quizás me convendría liberarlo de forma independiente al plugin para que otros pudieran evolucionarlo y mejorarlo. Yo sólo quería implementar los métodos más básicos.

Los momentos de standby son realmente malos para cualquier proyecto, pero lo son especialmente para proyectos en los que sólo hay una persona y su planificación no se extiende más allá de tres meses para la primera versión. Con el nacimiento de klicap, decidimos impulsar este plugin y en ello estamos. Antes de retomarlo, analicé el trabajo realizado y me cuestioné algunas decisiones previas. Durante esos días, descubrí cmislib. Según he pedido comprobar, su primer commit tiene fecha de mediados de diciembre de 2009. Su autor es Jeff Potts, presidente y CEO en Metaversant Group, Inc., donde parece que es el único empleado. Esta librería, escrita en python, forma parte del proyecto (en incubación) Apache Chemistry. Éste último tiene como objetivo proporcionar librerías cliente para trabajar con soluciones que implementen la especificación CMIS. La librería no está completa, aun quedan funcionalidades por implementar, pero desde luego su última versión 0.3 publicada es estable y cubre gran parte de la especificación. Teniendo en cuenta que la versión 1.0 de la especificación de CMIS tiene fecha 1 de mayo de 2010, sólo me queda agradecer el excelente trabajo de Jeff.

Esto se traduce en que he dejado de implementar mi propio cliente, y he comenzado a usar esta librería. Esto hace incluso que me planté el nombre del plugin, porque ahora podemos integrar Trac con Alfresco, Nuxeo y otros ECM que implementen CMIS. Desde @klicap haremos lo posible por colaborar en este proyecto.

Desarrollando plugins de Trac

August 19th, 2009

El otro día comencé a configurar el entorno de desarrollo local. Se me olvidó comentar que para desarrollar plugins de Trac la mejor opción es ejecutarlo en modo standalone. El porqué viene justificado por uno de los pros de este modo:

Automatic reloading: For development, Tracd can be used in auto_reload mode, which will automatically restart the server whenever you make a change to the code (in Trac itself or in a plugin).

Toda la configuración está perfectamente explicada en el sitio web de Trac. En mi caso me he creado un pequeño script (start_trac.sh):

tracd -p 8000 --basic-auth=AlfrescoTracIntegration,/home/recena/Documentos/trac-users.conf,/home/recena/Documentos/trac-projects/AlfrescoTracIntegration /home/recena/Documentos/trac-projects/AlfrescoTracIntegration

Si por el contrario lo que queremos es ejecutarlo desde Eclipse, también podemos encontrar las correspondientes instrucciones. La intención era haber publicado esta pequeña entrada el pasado jueves, 13 de agosto. Pero he estado sin acceso a Internet desde entonces. Algunas notas que a mi me están viniendo muy bien para comenzar a desarrollar un plugin de Trac sin tener experiencia en Python:

  1. Configurar un buen entorno de desarrollo local que nos permita trabajar cómodamente y como no, depurar.
  2. Conocer las características del lenguaje de programación. Me he leído “Python para todos“, y sólo agradecer a Raúl González Duque el excelente trabajo realizado.
  3. Guías:
    1. Style Guide for Python Code
    2. Docstring Conventions
  4. Estudiar otros plugins
  5. Instalar TracDeveloper, un plugin de Trac muy útil para desarrollar.
Author: Manuel Jesús Recena Soto Categories: Programación Tags: ,

buildnumber-maven-plugin

June 7th, 2009

Configuré este plugin hace algunas semana en un proyecto y me encontré con un pequeño inconveniente que me hizo perder unas horas. Hoy me disponía a configurarlo en Opina y me he encontrado con otro inconveniente. Para que no se me olvide, y por si a alguien le sirve, dejo por aquí la configuración que estoy usando:

<plugin>
    <groupid>org.codehaus.mojo</groupid>
    <artifactid>buildnumber-maven-plugin</artifactid>
    <version>1.0-beta-3</version>
    <executions>
	<execution>
	    <phase>process-sources</phase>
	    <goals>
		<goal>create</goal>
	    </goals>
	</execution>
    </executions>
    <configuration>
	<docheck>true</docheck>
	<doupdate>false</doupdate>
    </configuration>
</plugin>

Para es funcione debemos tener correctamente configurado el repositorio SCM:

<scm>
    <connection>scm:svn:http://svn.ebabel.info/repos/opina/branches/1.x</connection>
    <developerconnection>scm:svn:http://svn.ebabel.info/repos/opina/branches/1.x</developerconnection>
    <url>http://trac.ebabel.info/projects/opina/browser</url>
</scm>

Que no se os olvide la entrada developerConnection, sino, no funcionará.

Switch to our mobile site