Comprendiendo el proyecto Apache OpenOffice

Como comentó Rob Weir en un reciente reportaje, el cómo OpenOffice.org se convirtió en el proyecto Apache OpenOffice es simple: Oracle firmó un acuerdo pasando el código a la licencia Apache, el «incubador de proyectos» de Apache votó para aceptar el nuevo proyecto y se comenzó a trabajar para poner todo a punto. El porqué se dio todo esto, claro está, es un poco más difícil de explicar… si bien estoy convencido que intentar hacerlo es una pérdida de tiempo: lo importante ahora es que el proyecto existe, que está siendo activamente desarrollado y que tiene un futuro brillante por delante.

Por lo tanto este artículo (y todos los demás que sigan en este blog) ignorará lo que diversos autores han dicho en estos últimos meses sobre la necesidad/importancia/vitalidad/etcétera del proyecto AOO, dejando también de lado las (muchas veces absurdas) teorías conspiratorias que han surgido en los diferentes momentos.

Como único comentario para aquellos que al momento de ser liberado AOO 3.4 dijeron «y a quién le importa», baste decir solamente que el proyecto ha pasado ya con comodidad los dos millones de descargas (ya volveré sobre esto en un futuro artículo): como verán, Apache OpenOffice, continuidad natural del proyecto OpenOffice.org es importante para mucha gente…

El «Apache Way»

La Apache Software Foundation tiene una larga y exitosa tradición en la administración de proyectos de software libre. El proyecto emblemático de la fundación es ciertamente el servidor HTTP Apache, proyecto con el cual la fundación misma tuvo inicio y gracias al cual la mayor parte de Internet logra funcionar… pero no es el único: más de un centenar de proyectos de alto nivel son desarrollados por la fundación Apache, muchos de ellos de altísimo impacto.

Ahora bien, ¿qué diferencia un proyecto Apache de otros proyectos de software libre?

La primer diferencia es la licencia: la Licencia Apache es «permisiva» como las licencias BSD o MIT. Básicamente, estas licencias permiten a quien toma el código hacer lo que quiera, incluso crear variantes cerradas. Por otro lado, las licencias *GPL usadas en el kernel Linux y otros proyectos abiertos exigen que cualquier variación del código respete la licencia original, haciendo imposible el uso legal del código en proyectos cerrados.

Existen quizás demasiadas discusiones alrededor del tema de las licencias, discusiones que muchas veces muestran más emociones que razones y es claro que nunca se llegará a un acuerdo unánime al respecto por lo que no entraré en este «pantano ideológico»: simplemente quiero decir aquí que creo que ambos tipos de licencia son válidos y que cada uno tiene su aplicación, y que toda persona tiene derecho a elegir cualquier tipo de licencia y que ese derecho debe ser respetado.

La segunda diferencia es el modo de trabajar: el así llamado «Apache Way» implica una modalidad de trabajo completamente horizontal, donde no existen roles predefinidos y donde «líder» solo puede ser quien hace, y lo será solo mientras siga haciendo. El quizás excesivamente usado término «meritocrácia» suele invadir toda descripción del «Apache Way», pero la verdad es que así funcionan las cosas.

Los voluntarios que quieran aportar al proyecto se deben inscribir en la lista de correo pública y comenzar a «hacer»: aportar parches, ideas, sugerencias, reportes de error, dar asistencia a otros usuarios… Si la actividad es alta y persistente un miembro del comité directivo puede sugerir, esta vez en la lista privada del proyecto, que el voluntario sea considerado como «commiter» o incluso como miembro del comité directivo mismo: una votación sigue y si no surgen opiniones contrarias, el voluntario es invitado a unirse «oficialmente». Si la invitación es aceptada, previo envío de un acuerdo firmado donde acepta que todos sus aportes al proyecto están bajo la licencia Apache se le otorga al voluntario la «llave de entrada» que le da acceso al sistema svn, a editar el sitio web, a tener un espacio web disponible en los servidores Apache…

«Incubando» un proyecto en Apache

Quien siguió el enlace de más arriba habrá visto que al día de hoy (29 de mayo, 2012) Apache OpenOffice no figura aún entre los «proyectos top» de Apache… (desde el el 18 de octubre de 2012 Apache OpenOffice es un «proyecto top») La razón es clara: cuando un proyecto entra en la fundación Apache debe pasar por un período de prueba en el cual los voluntarios deben acostumbrarse al «Apache Way», período que también debe ser utilizado para asegurarse que todo el código del proyecto esté bajo la licencia Apache y que la organización funcione en modo acorde a los lineamentos de la Fundación. La fundación Apache es muy estricta en el «cómo deben hacerse las cosas»…

Durante este período de prueba el proyecto se encuentra en «incubación» y es seguido de cerca por un grupo de «mentores», miembros respetados de la fundación que se encargan de guiar al comité directivo en su camino de cumplir con los estrictos estándares de Apache.

El futuro

Cuando todo está en orden, el comité directivo del proyecto en incubación puede iniciar una votación para determinar si presentar o no la candidatura para «graduación»: graduarse del incubador de Apache implica convertirse en un proyecto «top level» (y entrar por lo tanto en la lista de más arriba…), lo cual equivale a la confianza plena de la fundación en la comisión que dirige el proyecto y la total adherencia del mismo al «Apache Way». Una vez que la comisión directiva del proyecto en incubación envía su pedido de graduación, la Fundación decide si aceptarlo o postergarlo, explicando qué debe cambiarse si se decide por la segunda alternativa.

En lo que respecta a AOO, este futuro está muy cerca… pero ya volveré sobre esto cuando sea momento.

Liberando nuevas versiones

El proceso de liberar nuevas versiones es muy diferente de lo que era durante la gestión de Sun/Oracle. Si bien aún se están definiendo los detalles (solo hemos tenido una liberación…), puede decirse que todo es ciertamente más abierto que antes.

El desarrollo sigue y se van agregando características / correcciones de errores, liberando periódicamente (una vez a la semana) versiones de prueba hasta que los desarrolladores están seguros de tener algo «concreto»: en este punto se inicia la discusión de si se debe crear un «release candidate» (RC) y con cuáles características. Ciertamente esta discusión no inicia al azar: es la consecuencia lógica de discusiones anteriores sobre qué se espera para la próxima versión.

Como es fácil adivinar, la lista de correo del proyecto es más que activa (~100 mensajes al día).

En ese punto todo «se congela» y solo son aceptadas las correcciones de errores. Luego de varias iteraciones de estas pruebas se propone un voto para decir si esa versión de desarrollo propuesta como RC puede ser considerada como «final».

Dado que la liberación de la versión implica un voto no se tienen RC «oficiales» como se tenía antes (OOo 3.3 tuvo diez RC…), lo cual ha causado un poco de confusión entre algunos voluntarios… pero como comenté antes, el proyecto se está organizando: ya solucionaremos también esto.

AOO y los foros de la comunidad

A pesar de cierta «fricción» durante la transición del proyecto, la realidad es que los foros se han incorporado perfectamente a la estructura de Apache ya que la forma de trabajar que usamos en los mismos no es muy diferente del «Apache Way»: si alguien participa en forma periódica, respondiendo más de lo que pregunta una votación se da en un subforo oculto para nombrar este usuario como Voluntario. Si el usuario acepta se le da acceso a las áreas restringidas del foro. Más adelante, entre los voluntarios se puede elegir un Moderador que ayude a mantener el orden en el foro, expulsando spammers y moviendo/editando mensajes de ser necesario. Cualquier otra consideración sobre la estructura y administración de los foros (siempre que no implique información privada) se realiza públicamente.

Conclusión

He intentado dar una imagen general de cómo funciona el proyecto AOO: espero no haber generado en el lector más confusión que antes.

Por mi parte, debo decir que es un proyecto donde es grato estar, con gente realmente capaz y que sabe lo que quiere y cómo conseguirlo.

En un par de meses tendremos AOO 3.4.1, que si bien ofrecerá pocas «novedades» (es una versión donde solo se permiten correcciones de errores) solucionará muchos problemas presentes en 3.4.0, tendrá una traducción al español enormemente mejorada y… bueno, ya veremos qué más.

Después de todo, tengo que dejar algo para escribir más adelante…

Anuncios

  1. #1 por DiabloRojo el 30 mayo, 2012 - 16:54

    Excelente explicacion, Ricardo.

    Me animado a instalarlo y a probarlo.

    Saludos.

    • #2 por elpinguinotolkiano el 31 mayo, 2012 - 0:35

      ¡Gracias, Diablo! Cuanta más gente pruebe y reporte los problemas que encuentra, más rápida será la evolución del programa. El futuro lo escribe la comunidad 😉

      Saludos

  1. Semanas intensas… « El pingüino tolkiano
A %d blogueros les gusta esto: