Мои проекты

Commentail 1.0.0 вышел из беты

19 октября я выпустил Commentail 1.0.0 — первую стабильную версию моей библиотеки комментариев для Wagtail. Она прошла проверки и работает на моём сайте. Теперь я готов назвать её полноценным релизом и взять на себя ответственность за дальнейшее развитие.

Коротко

  • В 0.2.0 появились последние комментарии, ещё четыре языка и HTML-письма; оптимизирована работа с базой.
  • Стабильный выпуск сохраняет поведение 0.2.0, проверенной на моём сайте.
  • С 1.0.0 действуют опубликованные правила совместимости API и обновлений.
Синяя птица Commentail на облачке комментария, немного конфетти и крупная надпись Commentail 1.0.0 Stable release.
Commentail 1.0.0 — первая стабильная версия.

В первой статье о 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, что произошло и как это повторить. Следующий этап для меня — развивать библиотеку с учётом опыта людей, которые будут ею пользоваться.

Была ли статья полезна?

Комментарии 0

Имя: до 40 символов.

После отправки мы пришлём письмо со ссылкой для подтверждения email.

Не более 5000 символов.

Опубликованных комментариев пока нет.