У меня возникли проблемы с настройкой Discourse для разработки на моём Mac с процессором M1.
Гемы fast_xs и gc_tracer не устанавливаются с почти одинаковыми ошибками. Ниже я привёл сообщение об ошибке для fast_xs. Кто-нибудь может помочь?
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```
Мне удалось выполнить команду git, но где-то по пути я сломал своё окружение для разработки. Теперь у меня нерабочее окружение: открывается главная страница Discourse для разработчиков, но ничего не работает (создание новой темы бесконечно крутится).
Как проще всего сбросить или выполнить чистую установку моего окружения разработки Discourse?
Я пытался снова выполнить команды установки в начале этой темы (ошибка возникает на команде pnpm install). Также я пробовал запустить rake db:drop db:create db:migrate, предложенный Арпитом ранее в этой теме, но успеха нет.
Мне удалось обновить установки pnpm и node, выполнив команды npm install -g pnpm и brew install node, что позволило мне снова запустить инструкции по установке. Однако теперь я получаю следующую ошибку сборки:
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'
Судя по деталям из предоставленной вами ссылки, похоже, что управляемые Yarn модули Node не были корректно конвертированы в pnpm? Там говорится о ручном удалении папки ‘node_modules’. Однако это должно было быть исправлено при новом pull-запросе из git, верно?
Стоит отметить, что у меня нет системы macOS для тестирования этого. Однако я недавно обновил локальный экземпляр Discourse на системе Arch Linux. Ожидается, что способ обработки зависимостей JavaScript будет схожим на обеих системах.
Я не думаю, что это верно. Каталог node_modules не отслеживается git. Модули Node устанавливаются при запуске команды pnpm install.
Я не могу гарантировать, что это правильно, но если бы я столкнулся с этой ошибкой, я бы удалил, а затем переустановил зависимости с помощью:
Полагаю, что ember-tracked-storage-polyfill находится непосредственно в discourse/node_modules, но запуск полной команды, которую я привел выше, должен быть безопасным.
Также можно попробовать запустить pnpm install с подробным логированием, если возникают ошибки:
Вы можете выполнить команду rm -rf ~/discourse, чтобы полностью удалить исходный код Discourse. Затем следуйте руководству по установке, начиная с шага «Клонирование Discourse»: Install Discourse on macOS for development.
Отлично! Похоже, проблема была связана с закэшированными ресурсами, которые ранее были скомпилированы в директории /discourse/tmp/cache/assets/sprockets/. Возможно, проблему можно было решить, выполнив:
У меня не очень получается следовать этим инструкциям. Они не создают рабочую среду: при попытке установить что-либо (плагин, тему, компонент темы) я получаю ошибку 500. Похоже, мастер настройки работает некорректно. Я уже установил систему около 10 раз, а также удалял и переустанавливал зависимости. При запуске autospec я получаю множество сбоев, но почти никакой информации о них. Буду рад любым идеям о том, как заставить это работать полноценно.
Для тех, кто начал с README по разработке Discourse и попал сюда: если вы настраиваете зависимости впервые, рекомендую PostgreSQL 14+, хотя в README указано PostgreSQL 13.
Почему? При настройке базы данных и запуске миграций процесс завершится ошибкой при попытке доступа к расширению pgvector в одной из миграций. Установка pgvector для PostgreSQL 13 — это довольно хлопотно. А если установить PostgreSQL 14, а затем pgvector, всё заработает без проблем.
Рекомендую использовать Homebrew для обоих:
brew install postgresql@14
brew install pgvector
Также! При первом запуске сервера Rails вы получите ошибку, если у вас не установлен ImageMagick. (Я знаю, что в начале этого руководства он указан как опциональный)