Skip to content

2021_2 Actualización de sip 2.0b10 a 2.0b11

Vladimir Támara Patiño edited this page Feb 4, 2021 · 38 revisions
  • La rama principal ya no es master sino main
  • La configuración para arrancar la aplicación ya no se hace copiando varios archivos plantilla sino que se hace mediante variables de ambiente que se centralizan en .env y que se manejan con dotenv en modos de desarrollo y prueba y pasando las variables explicitas desde el sistema operativo en modo de producción (en todo caso debe copiarse .env.plantilla en .env).

Para convertir un motor o aplicación a la nueva forma de configurar variables en el ambiente

Se inspira en https://12factor.net/ y se aprovecha la gema dotenv para lograrlo en modos desarrollo y pruebas y el sistema operativo para mantenerlo en modo producción.

  • Edita el Gemfile y cambia:
    • la rama de sip a main, ubicando:
      gem 'sip', # Motor generico        
       git: 'https://github.com/pasosdeJesus/sip.git'
      
      y cambiando por
      gem 'sip', # Motor generico        
        git: 'https://github.com/pasosdeJesus/sip.git', branch: 'main'
      
    • agrega la gema dotenv-rails en una sección sólo para modos development y test
    • si hace falta en la sección development agrega la gema puma
  • Copia de sip/test/dummy los scripts bin/corre, bin/detiene y bin/migra en el directorio bin
  • Crea un archivo .env.plantilla (puede ser copiando de otro motor o aplicacíon similar) con datos variables en cada arranque o configuración en variables de ambiente, cada una en un bloque de la forma siguiente (cambiando BD_USUARIO por una varible de ambiente preferible con _ en lugar de espacio y su valor predeterminado en lugar de sipdes):
if (test "$BD_USUARIO" = "") then {                                              
  export BD_USUARIO=sipdes                                                       
} fi
  • Convierte los archivos plantilla en archivos normales pero agrega variables a ambiente en donde puede haber configuraciones variables de un arranque a otro. Si necesitas introducir variables, recomendamos que sea en mayúscula, remplazando espacios por _ y que comiencen con el nombre del motor (e.g SIP_FORMATO_FECHA). Recuerda definir los valores por omisión en .env.plantilla y además en el código ruby en lugar de ENV['MIMOTOR_VAR'] emplea ENV.fetch('MIMOTOR_VAR', 'valor predeterminado') o si la aplicación debe fallar si no está definida usa ENV.fetch('MIMOTOR_VAR'). La idea es que al final del proceso todas las configuraciones se concentren en .env.plantilla y en lo posible que sea el único archivo plantilla.
  • Prueba la aplicación tras el cambio
  • Recuerda agregar una archivo CONTRIBUTING.md que podría referenciar el de sip pero indicar lo particular del motor/aplicación como por ejemplo el primer usuario y su clave.
Clone this wiki locally