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:
I’m not having much luck following these instructions. They are not providing a working environment as I get a 500 error when I try to install anything (plugin, theme, theme-component). It seems like the wizard is not working properly. I’ve installed about 10 times now and uninstalled and reinstalled the dependencies. When I run the autospec, I get many failures but, not much information about them. Any ideas welcome as to how I can get this thing up and running, functionally.
For anyone who started from the Discourse Development README and came here – if you’re setting up your dependencies for the first time, I’d recommend PostgreSQL 14+, even though it says PostgreSQL 13 in the README.
Why? When you set up your database and run the migrations, it’ll fail when it tries to access the pgvector extension in one of the migrations. And installing pgvector for PostgreSQL 13 is a bit of a pain. But if you install PostgreSQL 14 and then pgvector, it’ll all just work.
I’d recommend Homebrew for both:
brew install postgresql@14
brew install pgvector
Also! You’ll get an error the first time you run the Rails server if you don’t have ImageMagick installed. (I know it says it’s optional at the top of this guide)