На самом деле всё наоборот. Ветки совместимости предназначены только для «выпущенных» веток Discourse. Ветка Discourse latest всегда будет использовать ветку main вашего плагина. Именно там вы будете разрабатывать новые функции.
История будет выглядеть так:
Discourse выпускает v2026.2. GitHub Actions в вашем плагине автоматически обнаруживает это и создаёт ветку d-compat/v2026.2. Теперь любой, кто использует Discourse v2026.2, будет использовать версию вашего плагина d-compat/v2026.2.
Вы выпускаете новую функцию в ветке main вашего плагина. Вам не нужно думать о обратной совместимости, потому что ветка main используется только теми, кто работает с версией Discourse latest.
Затем, пока вы потягиваете свой третий бокал вина
, Discourse выпускает v2026.3. Изначально для этой версии нет ветки плагина, поэтому будет использоваться main. Всё продолжает работать так же, как и для пользователей ветки latest.
В течение нескольких часов ваш GitHub Action обнаруживает новую версию и фиксирует ветку d-compat/v2026.3, готовую к тому, чтобы следующая функция вашего плагина была добавлена в main без необходимости заботиться о обратной совместимости.
По сути, это тот же рабочий процесс, который мы используем в CDCK для обеспечения стабильной совместимости тем и плагинов. После каждого стабильного выпуска у нас есть скрипт, который проходит по сотням наших тем и плагинов и фиксирует их с помощью .discourse-compatibility. Предложенный подход на основе веток направлен на создание более лёгкой версии этого рабочего процесса.