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) ?
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.
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 :