Reprise : maintenir un environnement de développement à jour

Mais maintenant, Discourse veut 3.2.1 et asdf ne semble pas connaître la version 3.2.1. Comment gérez-vous cela ?

asdf list all ruby|grep 3.2.1

ne retourne rien.

Étant donné que votre travail comprend l’évaluation comparative des versions de Ruby, cela a beaucoup de sens, mais la grande majorité des développeurs, qu’ils soient chez CDCK ou non, n’ont-ils pas simplement besoin d’un environnement de développement fonctionnel sans avoir besoin de savoir quelles bibliothèques sont nécessaires pour compiler correctement imagemagick (ou autre chose) ?

Quelque chose doit être mis à jour de votre côté car ruby-build connaît certainement 3.2.1

4 « J'aime »

Je suppose que @pfaffman a oublié d’exécuter asdf plugin update --all ?

2 « J'aime »

DOH ! Je jure que j’avais essayé au moins de faire un

asdf plugin update ruby

mais il semble que je n’aie fait ni l’un ni l’autre. :crying_cat_face: :person_shrugging:

Mais maintenant, je suis vraiment proche ! Voici mon script qui récupère Discourse, met à jour Ruby, imagemagick et nodejs, et migre la base de données.

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 and pop!os have different nodejs versions
  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

Je pense qu’il est acceptable de garder redis et postgres à la main, bien que la prochaine fois que je ferai une installation de système d’exploitation et que je constaterai que mon système d’exploitation et Discourse ont divergé, je changerai probablement d’avis !

Je ne suis pas sûr de ce qu’est oxipng, mais je ne pense pas qu’une mauvaise version soit susceptible de causer des problèmes à un développeur de plugins. Il en va de même pour jemalloc.

Et franchement, je ne suis pas sûr du nombre de développeurs de plugins qui seront affectés par les versions d’imagemagick. Je pense que seuls Ruby et nodejs sont susceptibles d’être des bloqueurs.

Il serait peut-être plus sûr de récupérer également les versions de ruby et imagemagick de l’image, car je soupçonne que lorsque debian aura la version Ruby requise, ce script disparaîtra, mais j’avais déjà écrit cette logique lorsque j’ai appris que je devais récupérer la version node de l’image de base.

Et entre le moment où @falco m’a sauvé avec asdf plugin update --all et le moment où j’ai écrit ce script, la version de Ruby est passée à 3.2.2, et mon code l’a détecté et asdf l’a installé ! J’ai ajouté le code ci-dessus à mon script de mise à jour, qui comprend ceci :

1 « J'aime »

Ce sujet a été automatiquement fermé 30 jours après la dernière réponse. Les nouvelles réponses ne sont plus autorisées.