Estou tendo alguns problemas para configurar o discourse para desenvolvimento no meu Mac M1.
As gems fast_xs e gc_tracer falham ao instalar com erros quase semelhantes. Colei a mensagem de erro do fast_xs abaixo. Alguém poderia ajudar?
Building native extensions. This could take a while...
ERROR: Error installing fast_xs:
ERROR: Failed to build gem native extension.
current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
/Users/sisirkoppaka/.rubies/ruby-3.2.0/bin/ruby -I /Users/sisirkoppaka/.rubies/ruby-3.2.0/lib/ruby/site_ruby/3.2.0 extconf.rb
checking for assert.h... yes
creating Makefile
current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7 clean
current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7
compiling fast_xs.c
fast_xs.c:144:39: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE (*)(VALUE, VALUE)' (aka 'unsigned long (*)(unsigned long, unsigned long)') [-Wincompatible-function-pointer-types]
144 | array = rb_rescue(unpack_utf8, self, unpack_uchar, self);
| ^~~~~~~~~~~
/Users/sisirkoppaka/.rubies/ruby-3.2.0/include/ruby-3.2.0/ruby/internal/iterator.h:364:62: note: passing argument to parameter 'r_proc' here
364 | VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2);
| ^
1 error generated.
make: *** [fast_xs.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0 for inspection.
Results logged to /Users/sisirkoppaka/.gem/ruby/3.2.0/extensions/arm64-darwin-22/3.2.0-static/fast_xs-0.8.0/gem_make.out```
Consegui executar o comando git, mas em algum momento quebrei meu ambiente de desenvolvimento. Acabei com um ambiente de desenvolvimento quebrado, ele mostra minha página inicial de desenvolvimento do Discourse, mas nada parece funcionar (Novo Tópico fica girando).
Qual é a maneira mais fácil de fazer um reset ou uma instalação limpa da minha instalação de desenvolvimento do Discourse?
Tentei executar novamente os comandos de instalação no início deste tópico (ele falha no comando pnpm install). Também tentei executar rake db:drop db:create db:migrate proposto por Arpit anteriormente neste tópico, sem sucesso também.
Consegui atualizar minhas instalações do pnpm e do node executando npm install -g pnpm e brew install node, o que me permitiu executar novamente as instruções de instalação. No entanto, agora estou recebendo o seguinte erro de compilação:
Module not found: Error: Can't resolve '@ember/debug' in '/Users/pieces/discourse/app/assets/javascripts/node_modules/ember-tracked-storage-polyfill/addon/index.js'
Executei bin/ember-cli em uma janela de terminal separada
Executar o passo 6 gera o erro.
Olhando os detalhes do link que você forneceu, parece que os módulos Node gerenciados pelo Yarn não foram convertidos corretamente para pnpm? Fala sobre remover manualmente a pasta ‘node_modules’. No entanto, isso deveria ser resolvido com o novo git pull, certo?
Vale notar que não tenho um sistema macOS para testar isso. Recentemente, atualizei minha instância local do Discourse em um sistema Arch Linux. Eu esperaria que a forma como as dependências do JavaScript são tratadas fosse semelhante em ambos os sistemas.
Não acho que isso esteja correto. O diretório node_modules não é rastreado pelo git. Os módulos node são instalados quando você executa pnpm install.
Não posso garantir que isso esteja correto, mas se eu estivesse recebendo o erro, removeria e reinstalaria as dependências com:
Acabei de remover e reinstalar as dependências, o comando fornecido funcionou bem. Ele remove e instala o pnpm sem erros.
No entanto, quando executo o bin/ember-cli, ele ainda apresenta o mesmo erro.
Existe alguma maneira de remover completamente minha instalação de desenvolvimento do Discourse e fazer um pull limpo do Git e executar a instalação limpa?
Estou totalmente de acordo em perder os dados do meu ambiente de desenvolvimento.
Você pode executar rm -rf ~/discourse para remover completamente o código-fonte do Discourse. Em seguida, siga o guia de instalação a partir do passo “Clonar Discourse”: Install Discourse on macOS for development.
Ótimo! Imagino que o problema estivesse relacionado a ativos em cache que haviam sido compilados anteriormente no diretório /discourse/tmp/cache/assets/sprockets/. Possivelmente o problema poderia ter sido resolvido executando:\n\nrm -rf ~/discourse/tmp/cache/\n\nMas isso é apenas um palpite.
Não estou tendo muita sorte seguindo estas instruções. Elas não fornecem um ambiente de trabalho, pois recebo um erro 500 quando tento instalar qualquer coisa (plugin, tema, componente de tema). Parece que o assistente não está funcionando corretamente. Já instalei umas 10 vezes e desinstalei e reinstalei as dependências. Quando executo o autospec, recebo muitas falhas, mas pouca informação sobre elas. Qualquer ideia é bem-vinda para que eu possa colocar isso para funcionar.
Para quem começou a partir do README de Desenvolvimento do Discourse e veio até aqui – se você está configurando suas dependências pela primeira vez, eu recomendo o PostgreSQL 14+, mesmo que o README diga PostgreSQL 13.
Por quê? Quando você configurar seu banco de dados e executar as migrações, ele falhará ao tentar acessar a extensão pgvector em uma das migrações. E instalar o pgvector para o PostgreSQL 13 é um pouco complicado. Mas se você instalar o PostgreSQL 14 e depois o pgvector, tudo funcionará.
Eu recomendo o Homebrew para ambos:
brew install postgresql@14
brew install pgvector
Além disso! Você receberá um erro na primeira vez que executar o servidor Rails se não tiver o ImageMagick instalado. (Eu sei que diz que é opcional no topo deste guia)