Este lunes ha comenzado un nuevo sprint en Zope3, en Colonial Inn, Massachusetts.
El nombre hace alusión a la temporada otoñal que decora Massachusetts
El objetivo de este sprint es trabajar en aspectos fuertemente relacionados con el core de Zope3, en lugar de dispersar el esfuerzo en extensiones de la comunidad, como puede suceder en otros sprints.
Zope3 Foliage Sprint map – Tagzania
¿Qué van a hacer los sprinters?
Entre los programadores asistentes, se encuentra Stephan Richter, quien hace las veces de mentor en algunas de las actividades que se están realizando.

Las tareas que los sprinters han propuesto son las siguientes:
- Simplificación de la interdependencia entre paquetes
Desde que se empezó la refactorización de los módulos en forma de huevos, se detectaron excesivas interdependencias que deberían ser eliminadas, para una distribución más ligera y flexible de Zope3.
En primer lugar se propone crear una herramienta que construya un grafo con las interdependencias entre los paquetes.
Después habría que evaluar y redactar una pequeña propuesta de reducción o eliminación de cada dependencia.
Se podría empezar, dividiendo los zcmls de configuración de los paquetes, para que se pueda referenciar al API de un módulo sin tener que incluir el submódulo “browser”, por ejemplo.
- Crear un listado de paquetes
La tarea consiste en documentar a fondo los paquetes de zope3 del Índice de Paquetes de Python, para facilitar el acceso a la documentación a quien se inicie en Zope3.
- Introspección en la seguridad
A pesar de la potente maquinaria de seguridad que implementa Zope3, se han recibido algunas críticas acerca de la oscuridad sobre qué elementos son públicos y cuales no.
Se propone crear una herramienta que audite un sitio sobre los objetos que están disponibles y los permisos necesarios.
- Implementación de un “navegador de prueba” de verdad
El “test browser” de zope3 no permite probar el código escrito en javascript. Existe una aplicación en desarrollo, comenzada por Benji, que permite controlar un navegador Firefox real.
Existe una extensión de Firefox que permite manejar el navegador a través de una sesión remota, utilizando comandos javascript.
La tarea consistiría en finalizar esta aplicación para dotar a Zope3 de un API de test completa.
- Desarrollo de documentación estática del API de Zope3
Hacer una copia a ficheros del api generada dinámicamente por un servidor Zope.
- Acelerar el arranque de Zope 3
A pesar de que el retoque de las plantilla no requiere reiniciar el servidor, el resto de modificaciones sí.
Con esta tarea, los sprinters se proponen reducir drásticamente el tiempo de reinicio, optimizando la forma en que se parsea el ZCML.
- Varias tareas sobre z3c Forms
A pesar de que formlib es el paquete oficial de Zope3 para formulario, z3c.form está evolucionando muy rápido, siendo ya una eficaz alternativa.
Los puntos en los que se quiere reforzar a este paquete son la internacionalización, la composición de widgets, los widgets basados en sesiones, widgets de objeto y widgets diccionario o secuencia de valores simples.
El actual interfaz de administración de Zope3 no satisface todas las espectativas de los desarrolladores de Zope3.
El trabajo quiere centrarse en dos casos de uso: 1) configuración y administracion de una aplicación. 2) un zmi pluggable que se adapte fácilmente para poder conseguir una versión personalizada de ZMI.
- Protocolo de publicación Atom
Otras plataformas ya lo implementan y conseguir exportar datos en formato Atom facilitaría, por ejemplo, la producción de APIs RESTful.
- Ejemplo de una aplicación con las mínimas dependencias
Sería muy interesante tener un ejemplo de aplicación ultrasimple, con la opción de hacer login/logout.
Un motor de consultas y un lenguaje de consultas para Zope3
La tarea propone crear un lenguaje declarativo de extracción de datos. El lenguaje debería estar orientado a objetos, y permitir especificar parámetros como los permisos, manipular datos, etc.
El lenguaje debe estar asentado sobre una estable base matemática.
El motor de consultas debe ser modular y estar basado en componentes. Debería alcanzar velociades similares a un motor SQL.
¡Ánimo!
Desde aquí les envio mis ánimos para que afronten con entusiasmo todos estos objetivos y, por supuesto, pasen unos estupendos dias en Massachusetts.
Por cierto, podeis seguir los avances del sprint en el blog de Marius Gedminas…