Tengo algunos problemas para configurar Discourse para el desarrollo en mi Mac M1.
Los gems fast_xs y gc_tracer fallan al instalarse con errores casi similares. He pegado el mensaje de error de fast_xs a continuación. ¿Alguien podría ayudar?
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```
Pude ejecutar el comando git pero en algún momento rompí mi entorno de desarrollo. Ahora terminé con un entorno de desarrollo roto, muestra mi página de inicio de desarrollo de Discourse pero nada parece funcionar (Nuevo Tema sigue girando).
¿Cuál es la forma más fácil de restablecer o realizar una instalación limpia de mi instalación de desarrollo de Discourse?
Intenté volver a ejecutar los comandos de instalación al principio de este tema (se interrumpe en el comando pnpm install). También intenté ejecutar rake db:drop db:create db:migrate propuesto por Arpit anteriormente en este tema, tampoco tuve éxito.
Pude actualizar mis instalaciones de pnpm y node ejecutando npm install -g pnpm y brew install node, lo que me permitió volver a ejecutar las instrucciones de instalación. Sin embargo, ahora estoy recibiendo el siguiente error de compilación:
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'
Ejecuté bin/ember-cli en una ventana de terminal separada
Al ejecutar el paso 6, aparece el error.
Al revisar los detalles del enlace que proporcionaste, siento que los módulos de Node administrados por Yarn no se convierten correctamente a pnpm. Habla de eliminar manualmente la carpeta ‘node_modules’. Sin embargo, esto debería estar resuelto con el nuevo git pull, ¿verdad?
Por favor, vean el error del paso 6 a continuación.
Vale la pena señalar que no tengo un sistema macOS para probar esto. Sin embargo, recientemente actualicé mi instancia local de Discourse en un sistema Arch Linux. Esperaría que la forma en que se manejan las dependencias de JavaScript sea similar en ambos sistemas.
No creo que eso sea correcto. El directorio node_modules no es rastreado por git. Los módulos de node se instalan cuando ejecutas pnpm install.
No puedo garantizar que esto sea correcto, pero si estuviera recibiendo el error, eliminaría y reinstalaría las dependencias con:
Creo que ember-tracked-storage-polyfill está directamente en discourse/node_modules, pero debería ser seguro ejecutar el comando completo que publiqué anteriormente.
También podrías intentar ejecutar pnpm install con registro detallado si devuelve errores:
Podrías ejecutar rm -rf ~/discourse para eliminar por completo el código fuente de Discourse. Luego, sigue la guía de instalación desde su paso “Clonar Discourse”: Install Discourse on macOS for development.
¡Genial! Supongo que el problema estaba relacionado con activos cacheados que se habían compilado previamente en el directorio /discourse/tmp/cache/assets/sprockets/. Posiblemente el problema se podría haber resuelto ejecutando:
No estoy teniendo mucha suerte siguiendo estas instrucciones. No proporcionan un entorno de trabajo ya que obtengo un error 500 cuando intento instalar cualquier cosa (plugin, tema, componente de tema). Parece que el asistente no está funcionando correctamente. Lo he instalado unas 10 veces y he desinstalado y reinstalado las dependencias. Cuando ejecuto el autospec, obtengo muchos fallos, pero no mucha información sobre ellos. ¡Se aceptan ideas sobre cómo puedo poner esto en funcionamiento, funcionalmente!
Para cualquiera que haya comenzado con el README de desarrollo de Discourse y haya llegado aquí: si está configurando sus dependencias por primera vez, le recomiendo PostgreSQL 14+, aunque dice PostgreSQL 13 en el README.
¿Por qué? Cuando configure su base de datos y ejecute las migraciones, fallará cuando intente acceder a la extensión pgvector en una de las migraciones. E instalar pgvector para PostgreSQL 13 es un poco complicado. Pero si instala PostgreSQL 14 y luego pgvector, todo funcionará.
Recomiendo Homebrew para ambos:
brew install postgresql@14
brew install pgvector
¡Además! Obtendrá un error la primera vez que ejecute el servidor de Rails si no tiene ImageMagick instalado. (Sé que dice que es opcional en la parte superior de esta guía)