Reanudación: manteniendo un entorno de desarrollo actualizado

Pero ahora Discourse quiere 3.2.1 y asdf parece no saber nada de 3.2.1. ¿Cómo lo estás gestionando?

asdf list all ruby|grep 3.2.1

no devuelve nada.

Dado que tu trabajo incluye la evaluación comparativa de versiones de ruby, eso tiene mucho sentido, pero ¿la gran mayoría de los desarrolladores dentro y fuera de CDCK no solo necesitan un entorno de desarrollo funcional sin necesidad de saber qué bibliotecas se requieren para compilar correctamente imagemagick (o lo que sea)?

Algo necesita actualizarse de tu lado porque ruby-build ciertamente tiene 3.2.1

4 Me gusta

Mi suposición es que @pfaffman olvidó ejecutar asdf plugin update --all?

2 Me gusta

¡DOH! Juro que intenté al menos hacer un

asdf plugin update ruby

pero parece que tampoco hice eso. :crying_cat_face: :person_shrugging:

¡Pero ahora, estoy muy cerca! Aquí está mi script que extrae Discourse, actualiza Ruby, imagemagick y nodejs, y migra la base de datos.

DISCOURSE_SRC=/home/pfaffman/src/discourse-repos/discourse
DISCOURSE_DOCKER_SRC=/home/pfaffman/src/discourse-repos/discourse_docker
cd $DISCOURSE_SRC

  git -C $DISCOURSE_DOCKER_SRC pull https://github.com/discourse/discourse_docker
  DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'\"' -f2)
  cd -

  docker pull $DISCOURSE_BASE
  asdf plugin add nodejs #https://github.com/asdf-vm/asdf-nodejs.git
  asdf plugin add ruby #https://github.com/asdf-vm/asdf-ruby.git
  asdf plugin add imagemagick
  asdf plugin update --all
  RUBY_VERSION=$(grep -e ^RUBY_VERSION $DISCOURSE_DOCKER_SRC/image/base/install-ruby|cut -d'\"' -f2)
  asdf install ruby $RUBY_VERSION
  asdf local ruby $RUBY_VERSION
  IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~//src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'\"' -f2)
  asdf install imagemagick $IMAGE_MAGICK_VERSION
  asdf local imagemagick $IMAGE_MAGICK_VERSION
  # 2023-04-24 debian y pop!os tienen diferentes versiones de nodejs
  NODE_VERSION=$(docker run discourse/base:2.0.20230420-0104 bash -c 'node --version'|cut -d'v' -f2)
  asdf install nodejs $NODE_VERSION
  asdf local nodejs $NODE_VERSION
  cd $DISCOURSE_SRC
  git checkout main
  git pull
  bundle install
  ./bin/rake db:migrate
  RAILS_ENV=test ./bin/rake db:migrate

Creo que está bien mantener redis y postgres manualmente, aunque la próxima vez que haga una instalación del sistema operativo y descubra que mi sistema operativo y Discourse han divergido, ¡probablemente cambiaré de opinión!

No está claro qué es oxipng, pero no creo que una versión incorrecta cause problemas a un desarrollador de plugins. Lo mismo ocurre con jemalloc.

Y, para ser honesto, no estoy seguro de cuántos desarrolladores de plugins se verán afectados por las versiones de imagemagick. Creo que solo Ruby y nodejs son los que probablemente detendrán el proceso.

Podría ser más seguro obtener también las versiones de ruby e imagemagick de la imagen, ya que sospecho que cuando debian tenga la versión requerida de Ruby, ese script desaparecerá, pero ya había escrito esa lógica cuando me enteré de que tenía que extraer la versión de nodo de la imagen base.

Y en el tiempo transcurrido entre que @falco me salvó con asdf plugin update --all y cuando escribí este script, la versión de Ruby saltó a 3.2.2, ¡y mi código la detectó y asdf la instaló! He agregado el código anterior a mi script de actualización, que incluye esto:

1 me gusta

Este tema se cerró automáticamente 30 días después de la última respuesta. Ya no se permiten nuevas respuestas.