Ramas

Información general

La vista de ramas le brinda información general de las distintas ramas de su repositorio.

../../../_images/interface-branches.png

Etapas

Odoo.sh le ofrece tres diferentes etapas para sus ramas: producción, prueba y desarrollo.

Puede cambiar la etapa de una rama al arrastrarla y soltarla en el título de la sección de etapa.

../../../_images/interface-branches-stagechange.png

Etapa de producción

Esta es la rama que contiene el código en el que se ejecuta su base de datos de producción. Solo puede haber una rama de producción.

Cuando hace el push de una nueva confirmación en esta rama, su servidor de producción se actualiza con el código de la nueva revisión y posteriormente se reinicia.

Si sus cambios requieren la actualización de un módulo, como un cambio en una vista de formulario, y desea que se realice de forma automática, incremente el número de versión del módulo en su archivo manifest (__manifest__.py). La plataforma se encargará de llevar a cabo la actualización durante la cual la instancia estará no disponible temporalmente por motivos de mantenimiento.

Este método es equivalente a realizar una actualización del módulo a través del menú de Aplicaciones, o a través del interruptor -u de la línea de comando.

En el caso de que los cambios en la confirmación prevengan que el servidor se reinicie, o si la actualización de los módulos falla, el servidor se restaura automáticamente a la última revisión de código exitosa y la base de datos se revierte a su estado previo a la actualización. Aún tiene acceso al registro de la actualización fallida, por lo que puede llevar a cabo la solución de problemas.

Los datos de demostración no se cargan, ya que no se deben usar en una base de datos de producción. Las pruebas unitarias no se llevan a cabo porque incrementarían el tiempo en el que la base de datos de producción no está disponible durante las actualizaciones.

Los partners que utilizan proyectos de prueba deben estar conscientes de que su rama de producción, junto con todas las ramas de prueba, volverán de forma automática a la etapa de desarrollo después de 30 días.

Etapa de prueba

Las ramas de prueba son para probar sus nuevas funciones al usar los datos de producción, sin comprometer la base de datos de producción real con registros de prueba. Crearán bases de datos que son duplicados neutralizados de la base de datos de producción.

La neutralización incluye:

  • Deshabilitar acciones planificadas. Si quiere probarlas, puede activar sus acciones de forma manual o volverlas a habilitar. Tome en cuenta que la plataforma las activará con menor frecuencia si nadie usa la base de datos, esto con el fin de ahorrar recursos.

  • Deshabilitar correos electrónicos salientes al interceptarlos con un Mailcatcher. Se le proporciona una interfaz para ver los correos electrónicos enviados por su base de datos. De esta forma, no debe preocuparse de enviar correos electrónicos de prueba a sus contactos.

  • Establecer métodos de pago y proveedores de envío en el modo de prueba.

  • Deshabilitar servicios IAP.

La base de datos más reciente seguirá activa de forma indefinida, las más antiguas de la misma rama pueden recolectar basura para hacer espacio para más nuevas. Serán válidas por 3 meses, después de este tiempo deberá volver a crear la rama. Si realiza cambios de configuración o de vista en estas bases de datos, asegúrese de documentarlos o escribirlos directamente en los módulos de la rama, mediante archivos de datos XML que sobreescriban la configuración vista predeterminadas.

No se realizan las pruebas unitarias porque, en Odoo, actualmente utilizan datos de demostración, los cuales no se cargan en la base de datos de producción. En el futuro, si Odoo es compatible con la ejecución de pruebas unitarias sin los datos de demostración, Odoo.sh considerará ejecutar las pruebas en las etapas de prueba.

Etapa de desarrollo

Las ramas de desarrollo crean nuevas bases de datos al usar datos de demostración para ejecutar pruebas unitarias. Los módulos instalados son los que usted incluye en sus ramas. Puede cambiar la lista de módulos para instalar sus ajustes de proyecto.

Cuando realiza el push de una nueva confirmación en una de estas ramas, se inicia un nuevo servidor, con una base de datos creada desde cero, y la nueva revisión de la rama. Se cargan los datos de demostración y se llevan a cabo las pruebas unitarias de forma predeterminada. Esto verifica que sus cambios no dañen ninguna de las funciones que prueban. Si lo desea, puede deshabilitar las pruebas o permitir que se ejecuten pruebas específicas con etiquetas personalizadas en los ajustes de la rama.

De forma similar a las ramas de prueba, los correos electrónicos no se envían porque los intercepta un Mailcatcher y las acciones planificadas no se activan con tanta frecuencia porque la base de datos no está en uso.

Las bases de datos creadas para ramas de desarrollo están planeadas para durar alrededor de tres días. Pasado este tiempo, pueden recolectar basura de forma automática para hacer espacio para nuevas bases de datos sin previo aviso.

Fusionar sus ramas

Puede fusionar sus ramas con facilidad al arrastrarlas y soltarlas entre sí.

../../../_images/interface-branches-merge.png

Cuando desee probar los cambios de sus ramas de desarrollo con los datos de producción, puede:

  • Fusionar la rama de desarrollo con su rama de prueba, al arrastrarla y soltarla en la rama de prueba deseada.

  • Arrastrar y soltar la rama de desarrollo en el título de la sección de prueba, para convertirla en una rama de prueba.

Cuando sus cambios más recientes están listos para pasar a producción, puede arrastrar y soltar su rama de prueba en su rama de producción para fusionarlas y desplegar sus nuevas funciones en producción.

Si se atreve, también puede fusionar sus ramas de desarrollo con su rama de producción. Esto significa que se salta la validación de sus cambios con los datos de producción a través de la rama de prueba.

Puede fusionar sus ramas de desarrollo entre sí, también puede hacerlo con sus ramas de prueba.

También puede usar git merge directamente en su estación de trabajo para fusionar sus ramas. Se notificará a Odoo.sh cuando se haga el push de nuevas revisiones en sus ramas.

Fusionar una rama de prueba con la rama de producción solo fusiona el código fuente: cualquier cambio de configuración que haga en la base de datos de prueba no pasará a la base de datos de producción.

Si prueba los cambios de configuración en las etapas de prueba, y quiere que se apliquen en la producción, puede:

  • Escribir los cambios de configuración en archivos de datos XML que sobreescriben la configuración o vistas predeterminadas en sus ramas y, posteriormente, incrementar la versión de su módulo en su archivo manifest (__manifest__.py) para activar la actualización del módulo cuando fusione su rama de prueba con su rama de producción. Esta es la mejor práctica para obtener una mejor escalabilidad de sus desarrollos, ya que utiliza las funciones de creación de versiones de Git para todos sus cambios de configuración y, por lo tanto, todos sus cambios tienen trazabilidad.

  • Pasarlos manualmente de su base de datos de prueba a su base de datos de producción, al copiarlos y pegarlos.

Pestañas

Historial

Un resumen del historial de su rama:

  • Los mensajes de las confirmaciones y sus autores.

  • Los diversos eventos vinculados a la plataforma, como los cambios de etapa, las importaciones de bases de datos, las restauraciones de respaldos.

../../../_images/interface-branches-history.png

Para cada evento, se muestra un estado en la esquina superior derecha. Le proporciona información sobre la operación actual de la base de datos (instalación, actualización, importación de respaldo, etc.) o su resultado (retroalimentación de pruebas, importaciones de respaldos exitosas, etc.). Cuando una operación es exitosa, puede acceder a la base de datos mediante el botón de conectar.

Correos electrónicos

Esta pestaña contiene el Mailcatcher. Muestra un resumen de los correos electrónicos enviados por su base de datos. El Mailcatcher está disponible para sus ramas de desarrollo y de prueba, ya que los correos electrónicos de su base de datos de producción en realidad se envían en lugar de ser interceptados.

../../../_images/interface-branches-mails.png

Shell

Un acceso de shell a su contenedor. Puede realizar comandos básicos de Linux (ls, top) y abrir un shell en su base de datos al escribir psql.

../../../_images/interface-branches-shell.png

Puede abrir múltiples pestañas y arrastrar y soltarlas para acomodar el diseño como desee, lado a lado, por ejemplo.

Nota

No se garantiza que las instancias de shell sean de larga duración. Los shells inactivos se pueden desconectar en cualquier momento para liberar recursos.

Editor

Un entorno de desarrollo integrado (IDE, por sus siglas en inglés) en línea para editar el código fuente. También puede abrir terminales, consolas Python e incluso consolas de shell de Odoo.

../../../_images/interface-branches-editor.png

Puede abrir múltiples pestañas y arrastrar y soltarlas para acomodar el diseño como desee, lado a lado, por ejemplo.

Monitoreo

Este enlace contiene varias métricas de monitoreo de la compilación actual.

../../../_images/interface-branches-monitoring.png

Puede hacer zoom, cambiar el rango de tiempo o seleccionar una métrica específica en cada gráfico. Las anotaciones pueden ayudarle en los gráficos a relacionar los cambios en la compilación (importación de base de datos, push de Git, etc.).

Registros

Un editor para revisar sus registros de servidor.

../../../_images/interface-branches-logs.png

Hay distintos registros disponibles:

  • install.log: los registros de la instalación de la base de datos. En una rama de desarrollo, se incluyen los registros de las pruebas.

  • pip.log: los registros de la instalación de las dependencias de Python.

  • odoo.log: los registros del servidor en ejecución.

  • update.log: los registros de las actualizaciones de la base de datos.

  • pg_long_queries.log: los registros de las consultas de psql que se tardan una cantidad inusual de tiempo.

Si se agregan nuevas líneas en los registros, se mostrarán de forma automática. Si se desplaza al final de la página, el navegador se desplazará de forma automática cada vez que se agregue una nueva línea.

Puede pausar la recuperación de registros al hacer clic en el botón correspondiente en la esquina superior derecha de la vista. La recuperación se detiene de forma automática después de 5 minutos. Puede reiniciarla al hacer clic en el botón de Iniciar.

Respaldos

Es una lista de respaldos disponibles para descargar y restaurar, es posible realizar un respaldo manual e importar una base de datos.

../../../_images/interface-branches-backups.png

Odoo.sh hace respaldos diarios de la base de datos de producción. Mantiene 7 respaldos diarios, 4 semanales y 3 mensuales. Cada respaldo incluye el dump de la base de datos, los archivos almacenados (archivos adjuntos, campos binarios), los registros y las sesiones.

Las bases de datos de prueba y de desarrollo no se respaldan. Sin embargo, tiene la posibilidad de restaurar un respaldo de la base de datos de producción en sus ramas de prueba, o recuperar manualmente los datos que se eliminaron por accidente de la base de datos de producción.

La lista contiene los respaldos guardados en el servidor que aloja su base de datos de producción. Este servidor solo guarda un mes de respaldos: 7 diarios y 4 semanales.

Los servidores de respaldo dedicados guardan los mismos respaldos, así como 3 respaldos mensuales adicionales. Para restaurar o descargar uno de los respaldos mensuales, contáctenos.

Si fusiona una confirmación que actualiza la versión de uno o varios módulos (en __manifest__.py), o sus dependencias de Python vinculadas (en requirements.txt), Odoo.sh realiza un respaldo automático (se marca en la lista con el tipo Actualización), ya que se cambiará el contenedor por la instalación de nuevos paquetes pip, o se cambiará la base de datos y se activará la actualización del módulo. En ambos casos se realiza un respaldo, ya que puede haber daños.

Si fusiona una confirmación que solo cambia parte del código sin las modificaciones mencionadas anteriormente, entonces Odoo.sh no realiza ningún respaldo porque no se modifican ni el contenedor ni la base de datos, por lo que la plataforma lo considera seguro. Como precaución adicional, puede hacer un respaldo manual antes de hacer cambios grandes en sus fuentes en caso de que algo salga mal (estos respaldos manuales están disponibles por una semana). Para evitar el abuso de la función, el límite es de 5 respaldos manuales por día.

La función de importar base de datos acepta archivos de bases de datos en los formatos proporcionados por:

  • El gestor estándar de bases de datos de Odoo (disponible para servidores de Odoo alojados de forma local en /web/database/manager).

  • El gestor en línea de bases de datos de Odoo.

  • El botón de descarga de respaldo de Odoo.sh en esta pestaña de Respaldos.

  • El botón de descarga de dump de Odoo.sh en la Vista de compilaciones.

Actualizar

Está disponible para ramas de producción y de prueba de proyectos válidos.

Ver también

Actualizar - Odoo.sh

Ajustes

Aquí puede encontrar un par de ajustes que solo aplican a la rama seleccionada.

../../../_images/interface-branches-settings.jpg

Comportamiento después de una nueva confirmación

Para las ramas de desarrollo y de prueba, puede cambiar el comportamiento de las ramas después de una nueva confirmación. De forma predeterminada, una rama de desarrollo creará una nueva compilación y una rama de prueba actualizará la compilación anterior (consulte Etapa de prueba). Esto es especialmente útil si la función con la que está trabajando requiere una configuración específica, para evitar tener que volver a configurarla manualmente para cada confirmación. Elegir una nueva compilación para una etapa de prueba creará una nueva copia de la compilación de producción cada vez que se haga el push de una confirmación. Una rama que se regresa de un estado de prueba a uno de desarrollo se establecerá como “No hacer nada” de forma automática.

Instalación de módulos

Elija los módulos que se instalarán de forma automática en sus compilaciones de desarrollo.

../../../_images/interface-settings-modulesinstallation.png
  • Instalar solo mis módulos instalará solo los módulos de la rama. Esta es la opción predeterminada. Se excluyen los submódulos.

  • Instalación completa (todos los módulos) instalará los módulos de la rama, los módulos incluidos en los submódulos y todos los módulos estándar de Odoo. El conjunto de prueba se deshabilita al ejecutar la instalación completa.

  • Instalar una lista de módulos instalará los módulos que se especifican en el campo debajo de esta opción. Se deben colocar los nombres técnicos de los módulos separados por comas.

Si se habilitan las pruebas, el conjunto de módulos estándar de Odoo puede tardar hasta 1 hora. Este ajuste aplica solamente a compilaciones de desarrollo. Las compilaciones de prueba duplican la compilación de producción y la compilación de producción solo instala la base.

Conjunto de prueba

En el caso de las ramas de desarrollador, puede elegir habilitar o deshabilitar el conjunto de prueba. Se habilita de forma predeterminada. Cuando se habilita el conjunto de prueba, puede restringirlo al especificar etiquetas de prueba.

Versión de Odoo

Solo puede cambiar la versión de Odoo en el caso de las ramas de desarrollo, si desea probar un código actualizado o desarrollar funciones mientras su base de datos está en el proceso de actualización a una nueva versión.

Además, para cada versión tiene dos opciones en cuanto a la actualización de código.

  • Puede elegir beneficiarse de las últimas correcciones de errores, seguridad y rendimiento de forma automática. Las fuentes de su servidor de Odoo se actualizarán semanalmente. Esta es la opción “Más reciente”.

  • Puede elegir fijar las fuentes de Odoo a una revisión específica al seleccionarlas de una lista de fechas. Las revisiones expirarán después de 3 meses. Se le notificará por correo electrónico cuando se acerque la fecha de expiración y si no toma ninguna medida, se establecerá automáticamente a la última revisión.

Dominios personalizados

Aqupi puede configurar dominios adicionales para las ramas seleccionadas. Es posible agregar otros dominios <name>.odoo.com o sus propios dominios personalizados. Para hacer esto último, debe:

  • Ser propietario o comprar el nombre de dominio.

  • Agregar el nombre de dominio en esta lista.

  • En el gestor de nombre de dominio de su registrador, configure el nombre de dominio con un registro CNAME establecido como el nombre de dominio de su base de datos de producción.

Por ejemplo, para asociar www.miempresa.com con su base de datos miempresa.odoo.com:

  • En Odoo.sh, agregue www.mycompany.com en los dominios personalizados de los ajustes de su proyecto.

  • En su gestor de nombre de dominio (por ejemplo, godaddy.com, gandi.net, ovh.com), configure www.miempresa.com con un registro CNAME con el valor de miempresa.odoo.com.

No se aceptan los dominios simples (por ejemplo, miempresa.com):

  • Solo se pueden configurar al usar registros A.

  • Los registros A solo aceptan direcciones IP como valor.

  • La dirección IP de su base de datos puede cambiar después de una actualización, un fallo de hardware o si cambia el alojamiento de su base de datos a otro país o continente.

Por lo tanto, los dominios simples podrían dejar de funcionar repentinamente debido a este cambio de dirección IP.

Además, si desea que tanto miempresa.com como www.miempresa.com funcionen con su base de datos, hacer que el primero redirija al segundo es una de las mejores prácticas de SEO (Consulte Proporcionar una versión de un URL para llegar a un documento) para tener un URL dominante. Por lo tanto, solo debe configurar miempresa.com para que redirija a www.miempresa.com. La mayoría de los gestores de dominios tienen la función de configurar esta redirección. Se le conoce normalmente con el nombre de redirección web.

HTTPS/SSL

Si la redirección se configura de forma correcta, la plataforma generará automáticamente un certificado SSL con Let’s Encrypt en una hora y su dominio será accesible a través de HTTPS.

Aunque actualmente no es posible configurar sus propios certificados SSL en la plataforma de Odoo.sh, consideraremos agregar esta función si hay la suficiente demanda.

Cumplimiento de SPF y DKIM

En caso de que el dominio de las direcciones de correo electrónico de sus usuarios utilice SPF (Convenio de remitentes, por sus siglas en inglés) o DKIM (DomainKeys Identified Mail), no olvide autorizar a Odoo como host de envío en los ajustes de su nombre de dominio para incrementar la entrega de sus correos salientes. Los pasos de configuración se explican en la documentación sobre SPF y DKIM.

Advertencia

Olvidar configurar su SPF o DKIM para autorizar a Odoo como host de envío puede llevar a la entrega de sus correos electrónicos como spam en la bandeja de entrada de sus contactos.

Comandos de shell

En la esquina superior derecha de la vista se encuentran disponibles distintos comandos de shell.

../../../_images/interface-branches-shellcommands.png

Cada comando se puede copiar en el portapapeles para usarse en una terminal, y algunos se pueden usar directamente desde Odoo.sh al hacer clic en el botón de Ejecutar, en este caso aparecerá una ventana emergente que invitará al usuario a definir marcadores de posición eventuales como <URL>, <PATH>, …

Clonar

Descarga el repositorio de Git.

$ git clone --recurse-submodules --branch master git@github.com:odoo/odoo.git

Esto clona el repositorio odoo/odoo.

  • --recurse-submodules: descarga los submódulos de su repositorio. También se descargan los submódulos incluidos en los submódulos.

  • --branch: comprueba una rama específica del repositorio, en este caso master.

El botón de Ejecutar no está disponible para este comando, ya que está pensado para usarse en sus máquinas.

Bifurcar

Crea una nueva rama según la rama actual.

$ git checkout -b feature-1 master

Esto crea una nueva rama llamada feature-1 según la rama master, y la revisa.

$ git push -u origin feature-1

Sube la nueva rama feature-1 en su repositorio remoto.

Fusionar

Fusiona la rama actual con otra rama.

$ git merge staging-1

Esto fusiona la rama staging-1 con la rama actual.

$ git push -u origin master

Sube los cambios que agregó en la rama master a su repositorio remoto.

SSH

Configuración

Para poder utilizar SSH, debe configurar la clave pública de su perfil SSH (si aún no lo ha hecho). Para ello, siga estos pasos:

  1. Genere una nueva clave SSH.

  2. Copie la clave SSH a su portapapeles (solo siga el paso 1 de esta página).

  3. Pegue el contenido copiado en las claves SSH de su perfil y haga clic en «Agregar».

    ../../../_images/SSH-key-pasting.png
  4. La clave debe aparecer a continuación.

    ../../../_images/SSH-key-appearing.png

Conexión

Para conectar sus compilaciones que usan SSH, utilice el siguiente comando en una terminal:

$ ssh <build_id>@<domain>

Encontrará un atajo para este comando en la pestaña de SSH en la esquina superior derecha.

../../../_images/SSH-panel.png

Si tiene los derechos de acceso adecuados en el proyecto, se le concederá acceso SSH a la compilación.

Nota

No se garantiza que las conexiones SSH sean de larga duración. Las conexiones inactivas se desconectarán en cualquier momento para liberar recursos.

Submódulo

Agregue una rama de otro repositorio a su rama actual como un submódulo.

Los Submódulos le permiten usar módulos de otros repositorios en su proyecto.

Puede encontrar más información sobre la función de submódulos en el capítulo Submódulos de esta documentación.

$ git submodule add -b master <URL> <PATH>

Agrega la rama master del repositorio <URL> como un submódulo en la ruta <PATH> en su rama actual.

$ git commit -a

Confirma todos sus cambios actuales.

$ git push -u origin master

Sube los cambios que agregó en la rama master a su repositorio remoto.

Eliminar

Elimina una rama de su repositorio.

$ git push origin :master

Elimina la rama en su repositorio remoto.

$ git branch -D master

Elimina la rama en su copia local del repositorio.