
В первой статье о Commentail я рассказал, зачем взялся за библиотеку, что она умеет и что изменилось в 0.1.1. После этого вышла 0.2.0 с новыми возможностями, а затем — стабильная 1.0.0.
Что появилось после 0.1.1
Перед стабильным выпуском, тоже 19 октября, вышла версия 0.2.0. В неё вошло несколько заметных дополнений.
Появился шаблонный тег commentail_recent: теперь последние комментарии можно вывести на главной, в боковой колонке или в другом месте сайта. Разметку вы пишете сами. Можно выбрать сообщения одной страницы, ограничить количество и исключить ответы. Выборка учитывает доступ посетителя к обсуждениям; такой блок нельзя помещать в общий кеш для всех пользователей. Примеры есть в руководстве по последним комментариям.
К русскому и английскому добавились немецкий, французский, испанский и бразильский португальский. Переведены интерфейс, настройки модерации и письма. Сами пользовательские комментарии автоматически не переводятся.
Письма получили HTML-оформление с текстовой альтернативой. В админке настройки комментариев сгруппированы, а при модерации страницу можно выбрать через поиск Wagtail.
Отдельно я поработал с производительностью: сократил повторные запросы, добавил индексы, оптимизировал выборки комментариев, обработку правил и работу почтовой очереди. Проверки включали синтетические наборы со ста тысячами ответов. Условия и результаты опубликованы в отчёте о производительности; скорость на конкретном сайте зависит от его базы, настроек и нагрузки.
Почему я выпустил стабильную версию
В 1.0.0 вошёл тот же код библиотеки, что и в 0.2.0, без дополнительных изменений её работы и миграций. На моём сайте проверки проходила именно 0.2.0. Помимо автоматических тестов я проверял реальные сценарии с гостевыми комментариями, модерацией и письмами в Gmail и Яндексе. Проверялись также обновление и восстановление резервных копий. Объём проверок и замечания описаны в отчёте.
Главное изменение 1.0.0 — опубликованные правила стабильности API и совместимости. Исправления в 1.0.x не предполагают запланированных поломок документированных интеграций, а новые возможности в 1.x должны сохранять обратную совместимость. Для обычного удаления публичного API предусмотрены предупреждения как минимум в двух минорных выпусках и переходный срок не меньше шести месяцев; само удаление — в новой основной версии. Для срочных исправлений безопасности оговорены исключения.
Для меня это важный рубеж: идею отдельной библиотеки я вынашивал около двух лет, возможно, даже дольше. Теперь она работает на моём сайте, а условия её использования и обновления описаны. Я решил, что дальше откладывать стабильный выпуск смысла нет.
Обновление до 1.0.0
Стабильная версия доступна на PyPI. Если вы уже подключили 0.2.0, новых миграций Commentail при переходе на 1.0.0 нет. При обновлении с 0.1.1 или более ранней версии нужно учесть и изменения промежуточных выпусков: в частности, 0.2.0 добавляет индексы базы данных.
Перед обновлением сохраните резервную копию и проверьте переход на тестовой копии сайта. Для большой базы стоит отдельно измерить время создания индексов: эта операция может блокировать запись. Шаги обновления собраны в руководстве.
Если попробуете Commentail, расскажите, как он вписался в ваш сайт и чего вам не хватило. Если найдёте ошибку, напишите в Issues, что произошло и как это повторить. Следующий этап для меня — развивать библиотеку с учётом опыта людей, которые будут ею пользоваться.
Выберите способ входа или оставьте комментарий как гость ниже.