Retomada: mantendo um ambiente de desenvolvimento atualizado

Mas agora o Discourse quer 3.2.1 e o asdf parece não saber sobre 3.2.1. Como você está gerenciando isso?

asdf list all ruby|grep 3.2.1

não retorna nada.

Já que seu trabalho inclui benchmarking de versões ruby, isso faz muito sentido, mas a grande maioria dos desenvolvedores dentro e fora da CDCK não precisa apenas de um ambiente de desenvolvimento funcional sem precisar saber quais bibliotecas são necessárias para compilar o imagemagick (ou qualquer outra coisa) corretamente?

Algo precisa ser atualizado do seu lado, pois o ruby-build certamente tem 3.2.1

4 curtidas

Minha suposição é que @pfaffman esqueceu de executar asdf plugin update --all?

2 curtidas

DOH! Juro que tentei pelo menos fazer um

asdf plugin update ruby

mas parece que não fiz isso também. :crying_cat_face: :person_shrugging:

Mas agora, estou muito perto! Aqui está meu script que puxa o Discourse, atualiza Ruby, imagemagick e nodejs, e migra o banco de dados.

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

Acho que está tudo bem manter redis e postgres manualmente, embora da próxima vez que eu fizer uma instalação do sistema operacional e descobrir que meu sistema operacional e o Discourse divergiram, provavelmente mudarei de ideia!

Não está claro para mim o que é oxipng, mas não acho que a versão errada possa causar problemas para um desenvolvedor de plugins. O mesmo vale para jemalloc.

E, para ser sincero, não tenho certeza de quantos desenvolvedores de plugins serão afetados pelas versões do imagemagick. Acho que apenas Ruby e nodejs podem ser impeditivos.

Poderia ser mais seguro obter as versões do ruby e do imagemagick da imagem também, pois suspeito que quando o debian tiver a versão Ruby necessária, esse script desaparecerá, mas eu já havia escrito essa lógica quando descobri que tinha que puxar a versão do nó da imagem base.

E no tempo entre @falco me salvar com asdf plugin update --all e eu escrever este script, a versão Ruby foi atualizada para 3.2.2, e meu código a pegou e asdf a instalou! Adicionei o código acima ao meu script de atualização, que inclui isto:

1 curtida

Este tópico foi fechado automaticamente 30 dias após a última resposta. Novas respostas não são mais permitidas.