I’m having some issues with setting up discourse for development on my M1 Mac.
fast_xs and gc_tracer gems fail to install with almost similar errors. I’ve pasted the fast_xs error message below. Could someone help ?
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```
I was able to run the git command but somewhere along the way broke my development environment. I now ended up with a broken dev environment, it shows my Discourse dev homepage but nothing seems to work (New Topic keeps spinning).
What is the easiest way to do a reset or a clean install of my Discourse dev install?
I tried to rerun the install commands at the start of this topic (it breaks on the pnpm install command). I also tried to run rake db:drop db:create db:migrate proposed by Arpit earlier in this topic, no success either.
I was able to update my pnpm and node installs by running npm install -g pnpm and brew install node which allowed me to rerun the install instructions again. However I am now getting the following Build error:
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'
Looking at the details from the link you provided it feels like the Yarn Managed Node modules are not properly converted to pnpm? It talks about manually removing the ‘node_modules’ folder. However, this should be taken care of with the new git pull, right?
Please see below the error from step 6.
I can share the mentioned error log if that will help find the cause.
It’s worth noting that I don’t have a macOS system to test this on. I recently updated my local instance of Discourse on an Arch Linux system though. I’d expect the way that javascript dependencies are handled to be similar on both systems.
I don’t think that is correct. The node_modules directory isn’t tracked by git. The node modules are installed when you run pnpm install.
I can’t guarantee this is correct, but if I was getting the error, I would remove and then reinstall the dependencies with:
You could run rm -rf ~/discourse to completely remove the Discourse source code. Then follow the install guide from its “Clone Discourse” step: Install Discourse on macOS for development.
Great! I’m guessing that the issue was related to cached assets that had previously been complied in the /discourse/tmp/cache/assets/sprockets/ directory. Possibly the issue could have been resolved by running: