Нужен более понятный способ объяснить, на какой ветке работать, зачем и что будет

Мне неизвестно о каком-либо формальном определении термина «verfified».Любое программное обеспечение потенциально может содержать ошибки.

Ветка tests-passed содержит самые актуальные коммиты. Ветка beta получает только бета-релизы. Ветка stable получает только стабильные релизы.

Ветка tests-passed используется практически на всех хостингах discourse.org и на подавляющем большинстве самохостинговых сайтов.

@mcwumbly — есть ли у нас документ «Какую версию мне запускать»? Я немного поискал, но не нашёл. Всё, что я помню, — это что-то вроде этого из анонсов ветки stable.

Вот что написано:

Возможно, это хорошая отправная точка для темы.

Этот пост также процитирован здесь: Is Discourse always in "beta"?

А у нас есть эта тема: Configure a supported tracking branch to get Discourse software updates

Согласен, нам стоит создать более качественную тему, где мы сможем более чётко ссылаться на нашу рекомендацию использовать ветку tests-passed.

Отдельно я немного склоняюсь к тому, чтобы отказаться от термина beta (возможно, я создам по этому поводу новую тему).

Также стоит объяснить разницу между сборками и то, как переключиться на другую сборку, в инструкциях по установке: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. Я быстро просмотрел документацию и не нашёл там упоминания об этом.

Я разделил это (кажется, впервые!), так как этот бедняга всё ещё не может понять, опасно ли обновляться, и обсуждение того, как решить проблему неосведомлённости людей о необходимости обновления, не помогает.

Действительно, Updates always come before release notes - #7 by jomaxro — хорошее начало, а может, и всё, что нужно. Просто дайте ему осмысленный заголовок.

Но подождите!

Возможно, Is Discourse always in "beta"? — это то, что я искал (но забыл, что оно существует).

Другой вопрос, который он задал, с которого всё началось, и который, по-моему, вполне разумный: «Если я нахожусь на последней бета-версии, зачем мне нужно обновляться?» И вышеизложенное довольно прямо отвечает на это.

Ответ удивительно сложен.

Отлично. Моя работа здесь завершена. :supervillain:

Я не думаю, что нам это нужно. Мы хотим, чтобы пользователи находились на ветке tests-passed. Официальные инструкции по установке должны вести к стандартной установке с максимальным количеством настроек, соответствующих нашим требованиям. Это включает в себя отслеживаемую ветку.

Всегда найдутся люди, которые захотят использовать, например, последнюю стабильную версию. Отсутствие руководства о том, как это сделать в наиболее очевидном месте, не заставит их исчезнуть; это лишь создаст для них небольшие неудобства и, скорее всего, приведёт к тому, что они будут приходить сюда с вопросами, а другие пользователи будут вынуждены тратить время на ответы (опять и опять).

Однако более сильным аргументом является то, что руководство может показать, как сделать это правильно, то есть как впоследствии вернуться к предыдущей версии, если пользователь передумает. Если они не знают, как это сделать, они могут случайно сломать свою установку, что создаст неудобства как для них самих, так и для их сообщества.

Если в файле INSTALL-cloud.md будет раздел о смене ветки, это поможет прояснить, какая ветка используется по умолчанию и почему, а также подчеркнёт, что ветка по умолчанию является наиболее распространённой и простой в поддержке.

Я полностью согласен с тем, что на Meta должен быть гид о том, как менять ветки. Однако я не считаю, что это должно быть в официальном руководстве по установке, где 95% пользователей не интересуются этим или не нуждаются в этой информации.

Если «Базовый Боб» пытается установить Discourse, он просто хочет пройти процесс установки как можно быстрее и проще, чтобы начать работу над своим новым сайтом. Информация о смене веток лишь заставит его задуматься и вызовет путаницу.

«Продвинутая Элли», с другой стороны, возможно, заинтересована в понимании того, как работают ветки и какая из них лучше подходит для её сайта. Но она, скорее всего, проводит больше исследований перед установкой Discourse, а не просто следует руководству по установке.

Действительно, в настоящее время мы периодически получаем темы от пользователей, желающих откатиться к бета-версии или стабильной, но это не удаётся.

Размещение этой информации в стандартной документации по установке действительно откроет шлюзы, как из-за вышеупомянутой проблемы, так и из-за проблем совместимости плагинов со старыми выпусками.

Я согласен. В целом мне кажется, что ветка beta скорее путает людей, чем приносит пользу.

Я думаю, что здесь полезно провести различие между вещами, которые вы используете и которые имеют значение внутри вашей организации, и вещами, которые имеют значение для третьих сторон. Ветка beta — хороший пример этого. Хотя она может иметь некоторую внутреннюю полезность, для третьих сторон она мало полезна и иногда их путает.

Мне было бы интересно услышать противоположное мнение, но, подумав об этом сейчас, я не могу вспомнить ни одного серьёзного самохостера, который на самом деле использует beta каким-либо значимым образом. «Простой Боб» на самом деле не знает, что такое ветка, и, вероятно, ему это не важно (и это нормально). «Продвинутая Элли» будет использовать tests-passed, если она индивидуальный пользователь или малый/средний бизнес, и, возможно, stable (или фиксацию коммитов), если она представляет среднее или крупное предприятие.

Мое предложение: оставить все ветки в точности как есть, но публично заявить: «У нас есть две ветки, которые вы можете использовать: tests-passed (по умолчанию и лучшая) и stable (если вы знаете, что делаете, и у вас есть особая потребность)».

С моей стороны, было бы достаточно улучшения, если бы название ветки tests-passed отображалось рядом с именем версии на панели управления.

Полностью согласен. Любой, кто захочет использовать другую ветку, почти всегда сможет её найти.

Если они не могут найти её с помощью существующих ресурсов (поиск, стандартный проект на GitHub), то действительно ли они обладают навыками, необходимыми для полного понимания различий между ветками, не говоря уже о том, чтобы отойти от безопасности ветки по умолчанию?

Конечно, это имеет смысл. Но мне кажется, мы упускаем возможность помочь пользователям понять разницу между различными вариантами. Я не вижу ничего плохого в том, чтобы объяснить владельцам самостоятельных установок, что по умолчанию используется tests-passed, что идеально подходит для большинства сайтов и гарантирует получение последних исправлений безопасности и обновлений. Если вы осторожны в плане рисков, вы можете оставить значение tests-passed и обновляться только тогда, когда об этом будет сообщено в самом программном обеспечении, или через неделю или около того после получения уведомления. Таким образом, другие пользователи сначала обнаружат возможные проблемы, и они будут устранены до вашего обновления.

Исходя из вышесказанного, есть ли у владельцев самостоятельных установок законные причины переключаться с tests-passed? Думаю, это может быть актуально, если ваш сайт сильно модифицирован и обновление ядра Discourse или официальных плагинов приведёт к его поломке, и вы не доверяете себе или своим администраторам в вопросе предотвращения обновлений? Или, возможно, если вы настраиваете среду разработки или тестирования?

Ещё одно место для пояснения — файл app.yml, который в настоящее время довольно запутан, так как в нём упоминается только tests-passed без указания других вариантов или ситуаций, когда может потребоваться переключение на другой.

## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: tests-passed)
#version: tests-passed

На мой взгляд, использование чего-либо, кроме tests-passed, действительно имеет смысл только в том случае, если вы используете управляемый хостинг, либо: 1) у вас есть команда, управляющая вашим сообществом (то есть вы представляете среднее или крупное предприятие); и 2) у вас есть конкретная причина не использовать tests-passed, например, у вас есть множество кастомизаций, которые могут привести к сбоям.

Я бы сказал, что оба условия необходимы, потому что, если у вас нет команды, управляющей вашим сообществом в сценарии с множеством хрупких кастомизаций, то ваша проблема заключается не в выборе ветки, а в общем управлении сайтом (то есть это неустойчиво).

Даже если оба условия выполняются, сначала следует учесть и другие факторы, такие как ваша политика обновлений.

Я думаю, что проблема в том, что если бы вы написали что-то вроде «Вы можете использовать stable или tests-passed», некоторые люди вставили бы туда stable, потому что это звучит «разумно», хотя им, вероятно, не следует его использовать.

Что же насчет beta?

Чтобы еще больше укрепить аргументы против ветки beta, в различных письменных и устных контекстах она вызывает следующие основные заблуждения:

  • Люди обычно ассоциируют термин «бета» с чем-то более передовым, чем «стандарт». В данном случае это не так.

  • Некоторые предприятия рассматривают возможность её использования, потому что она кажется менее передовой, чем tests-passed, и более актуальной, чем stable, то есть, опять же, это кажется «разумным». Но в большинстве случаев это плохая идея.

  • Термин «beta» используется как в номерах версий Discourse, так и в качестве названия ветки Discourse. Я обнаружил, что это сбивает некоторых людей с толку.

“Бета” вероятно отпугивает некоторых людей с базовыми компьютерными навыками, вроде меня — обычно это означает «все еще тестируется на качество», а не «все еще добавляются функции».

Думаю, я имел в виду в основном названия версий, а не название ветки. Я предположил, что нахожусь в ветке «бета» исходя из названий версий (на самом деле нет), пока не проверил сейчас, так что ничего меня не отпугнуло…

Да. Я считаю, что это сбивает с толку (или я понимаю, как это может сбивать с толку): вы находитесь на ветке tests-passed, версия отображается как «beta», но вы можете выполнить обновление и получить новый код, который является той же версией beta, на которой вы уже находитесь. Между выпусками beta-версий проходят недели и сотни коммитов.

Я внес некоторые правки в это руководство, чтобы включить обсуждение и материалы, упомянутые выше: Configure a supported tracking branch to get Discourse software updates