Wiederaufnahme: Pflege einer aktuellen Entwicklungsumgebung

Aber jetzt will Discourse 3.2.1 und asdf scheint 3.2.1 nicht zu kennen. Wie verwaltest du das?

asdf list all ruby|grep 3.2.1

gibt nichts zurück.

Da dein Job das Benchmarking von Ruby-Versionen beinhaltet, ergibt das viel Sinn, aber brauchen die überwiegende Mehrheit der Entwickler bei und außerhalb von CDCK nicht einfach eine funktionierende Entwicklungsumgebung, ohne wissen zu müssen, welche Bibliotheken zum Kompilieren von ImageMagick (oder was auch immer) erforderlich sind?

Auf Ihrer Seite muss etwas aktualisiert werden, da ruby-build sicherlich 3.2.1 kennt

4 „Gefällt mir“

Ich vermute, @pfaffman hat vergessen, asdf plugin update --all auszuführen?

2 „Gefällt mir“

DOH! Ich schwöre, ich habe versucht, zumindest Folgendes zu tun:

asdf plugin update ruby

aber es scheint, dass ich das auch nicht getan habe. :crying_cat_face: :person_shrugging:

Aber jetzt bin ich wirklich nah dran! Hier ist mein Skript, das Discourse abruft, Ruby, imagemagick und nodejs aktualisiert und die Datenbank migriert.

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 und pop!os haben unterschiedliche nodejs-Versionen
  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

Ich denke, es ist in Ordnung, Redis und Postgres von Hand aktuell zu halten, obwohl ich beim nächsten Mal, wenn ich ein Betriebssystem installiere und feststelle, dass mein Betriebssystem und Discourse voneinander abgewichen sind, wahrscheinlich meine Meinung ändern werde!

Ich bin mir nicht sicher, was oxipng überhaupt ist, aber ich glaube nicht, dass eine falsche Version wahrscheinlich Probleme für einen Plugin-Entwickler verursachen wird. Dasselbe gilt für jemalloc.

Und ehrlich gesagt, ich bin mir nicht sicher, wie viele Plugin-Entwickler wahrscheinlich von imagemagick-Versionen betroffen sein werden. Ich denke, nur Ruby und nodejs sind wahrscheinlich Showstopper.

Es könnte sicherer sein, auch Ruby- und imagemagick-Versionen aus dem Image zu beziehen, da ich vermute, dass dieses Skript verschwinden wird, wenn Debian die erforderliche Ruby-Version hat, aber ich hatte diese Logik bereits geschrieben, als ich erfuhr, dass ich die Node-Version aus dem Basis-Image ziehen musste.

Und in der Zeit zwischen dem Zeitpunkt, an dem @falco mich mit asdf plugin update --all gerettet hat, und als ich dieses Skript geschrieben habe, wurde die Ruby-Version auf 3.2.2 aktualisiert, und mein Code hat es erfasst und asdf hat es installiert! Ich habe den obigen Code zu meinem Update-Skript hinzugefügt, das Folgendes enthält:

1 „Gefällt mir“

Dieses Thema wurde 30 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr möglich.