Melhorias no Gemfile e plugins

Olá, equipe do Discourse,

Gostaria de oferecer uma solução interessante para o Gemfile no diretório de plugins e para a adição de gems externas, caso sejam necessárias.

# Carrega os Gemfiles dos plugins
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
  eval_gemfile file
end

Se adicionarmos isso ao Gemfile principal, poderemos carregar os Gemfiles dos plugins.

Vamos discutir essa solução.

P.S. Documentação da DSL para eval_gemfile => https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile

2 curtidas

Isso é interessante! No momento, os plugins podem exigir gems listando toda a árvore de dependências recursivas no arquivo plugin.rb, por exemplo:

2 curtidas

Obrigado, é isso que eu estava procurando.
Mas acho que minha decisão está mais clara e compreensível para mim.
Razões (na minha opinião):

  1. Deixamos o plugin.rb mais limpo
  2. O Gemfile é mais compreensível para desenvolvedores Rails.
1 curtida

Infelizmente, isso significa que o arquivo de bloqueio se tornará um alvo em constante mudança, e nós o incluímos no controle de versão.

Os arquivos Gem são bons, mas até que possamos enviar arquivos de bloqueio delta, esse tipo de solução não funcionará.