¿Qué significa migración?

Este documento trata sobre la migración de aplicaciones a GNOME 2; ya lo sabes. Sin embargo, eso puede significar muchas cosas diferentes según la persona, por lo que en esta sección he intentado dar una idea de qué puede acarrear una migración en general y cuáles son los diferentes niveles.

No es descabellado pensar en la migración como una serie de pasos a seguir de entre los de la siguiente lista (no necesariamente en orden):

  1. Realizar las conversiones mínimas necesarias para conseguir compilar y ejecutar la aplicación con las bibliotecas GNOME 2 (y cualquier otra biblioteca auxiliar).

  2. Compilar sin necesidad de definir GTK_ENABLE_BROKEN .

  3. Compilar con las constantes GTK_DISABLE_DEPRECATED y GNOME_DISABLE_DEPRECATED definidas

  4. Modernizar la documentación. Esto no significa sólo el convertir la documentación a los estándares de GNOME 2. Hay más trabajo relacionado si quieres hacerlo realmente bien.

    • Si no tienes documentación para el usuario y estás escribiendo una aplicación que no es símplemente una biblioteca de funciones, entonces necesitas escribirla (o encontrar un voluntario que quiera hacerlo)

    • Si tu aplicación va a ser usada por otras aplicaciones (esto es, es una biblioteca o componente), entonces necesitas tener documentación sobre el API. Esto puede ser tan simple como poner los comentarios necesarios en el código y ejecutar gtk-doc como parte del proceso de compilación. Puedes ir mucho más allá, pero al menos algo de ayuda a los desarrolladores que quieran usar tu producto.

    • Limpia y ordena cualquier documentación que tengas por ahí. Existe un gran número de ficheros "flotando" por el repositorio CVS de GNOME que fueron en su momento básicamente "volcados" del contenido del cerebro de los desarrolladores hace dos años y ahora no están relacionados con nada. O tal vez tengas un documento que describe cómo pasar de una versión 2 a una versión 3 de tu aplicación, pero fue hace 8 meses que se editó por última vez y seguramente ahora es´te obsoleto.

      Si no quieres borrar alguno de estos documentos históricos (lo cual es perfectamente entendible), al menos deberías moverlos a un nuevo directorio que se llame, por ejemplo,old-docs para aclarar su importancia en el proyecto.

    • Échale un vistazo a los ficheros README, TODO, NEWS, AUTHORS y HACKING (o README.cvs-commits) de tu proyecto. ¿Están actualizados? ¿Las direcciónes email de contacto siguen siendo válidasi y has indicado cláramente cuáles son las vías para contactar (algunos autores podrían haberse mudado sin posibilidad de contactar con ellos, por ejemplo)? Todos estos ficheros tienden a atrofiarse dado que las personas encargadas de actualizarlos se olvidan de ello y por tanto la gente deja de creer en ellos. ¡Tu versión GNOME 2 es una ocasión perfecta para remediar esta situación (en caso de existir)!

  5. Haz que tu aplicación se accesible. ´Echale un vistazo a la sección Accesibilidad en GNOME de este documento y revisa el sitio web del Proyecto de Accesibilidad .

  6. Usa gconf en lugar de gnome-config.h para todo lo relacionado con tu configuración tanto como puedas. Así mismo, utiliza la configuración de la propia plataforma gconf para la configuración de cosas como los proxys HTTP. Esto significará que tus usuarios pueden configurar todo de una forma consistente y no necesitarán hacerlo para todas y cada una de las aplicaciones.

  7. Diseña tu aplicación para que funcione en un entorno donde el usuario puede haber hecho login muchas veces simultáneamente. En otras palabras, debes estar preparado para gestionar parte del estado de la aplicación basándote en la sesión en particular que la está usando, si es necesario.

  8. Implementa las recomendaciones de las Human Interface Guidelines, como se menciona en la introducción.

Saber cuántos de estos requerimientos deberías de implementar en tu propia aplicación es una decisión personal tuya y de los demás desarrolladores del proyecto. Sin embargo, no es algo descabellado esperar que las principales aplicaciones en GNOME 2 puedan cumplir con todos los criterios y otras aplicaciones populares intenten completar todas aquellas que les sea posible.

Como regla general, el funcionar correctamente con gconf y la gestión de sesiones son dos nuevas adiciones para GNOME 2, pero deberían considerarse muy importantes como parte del "juego limpio" con el resto de la plataforma. De forma similar, la accesibilidad y la usabilidad son dos facetas a las que se les está prestando mucha atención en GNOME 2 y las aplicaciones que no hagan un esfuerzo en éstas áreas son candidatas a destacar del resto (y no de forma positiva)

Consideraciones generales

Los siguientes elementos no están realmente relacionados con los aspectos técnicos de la migración, pero son a menudo infravalorados y se podría hacer algo más que considerarlos durante la fase "de limpieza" de tu proceso de migración.

  • Asegúrate de que el comando make distcheck funciona con tu aplicación. Preferiblemente, intenta que funcione siempre. Esto asegurará que tu aplicación tiene todos los ficheros necesarios cuando crees el paquete tar y que, entre otras cosas, asegurará la compilación de la aplicación cuando el directorio de compilación no sea el mismo que el directorio original (un problema al que no se le dedica la atención necesaria)

  • Antes de liberar la versión compatible con GNOME2 de tu aplicación, intenta compilarla desde cero en un sistema "limpio". Demasiado a menudo, el sistema principal del desarrollador tendrá pequeñas piezas de versiones o instalaciones de bibliotecas anteriores que estén siendo accidentalmente usadas por el nuevo paquete. O descubrirás que algo que asumías que estaría disponible en una instalación estándar realmente necesita ser descargado de forma separada. Poner una dosis de atención extra a este tipo de detalles antes de lanzar una nueva versión te evitará perder un montón de tiempo e incomodidades a tí y a tus usuarios en el futuro.