Извините за мета-вопрос о Discourse (игра слов..), но мне обязательно нужно знать: как вам удается с такой уверенностью выпускать десятки обновлений версий каждый день?
Я имею в виду, что код разворачивается в реальном времени в тысячах мест, и риск сломать сайт, на котором может быть несколько сторонних плагинов, тем или компонентов, вполне реален.
У вас, должно быть, невероятный процесс непрерывной интеграции — не могли бы вы поделиться некоторыми советами о том, как вам удается так хорошо тестировать?
Это помогает, что мы сначала разворачиваем все новые изменения в нашем внутреннем сообществе — том, которое мы используем для работы каждый день, а также на meta.discourse.org.
Команда Discourse получает самые новые и блестящие изменения… и баги. Затем вы, ребята с meta, тоже получаете свою долю этого.
Вопреки распространенному мнению, мы не развертываем все изменения постоянно на всех сайтах; мы развертываем сайты на регулярной основе. Вы правы, что поломка сайта — это риск. Нам нужно найти хороший баланс между безопасностью и актуальностью сайтов и тем, чтобы никогда их не обновлять из-за страха поломок.
Что касается тестов, вы можете посмотреть наши репозитории. У нас также есть дополнительные внутренние процессы сборки и тестирования:
- тесты в ядре запускаются при каждом коммите
- тесты в поддерживаемом плагине
- тесты в поддерживаемой теме
Это идеальный сценарий, чтобы сторонний плагин также имел тесты. Также стоит отметить, что мы не поддерживаем их на нашем хостинге из-за невозможности управлять несовместимостью и безопасностью.