Есть ли простой способ изменить версию во время разработки?

Привет!

Я разрабатываю плагин для Discourse для внутренних нужд и также пытаюсь внести вклад в основную разработку.
Стабильная версия плагина использует стабильную версию Discourse, поэтому мне приходится постоянно переключать кодовую базу:

  • использовать ветку main при внесении вкладов в основную разработку;
  • использовать версию, применяемую в нашей производственной среде, при исправлении ошибок в плагине;
  • использовать последнюю версию при добавлении новых функций в плагин.

Каждый раз мне приходится останавливать контейнер разработки (d/shutdown_dev), удалять папки data и tmp, переключаться на нужную версию Discourse, затем пересобирать и перезапускать контейнер (d/boot_dev --init), настраивать первого пользователя и применять нашу конфигурацию (через своего рода автоматизированный скрипт восстановления). Иногда это приходится делать много раз в день.

Есть ли способ сделать этот процесс менее болезненным?

В идеале я бы хотел:

  • иметь возможность настроить контейнер разработки так, чтобы он не запускался автоматически;
  • иметь возможность создавать несколько контейнеров разработки, которые я могу запускать и останавливать по мере необходимости.

Команда d/boot_dev --help показывает аргументы --env и --env-files, но я не смог найти информацию о том, что именно можно настроить с их помощью.

Сталкиваетесь ли вы с подобными проблемами? Как вы решаете их?

Один из способов сделать это — использовать несколько контейнеров: один для stable, другой для main.

Другой вариант: Using dv (Discourse Vibe) to configure Discourse AI in development

Вам не обязательно использовать какие-либо функции ИИ в dv, если вы этого не хотите (хотя, конечно, они могут быть полезны). Но по сути dv позволяет очень быстро запускать несколько контейнеров. Таким образом, вы можете запустить два контейнера параллельно (или больше), по одному для каждой версии или ветки.

Спасибо, я займусь этим.