Ma ora Discourse vuole 3.2.1 e asdf sembra non conoscere la 3.2.1. Come lo stai gestendo?
asdf list all ruby|grep 3.2.1
non restituisce nulla.
Dato che il tuo lavoro include il benchmarking delle versioni di ruby, questo ha molto senso, ma la stragrande maggioranza degli sviluppatori, dentro e fuori CDCK, non ha bisogno di un ambiente di sviluppo funzionante senza dover sapere quali librerie sono necessarie per compilare correttamente imagemagick (o qualsiasi altra cosa)?
Ma ora, ci sono quasi! Ecco il mio script che estrae Discourse, aggiorna Ruby, imagemagick e nodejs, e migra il database.
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
Penso che vada bene tenere aggiornati redis e postgres manualmente, anche se la prossima volta che farò un’installazione del sistema operativo e scoprirò che il mio sistema operativo e Discourse sono divergenti, probabilmente cambierò idea!
Non mi è chiaro cos’è oxipng, ma non credo che una versione sbagliata causi problemi a uno sviluppatore di plugin. Lo stesso vale per jemalloc.
E, onestamente, non sono sicuro di quanti sviluppatori di plugin saranno interessati alle versioni di imagemagick. Penso che solo Ruby e nodejs possano essere dei blocchi.
E nel tempo trascorso da quando @falco mi ha salvato con asdf plugin update --all e quando ho scritto questo script, la versione di Ruby è passata a 3.2.2, e il mio codice l’ha rilevata e asdf l’ha installata! Ho aggiunto il codice sopra al mio script di aggiornamento, che include questo: