Cómo se construye Ubuntu la historia interna.
NoticiasCada seis meses lanzamos una nueva versión de Ubuntu. Cada uno reúne a cientos de desarrolladores, traductores, evaluadores y redactores de documentación para integrar las últimas y mejores aplicaciones de flujo ascendente, así como las nuevas e innovadoras tecnologías de Ubuntu..
Construir y lanzar un nuevo sistema operativo cada seis meses es agitado. Realmente agitado. Sin embargo, desde 2004, cuando fundamos el proyecto, nos esforzamos por obtener lo mejor de todos los que participan en la construcción de Ubuntu, asegurando que cada lanzamiento sea lo mejor posible..
Este artículo explica cómo funciona este caos organizado y proporciona una visión de cómo se integra Ubuntu. Todo está encerrado en un riguroso ciclo de lanzamiento, compuesto por una serie de hitos importantes, que siempre están disponibles al público. Comencemos observando el inicio de un nuevo ciclo..
Echando la red
Antes de comenzar la nueva versión, y mientras aún estamos dando los últimos retoques a la versión anterior, comenzamos a realizar un ejercicio de recopilación de requisitos. Los equipos de Canonical se comunican con diferentes partes interesadas y la comunidad para ver en qué debería centrarse la próxima versión..
¿Qué nuevas características necesita Ubuntu? ¿Qué problemas requieren reparación? ¿Qué casos de uso debemos apoyar? Este proceso da como resultado una larga lista de necesidades que comenzamos a clasificar en áreas de enfoque priorizadas.
Al mismo tiempo, estamos coordinando la estructura de la próxima Cumbre de Desarrolladores de Ubuntu. Este evento cara a cara ocurre unas pocas semanas después del inicio de cada nuevo ciclo de lanzamiento. Enviamos a casi todos los ingenieros de Canonical en Ubuntu y patrocinamos a varios miembros clave de la comunidad para que se unan a nosotros. El evento está abierto a todos, y muchos representantes comerciales se unen también..
En la Cumbre de desarrolladores de Ubuntu, tenemos 14 pistas que cubren diferentes temas y programamos sesiones abiertas de discusión para las diferentes áreas de enfoque. El objetivo de cada sesión es discutir el tema y tomar y documentar decisiones y acciones asignadas en planos públicos. Estas son páginas web que utilizamos para rastrear el trabajo sobre las funciones de forma abierta y transparente. Puede ver la interfaz en http://status.ubuntu.com para la próxima versión de Ubuntu.
La primera tarea que debemos abordar en un nuevo ciclo es finalizar la cadena de herramientas. La cadena de herramientas es el conjunto principal de herramientas de desarrollo que se utiliza para crear software para el lanzamiento. Este trabajo de bajo nivel profundo y sucio se realiza primero, y luego sincronizamos el archivo de Debian Unstable con esta cadena de herramientas. Esto construye efectivamente todos los paquetes de Debian contra la cadena de herramientas, por lo que tenemos Debian Unstable en nuestro repositorio de desarrolladores de Ubuntu.
Cuando se completa esta sincronización, los desarrolladores de Ubuntu comienzan a aplicar los cientos de parches de Ubuntu a estos paquetes que transforman Debian Unstable en Ubuntu. En este punto, tenemos una versión para desarrolladores de Ubuntu que se parece a nuestra última versión, pero construida contra los nuevos paquetes de Debian y utilizando nuestra cadena de herramientas. Ahora puede comenzar el verdadero trabajo..
Pesca del día
Durante los meses siguientes, la comunidad de desarrolladores comienza a trabajar en las características y objetivos acordados en la Cumbre de Desarrolladores de Ubuntu. Se realizan progresos todos los días: los desarrolladores evalúan y priorizan los errores, los corrigen y suben las correcciones al archivo. Las nuevas características se desarrollan, empaquetan y suben, también.
Cada día, cuando un desarrollador de Ubuntu se despierta, él o ella actualizará su sistema para extraer los paquetes más recientes y luego comenzará a trabajar en sus características y errores. Por lo general, este flujo de trabajo implica observar la lista de errores actual y los errores de mayor prioridad y resolverlos, mientras se trabaja en los objetivos de las características del ciclo. Este trabajo de características a menudo involucra la selección de características específicas de flujos ascendentes que son de interés, o la creación del código para estas nuevas características y su incorporación al lanzamiento..
Una pieza importante de esto es el nuevo trabajo de desarrollo que se incluye en el proyecto Ayatana con Unity, los indicadores y otras funcionalidades de escritorio innovadoras. Este trabajo se divide en dos equipos principales: el equipo de diseño diseña la funcionalidad en función de las necesidades del usuario y el equipo de escritorio utiliza estos diseños para escribir el código para implementarlos..
Lanzamientos regulares
Cuando el equipo de Desktop Experience realiza un lanzamiento, envía el código al equipo de Ingeniería de escritorio de Ubuntu, quien luego lo empaqueta y lo carga en el archivo, donde todos pueden ejecutar y probar el nuevo código..
En cada versión, nos esforzamos por tener una nueva versión del equipo de Desktop Experience al menos una vez a la semana (generalmente los jueves). Este plazo semanal ha sido útil para el progreso regular. A lo largo de este período, lanzamos versiones de desarrollo de Ubuntu que animamos a la comunidad a probar, archivar errores y ayudar a mejorar.
Alpha 1 se produce poco después de que se abra el nuevo ciclo de lanzamiento e incluye los nuevos paquetes de Debian con las combinaciones incluidas. Alfa 2 es cuando normalmente comienzas a ver nuevas características significativas. Alpha 3 generalmente se publica unos meses antes de la versión final de Alpha y justo antes de la Congelación de funciones.
En Feature Freeze, bloqueamos el lanzamiento para que no se admitan nuevas características importantes y todo el tiempo del desarrollador se concentre en refinar lo que ya existe. Este hito cambia de manera efectiva la combinación de funciones nuevas y no probadas a la calidad de construcción en lo que ya tenemos.