commentail 0.2.0__tar.gz → 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. {commentail-0.2.0 → commentail-1.0.0}/CHANGELOG.md +11 -0
  2. {commentail-0.2.0/commentail.egg-info → commentail-1.0.0}/PKG-INFO +20 -15
  3. {commentail-0.2.0 → commentail-1.0.0}/README.md +18 -13
  4. {commentail-0.2.0 → commentail-1.0.0}/README.ru.md +17 -12
  5. {commentail-0.2.0 → commentail-1.0.0/commentail.egg-info}/PKG-INFO +20 -15
  6. {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/SOURCES.txt +4 -0
  7. commentail-1.0.0/docs/releases/1.0.0.md +56 -0
  8. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Changelog.md +11 -0
  9. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Example-and-testing.md +40 -3
  10. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Home.md +3 -2
  11. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Installation.md +8 -4
  12. commentail-1.0.0/docs/wiki/Release-1.0.0.md +56 -0
  13. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Roadmap.md +6 -0
  14. commentail-1.0.0/docs/wiki/Stability.md +91 -0
  15. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Support.md +1 -1
  16. commentail-1.0.0/docs/wiki/Template-contract.md +123 -0
  17. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Templates.md +3 -0
  18. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/_Sidebar.md +3 -0
  19. {commentail-0.2.0 → commentail-1.0.0}/pyproject.toml +2 -2
  20. {commentail-0.2.0 → commentail-1.0.0}/LICENSE +0 -0
  21. {commentail-0.2.0 → commentail-1.0.0}/MANIFEST.in +0 -0
  22. {commentail-0.2.0 → commentail-1.0.0}/commentail/__init__.py +0 -0
  23. {commentail-0.2.0 → commentail-1.0.0}/commentail/admin_urls.py +0 -0
  24. {commentail-0.2.0 → commentail-1.0.0}/commentail/admin_views.py +0 -0
  25. {commentail-0.2.0 → commentail-1.0.0}/commentail/admission.py +0 -0
  26. {commentail-0.2.0 → commentail-1.0.0}/commentail/apps.py +0 -0
  27. {commentail-0.2.0 → commentail-1.0.0}/commentail/assets.py +0 -0
  28. {commentail-0.2.0 → commentail-1.0.0}/commentail/avatars.py +0 -0
  29. {commentail-0.2.0 → commentail-1.0.0}/commentail/checks.py +0 -0
  30. {commentail-0.2.0 → commentail-1.0.0}/commentail/config.py +0 -0
  31. {commentail-0.2.0 → commentail-1.0.0}/commentail/detection.py +0 -0
  32. {commentail-0.2.0 → commentail-1.0.0}/commentail/drafts.py +0 -0
  33. {commentail-0.2.0 → commentail-1.0.0}/commentail/forms.py +0 -0
  34. {commentail-0.2.0 → commentail-1.0.0}/commentail/group_permissions.py +0 -0
  35. {commentail-0.2.0 → commentail-1.0.0}/commentail/limits.py +0 -0
  36. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/de/LC_MESSAGES/django.mo +0 -0
  37. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/de/LC_MESSAGES/django.po +0 -0
  38. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/es/LC_MESSAGES/django.mo +0 -0
  39. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/es/LC_MESSAGES/django.po +0 -0
  40. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/fr/LC_MESSAGES/django.mo +0 -0
  41. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/fr/LC_MESSAGES/django.po +0 -0
  42. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  43. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/pt_BR/LC_MESSAGES/django.po +0 -0
  44. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/ru/LC_MESSAGES/django.mo +0 -0
  45. {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/ru/LC_MESSAGES/django.po +0 -0
  46. {commentail-0.2.0 → commentail-1.0.0}/commentail/logging.py +0 -0
  47. {commentail-0.2.0 → commentail-1.0.0}/commentail/management/__init__.py +0 -0
  48. {commentail-0.2.0 → commentail-1.0.0}/commentail/management/commands/__init__.py +0 -0
  49. {commentail-0.2.0 → commentail-1.0.0}/commentail/management/commands/process_commentail.py +0 -0
  50. {commentail-0.2.0 → commentail-1.0.0}/commentail/middleware.py +0 -0
  51. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0001_initial.py +0 -0
  52. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0002_sitegrouppermission_hide_sitegrouppermission_view.py +0 -0
  53. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0003_actiontoken_captchachallenge_guestgrant.py +0 -0
  54. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0004_submissionrecord.py +0 -0
  55. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0005_rateevent.py +0 -0
  56. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0006_alter_comment_guest_name_and_more.py +0 -0
  57. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0007_actiontoken_nonce_replysubscription_mailjob.py +0 -0
  58. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0008_mailjob_revision.py +0 -0
  59. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0009_formticket.py +0 -0
  60. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0010_captchachallenge_backend_and_more.py +0 -0
  61. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0011_discussion_content_type_discussion_object_id_and_more.py +0 -0
  62. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0012_formticket_draft.py +0 -0
  63. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0013_sitecommentsettings_email_enabled.py +0 -0
  64. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0014_reading_indexes.py +0 -0
  65. {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/__init__.py +0 -0
  66. {commentail-0.2.0 → commentail-1.0.0}/commentail/models.py +0 -0
  67. {commentail-0.2.0 → commentail-1.0.0}/commentail/objects.py +0 -0
  68. {commentail-0.2.0 → commentail-1.0.0}/commentail/outbox.py +0 -0
  69. {commentail-0.2.0 → commentail-1.0.0}/commentail/page_integration.py +0 -0
  70. {commentail-0.2.0 → commentail-1.0.0}/commentail/panels.py +0 -0
  71. {commentail-0.2.0 → commentail-1.0.0}/commentail/permissions.py +0 -0
  72. {commentail-0.2.0 → commentail-1.0.0}/commentail/policies.py +0 -0
  73. {commentail-0.2.0 → commentail-1.0.0}/commentail/public.py +0 -0
  74. {commentail-0.2.0 → commentail-1.0.0}/commentail/recent.py +0 -0
  75. {commentail-0.2.0 → commentail-1.0.0}/commentail/rules_csv.py +0 -0
  76. {commentail-0.2.0 → commentail-1.0.0}/commentail/security.py +0 -0
  77. {commentail-0.2.0 → commentail-1.0.0}/commentail/services.py +0 -0
  78. {commentail-0.2.0 → commentail-1.0.0}/commentail/signals.py +0 -0
  79. {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/admin.css +0 -0
  80. {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/admin.js +0 -0
  81. {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/commentail.css +0 -0
  82. {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/commentail.js +0 -0
  83. {commentail-0.2.0 → commentail-1.0.0}/commentail/structured.py +0 -0
  84. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/action.html +0 -0
  85. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/detail.html +0 -0
  86. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/form.html +0 -0
  87. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/group_permission_row.html +0 -0
  88. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/group_permissions.html +0 -0
  89. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/list.html +0 -0
  90. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/mail.html +0 -0
  91. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/objects.html +0 -0
  92. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/page_panel.html +0 -0
  93. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/rules.html +0 -0
  94. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/rules_import.html +0 -0
  95. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/base.html +0 -0
  96. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/block.html +0 -0
  97. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/captcha.html +0 -0
  98. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/comment.html +0 -0
  99. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/edit-form.html +0 -0
  100. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/base.html +0 -0
  101. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/button.html +0 -0
  102. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/confirm.html +0 -0
  103. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/confirm.txt +0 -0
  104. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/confirm_subject.txt +0 -0
  105. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/edit.html +0 -0
  106. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/edit.txt +0 -0
  107. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/edit_subject.txt +0 -0
  108. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/published.html +0 -0
  109. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/published.txt +0 -0
  110. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/published_subject.txt +0 -0
  111. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/rejected.html +0 -0
  112. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/rejected.txt +0 -0
  113. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/rejected_subject.txt +0 -0
  114. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/reply.html +0 -0
  115. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/reply.txt +0 -0
  116. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/reply_subject.txt +0 -0
  117. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/form.html +0 -0
  118. {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/replies.html +0 -0
  119. {commentail-0.2.0 → commentail-1.0.0}/commentail/templatetags/__init__.py +0 -0
  120. {commentail-0.2.0 → commentail-1.0.0}/commentail/templatetags/commentail_tags.py +0 -0
  121. {commentail-0.2.0 → commentail-1.0.0}/commentail/text.py +0 -0
  122. {commentail-0.2.0 → commentail-1.0.0}/commentail/urls.py +0 -0
  123. {commentail-0.2.0 → commentail-1.0.0}/commentail/views.py +0 -0
  124. {commentail-0.2.0 → commentail-1.0.0}/commentail/wagtail_hooks.py +0 -0
  125. {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/dependency_links.txt +0 -0
  126. {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/requires.txt +0 -0
  127. {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/top_level.txt +0 -0
  128. {commentail-0.2.0 → commentail-1.0.0}/docs/assets/commentail-preview.png +0 -0
  129. {commentail-0.2.0 → commentail-1.0.0}/docs/assets/support-qr.png +0 -0
  130. {commentail-0.2.0 → commentail-1.0.0}/docs/releases/0.1.0.md +0 -0
  131. {commentail-0.2.0 → commentail-1.0.0}/docs/releases/0.1.1.md +0 -0
  132. {commentail-0.2.0 → commentail-1.0.0}/docs/releases/0.2.0.md +0 -0
  133. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Callbacks.md +0 -0
  134. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Configuration.md +0 -0
  135. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Deployment.md +0 -0
  136. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Email-and-worker.md +0 -0
  137. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Guest-comments.md +0 -0
  138. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Moderation.md +0 -0
  139. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Object-adapters.md +0 -0
  140. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Performance.md +0 -0
  141. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Recent-comments.md +0 -0
  142. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Release-0.1.0.md +0 -0
  143. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Release-0.1.1.md +0 -0
  144. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Release-0.2.0.md +0 -0
  145. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Replies-and-editing.md +0 -0
  146. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Rules-and-CSV.md +0 -0
  147. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Security-and-privacy.md +0 -0
  148. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Structured-data.md +0 -0
  149. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Styling.md +0 -0
  150. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Troubleshooting.md +0 -0
  151. {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/_Footer.md +0 -0
  152. {commentail-0.2.0 → commentail-1.0.0}/example/README.md +0 -0
  153. {commentail-0.2.0 → commentail-1.0.0}/example/demo/__init__.py +0 -0
  154. {commentail-0.2.0 → commentail-1.0.0}/example/demo/settings.py +0 -0
  155. {commentail-0.2.0 → commentail-1.0.0}/example/demo/urls.py +0 -0
  156. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/__init__.py +0 -0
  157. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/comments.py +0 -0
  158. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/management/__init__.py +0 -0
  159. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/management/commands/__init__.py +0 -0
  160. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/management/commands/bootstrap_demo.py +0 -0
  161. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/migrations/0001_initial.py +0 -0
  162. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/migrations/0002_product.py +0 -0
  163. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/migrations/__init__.py +0 -0
  164. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/models.py +0 -0
  165. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/templates/demo_home/home_page.html +0 -0
  166. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/templates/demo_home/product.html +0 -0
  167. {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/views.py +0 -0
  168. {commentail-0.2.0 → commentail-1.0.0}/example/manage.py +0 -0
  169. {commentail-0.2.0 → commentail-1.0.0}/requirements-test-common.txt +0 -0
  170. {commentail-0.2.0 → commentail-1.0.0}/requirements-test.txt +0 -0
  171. {commentail-0.2.0 → commentail-1.0.0}/setup.cfg +0 -0
  172. {commentail-0.2.0 → commentail-1.0.0}/tests/__init__.py +0 -0
  173. {commentail-0.2.0 → commentail-1.0.0}/tests/settings.py +0 -0
  174. {commentail-0.2.0 → commentail-1.0.0}/tests/targets/__init__.py +0 -0
  175. {commentail-0.2.0 → commentail-1.0.0}/tests/targets/apps.py +0 -0
  176. {commentail-0.2.0 → commentail-1.0.0}/tests/targets/migrations/0001_initial.py +0 -0
  177. {commentail-0.2.0 → commentail-1.0.0}/tests/targets/migrations/__init__.py +0 -0
  178. {commentail-0.2.0 → commentail-1.0.0}/tests/targets/models.py +0 -0
  179. {commentail-0.2.0 → commentail-1.0.0}/tests/templates/wagtailcore/page.html +0 -0
  180. {commentail-0.2.0 → commentail-1.0.0}/tests/test_actions.py +0 -0
  181. {commentail-0.2.0 → commentail-1.0.0}/tests/test_admin.js +0 -0
  182. {commentail-0.2.0 → commentail-1.0.0}/tests/test_admin_ui.py +0 -0
  183. {commentail-0.2.0 → commentail-1.0.0}/tests/test_admission.py +0 -0
  184. {commentail-0.2.0 → commentail-1.0.0}/tests/test_avatars.py +0 -0
  185. {commentail-0.2.0 → commentail-1.0.0}/tests/test_capability_access.py +0 -0
  186. {commentail-0.2.0 → commentail-1.0.0}/tests/test_captcha_backend.py +0 -0
  187. {commentail-0.2.0 → commentail-1.0.0}/tests/test_cleanup.py +0 -0
  188. {commentail-0.2.0 → commentail-1.0.0}/tests/test_concurrency.py +0 -0
  189. {commentail-0.2.0 → commentail-1.0.0}/tests/test_detection.py +0 -0
  190. {commentail-0.2.0 → commentail-1.0.0}/tests/test_email_presentation.py +0 -0
  191. {commentail-0.2.0 → commentail-1.0.0}/tests/test_extension_contracts.py +0 -0
  192. {commentail-0.2.0 → commentail-1.0.0}/tests/test_group_panel.py +0 -0
  193. {commentail-0.2.0 → commentail-1.0.0}/tests/test_inline_edit.py +0 -0
  194. {commentail-0.2.0 → commentail-1.0.0}/tests/test_lifecycle.py +0 -0
  195. {commentail-0.2.0 → commentail-1.0.0}/tests/test_localization.py +0 -0
  196. {commentail-0.2.0 → commentail-1.0.0}/tests/test_mail_admin.py +0 -0
  197. {commentail-0.2.0 → commentail-1.0.0}/tests/test_name_limit.js +0 -0
  198. {commentail-0.2.0 → commentail-1.0.0}/tests/test_notifications.py +0 -0
  199. {commentail-0.2.0 → commentail-1.0.0}/tests/test_object_adapters.py +0 -0
  200. {commentail-0.2.0 → commentail-1.0.0}/tests/test_outbox.py +0 -0
  201. {commentail-0.2.0 → commentail-1.0.0}/tests/test_performance.py +0 -0
  202. {commentail-0.2.0 → commentail-1.0.0}/tests/test_presentation_contracts.py +0 -0
  203. {commentail-0.2.0 → commentail-1.0.0}/tests/test_progressive.js +0 -0
  204. {commentail-0.2.0 → commentail-1.0.0}/tests/test_public_ui.py +0 -0
  205. {commentail-0.2.0 → commentail-1.0.0}/tests/test_rate_limits.py +0 -0
  206. {commentail-0.2.0 → commentail-1.0.0}/tests/test_recent_comments.py +0 -0
  207. {commentail-0.2.0 → commentail-1.0.0}/tests/test_release_gaps.py +0 -0
  208. {commentail-0.2.0 → commentail-1.0.0}/tests/test_reply.js +0 -0
  209. {commentail-0.2.0 → commentail-1.0.0}/tests/test_rules_admin.py +0 -0
  210. {commentail-0.2.0 → commentail-1.0.0}/tests/test_rules_csv.py +0 -0
  211. {commentail-0.2.0 → commentail-1.0.0}/tests/test_security.py +0 -0
  212. {commentail-0.2.0 → commentail-1.0.0}/tests/test_smtp_chain.py +0 -0
  213. {commentail-0.2.0 → commentail-1.0.0}/tests/test_structured_data.py +0 -0
  214. {commentail-0.2.0 → commentail-1.0.0}/tests/test_submission.py +0 -0
  215. {commentail-0.2.0 → commentail-1.0.0}/tests/test_transaction_contracts.py +0 -0
  216. {commentail-0.2.0 → commentail-1.0.0}/tests/urls.py +0 -0
  217. {commentail-0.2.0 → commentail-1.0.0}/tests/urls_custom_prefix.py +0 -0
  218. {commentail-0.2.0 → commentail-1.0.0}/tools/benchmark_performance.py +0 -0
  219. {commentail-0.2.0 → commentail-1.0.0}/tools/check_dist.py +0 -0
  220. {commentail-0.2.0 → commentail-1.0.0}/tools/check_translations.py +0 -0
@@ -3,6 +3,16 @@
3
3
  Each release records changes relative to the previous version. Upgrade notes
4
4
  describe changes that an existing installation needs to review.
5
5
 
6
+ ## [1.0.0] — 2026-10-19 · Stable
7
+
8
+ The feature set is frozen at 0.2.0 Beta. This release introduces the documented
9
+ stable API and compatibility policy; runtime, dependencies and migration files
10
+ are unchanged from 0.2.0. Live-site verification of published 0.2.0 is recorded
11
+ in the [verification guide](docs/wiki/Example-and-testing.md#reported-live-site-verification-020).
12
+ The documented integration surface now follows semantic versioning and the
13
+ stated deprecation policy. Direct upgrade and backup-restoration rehearsals
14
+ cover 0.1.0 and 0.2.0 on SQLite and PostgreSQL 16.
15
+
6
16
  ## [0.2.0] — 2026-10-19 · Beta
7
17
 
8
18
  Changes from **0.1.1 → 0.2.0**.
@@ -113,4 +123,5 @@ See [0.1.0 release notes](docs/releases/0.1.0.md).
113
123
  [0.1.1]: https://github.com/hardcodd/Commentail/compare/v0.1.0...v0.1.1
114
124
  [0.1.0]: https://github.com/hardcodd/Commentail/releases/tag/v0.1.0
115
125
 
126
+ [1.0.0]: https://github.com/hardcodd/Commentail/compare/v0.2.0...v1.0.0
116
127
  [0.2.0]: https://github.com/hardcodd/Commentail/compare/v0.1.1...v0.2.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commentail
3
- Version: 0.2.0
3
+ Version: 1.0.0
4
4
  Summary: Self-hosted Wagtail comments with moderation, verified guests and threaded replies
5
5
  License-Expression: MIT
6
6
  Project-URL: Source, https://github.com/hardcodd/Commentail
@@ -8,7 +8,7 @@ Project-URL: Issues, https://github.com/hardcodd/Commentail/issues
8
8
  Project-URL: Documentation, https://github.com/hardcodd/Commentail/wiki
9
9
  Project-URL: Changelog, https://github.com/hardcodd/Commentail/blob/main/CHANGELOG.md
10
10
  Project-URL: Funding, https://pay.cloudtips.ru/p/f92ee349
11
- Classifier: Development Status :: 4 - Beta
11
+ Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Framework :: Django :: 5.2
13
13
  Classifier: Framework :: Django :: 6.0
14
14
  Classifier: Framework :: Django :: 6.1
@@ -34,6 +34,8 @@ Dynamic: license-file
34
34
 
35
35
  Moderated discussions, verified guests and inline replies — styled by your site.
36
36
 
37
+ **Current release: [1.0.0](https://github.com/hardcodd/Commentail/releases/tag/v1.0.0)** · [PyPI](https://pypi.org/project/commentail/1.0.0/)
38
+
37
39
  [![Tests and distributions](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
38
40
  [![Django Packages · Commentail](https://img.shields.io/badge/Django%20Packages-Commentail-0C4B33.svg)](https://djangopackages.org/packages/p/commentail/)
39
41
 
@@ -53,10 +55,10 @@ The widget inherits your site's typography and colors. CSS custom properties,
53
55
  replaceable templates and Python callbacks let you adapt it without a frontend
54
56
  framework or an external comments platform.
55
57
 
56
- > **0.2.0 Beta** adds recent comments, six languages,
57
- > HTML emails and indexed database reads.
58
+ > **1.0.0** starts the stable API and compatibility policy with the
59
+ > feature set of 0.2.0 Beta, including recent comments, six languages and HTML emails.
58
60
  > [Version-to-version changelog](https://github.com/hardcodd/Commentail/blob/main/CHANGELOG.md) · [Roadmap](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Roadmap.md).
59
- > [Changes and upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md).
61
+ > [Changes and upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md).
60
62
 
61
63
  ## Why Commentail?
62
64
 
@@ -76,6 +78,8 @@ Published comments include **Schema.org Comment microdata and JSON-LD**, using
76
78
  the visible text and author name. Choose either format or disable output in Python.
77
79
  [Structured-data guide →](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Structured-data.md)
78
80
 
81
+ From **1.0.0**, documented integration contracts follow the [stable API and compatibility policy](docs/wiki/Stability.md).
82
+
79
83
  ## Compatibility
80
84
 
81
85
  | Component | Version / requirement |
@@ -87,7 +91,7 @@ the visible text and author name. Choose either format or disable output in Pyth
87
91
  | Frontend | Django templates, optional progressive JavaScript |
88
92
  | License | [MIT](https://github.com/hardcodd/Commentail/blob/main/LICENSE) |
89
93
 
90
- This table describes the 0.2.0 Beta release. CI defines all five framework
94
+ This table describes the 1.0.0 release. CI defines all five framework
91
95
  pairs on Python 3.12, 3.13 and 3.14 with both databases (30 combinations).
92
96
  Package bounds are `Wagtail>=7.4.3,<8.1` and `Django>=5.2,<6.2`; only the pairs
93
97
  listed above are supported. Wagtail 7.4 with Django 6.1 is outside this matrix.
@@ -114,15 +118,15 @@ Documentation remains in English and Russian.
114
118
  In your site's virtual environment, install the release:
115
119
 
116
120
  ```sh
117
- python -m pip install commentail==0.2.0
121
+ python -m pip install commentail==1.0.0
118
122
  ```
119
123
 
120
124
  For the optional PostgreSQL driver, use
121
- `python -m pip install 'commentail[postgres]==0.2.0'`.
125
+ `python -m pip install 'commentail[postgres]==1.0.0'`.
122
126
  You can also extract the source distribution and run `python -m pip install .` in its root.
123
- When upgrading from 0.1.1, review the
124
- [upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md),
125
- including migration `0014_reading_indexes` and email overrides. For older
127
+ When upgrading, review the
128
+ [upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md),
129
+ including the 0.2.0 index migration and email overrides when coming from 0.1.1. For older
126
130
  installations, also review the [0.1.1 notes](docs/releases/0.1.1.md). The 0.1.0 package retains
127
131
  its original Wagtail 7.4 and Django 5.2 limits.
128
132
 
@@ -222,7 +226,7 @@ cover the same topics. Start with the task you need:
222
226
 
223
227
  ## Release scope and verification
224
228
 
225
- [0.2.0 Beta release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md) describe the changes and upgrade steps;
229
+ [1.0.0 release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md) describe the changes and upgrade steps;
226
230
  [0.1.0 release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.1.0.md) preserve the initial release contract.
227
231
  The source distribution includes the runnable Wagtail example, tests and
228
232
  guides; the wheel includes the runtime, translations, templates and static assets.
@@ -230,11 +234,12 @@ guides; the wheel includes the runtime, translations, templates and static asset
230
234
  The CI workflow defines 30 framework/Python/database combinations, JavaScript, lint, migration drift,
231
235
  translations and source/wheel installation. Browser checks covered installed Safari,
232
236
  Chrome, Yandex Browser and Firefox with and without JS, plus selected VoiceOver
233
- scenarios and a phone. Previous major browser versions remain unverified; this is
234
- not an exhaustive accessibility or device certification.
237
+ scenarios and a phone. Historical checks also covered Chrome 142 on macOS and Windows ARM64 and Firefox
238
+ 140 ESR on Windows ARM64; Chrome x64 used Windows emulation. This is not an
239
+ exhaustive accessibility or device certification.
235
240
 
236
241
  There is no separate REST API, rich-text editor, uploads, likes, reports or live
237
- updates in 0.2.0. SMTP retries can duplicate mail after an uncertain delivery result.
242
+ updates in 1.0.0. SMTP retries can duplicate mail after an uncertain delivery result.
238
243
  Host-specific themes, access rules and email delivery need their own acceptance checks.
239
244
 
240
245
  ## Support Commentail
@@ -6,6 +6,8 @@
6
6
 
7
7
  Moderated discussions, verified guests and inline replies — styled by your site.
8
8
 
9
+ **Current release: [1.0.0](https://github.com/hardcodd/Commentail/releases/tag/v1.0.0)** · [PyPI](https://pypi.org/project/commentail/1.0.0/)
10
+
9
11
  [![Tests and distributions](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
10
12
  [![Django Packages · Commentail](https://img.shields.io/badge/Django%20Packages-Commentail-0C4B33.svg)](https://djangopackages.org/packages/p/commentail/)
11
13
 
@@ -25,10 +27,10 @@ The widget inherits your site's typography and colors. CSS custom properties,
25
27
  replaceable templates and Python callbacks let you adapt it without a frontend
26
28
  framework or an external comments platform.
27
29
 
28
- > **0.2.0 Beta** adds recent comments, six languages,
29
- > HTML emails and indexed database reads.
30
+ > **1.0.0** starts the stable API and compatibility policy with the
31
+ > feature set of 0.2.0 Beta, including recent comments, six languages and HTML emails.
30
32
  > [Version-to-version changelog](https://github.com/hardcodd/Commentail/blob/main/CHANGELOG.md) · [Roadmap](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Roadmap.md).
31
- > [Changes and upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md).
33
+ > [Changes and upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md).
32
34
 
33
35
  ## Why Commentail?
34
36
 
@@ -48,6 +50,8 @@ Published comments include **Schema.org Comment microdata and JSON-LD**, using
48
50
  the visible text and author name. Choose either format or disable output in Python.
49
51
  [Structured-data guide →](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Structured-data.md)
50
52
 
53
+ From **1.0.0**, documented integration contracts follow the [stable API and compatibility policy](docs/wiki/Stability.md).
54
+
51
55
  ## Compatibility
52
56
 
53
57
  | Component | Version / requirement |
@@ -59,7 +63,7 @@ the visible text and author name. Choose either format or disable output in Pyth
59
63
  | Frontend | Django templates, optional progressive JavaScript |
60
64
  | License | [MIT](https://github.com/hardcodd/Commentail/blob/main/LICENSE) |
61
65
 
62
- This table describes the 0.2.0 Beta release. CI defines all five framework
66
+ This table describes the 1.0.0 release. CI defines all five framework
63
67
  pairs on Python 3.12, 3.13 and 3.14 with both databases (30 combinations).
64
68
  Package bounds are `Wagtail>=7.4.3,<8.1` and `Django>=5.2,<6.2`; only the pairs
65
69
  listed above are supported. Wagtail 7.4 with Django 6.1 is outside this matrix.
@@ -86,15 +90,15 @@ Documentation remains in English and Russian.
86
90
  In your site's virtual environment, install the release:
87
91
 
88
92
  ```sh
89
- python -m pip install commentail==0.2.0
93
+ python -m pip install commentail==1.0.0
90
94
  ```
91
95
 
92
96
  For the optional PostgreSQL driver, use
93
- `python -m pip install 'commentail[postgres]==0.2.0'`.
97
+ `python -m pip install 'commentail[postgres]==1.0.0'`.
94
98
  You can also extract the source distribution and run `python -m pip install .` in its root.
95
- When upgrading from 0.1.1, review the
96
- [upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md),
97
- including migration `0014_reading_indexes` and email overrides. For older
99
+ When upgrading, review the
100
+ [upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md),
101
+ including the 0.2.0 index migration and email overrides when coming from 0.1.1. For older
98
102
  installations, also review the [0.1.1 notes](docs/releases/0.1.1.md). The 0.1.0 package retains
99
103
  its original Wagtail 7.4 and Django 5.2 limits.
100
104
 
@@ -194,7 +198,7 @@ cover the same topics. Start with the task you need:
194
198
 
195
199
  ## Release scope and verification
196
200
 
197
- [0.2.0 Beta release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md) describe the changes and upgrade steps;
201
+ [1.0.0 release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md) describe the changes and upgrade steps;
198
202
  [0.1.0 release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.1.0.md) preserve the initial release contract.
199
203
  The source distribution includes the runnable Wagtail example, tests and
200
204
  guides; the wheel includes the runtime, translations, templates and static assets.
@@ -202,11 +206,12 @@ guides; the wheel includes the runtime, translations, templates and static asset
202
206
  The CI workflow defines 30 framework/Python/database combinations, JavaScript, lint, migration drift,
203
207
  translations and source/wheel installation. Browser checks covered installed Safari,
204
208
  Chrome, Yandex Browser and Firefox with and without JS, plus selected VoiceOver
205
- scenarios and a phone. Previous major browser versions remain unverified; this is
206
- not an exhaustive accessibility or device certification.
209
+ scenarios and a phone. Historical checks also covered Chrome 142 on macOS and Windows ARM64 and Firefox
210
+ 140 ESR on Windows ARM64; Chrome x64 used Windows emulation. This is not an
211
+ exhaustive accessibility or device certification.
207
212
 
208
213
  There is no separate REST API, rich-text editor, uploads, likes, reports or live
209
- updates in 0.2.0. SMTP retries can duplicate mail after an uncertain delivery result.
214
+ updates in 1.0.0. SMTP retries can duplicate mail after an uncertain delivery result.
210
215
  Host-specific themes, access rules and email delivery need their own acceptance checks.
211
216
 
212
217
  ## Support Commentail
@@ -6,6 +6,8 @@
6
6
 
7
7
  Модерация обсуждений, подтверждённые гости и ответы рядом с комментарием — в стиле вашего сайта.
8
8
 
9
+ **Текущая версия: [1.0.0](https://github.com/hardcodd/Commentail/releases/tag/v1.0.0)** · [PyPI](https://pypi.org/project/commentail/1.0.0/)
10
+
9
11
  [![Tests and distributions](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
10
12
  [![Django Packages · Commentail](https://img.shields.io/badge/Django%20Packages-Commentail-0C4B33.svg)](https://djangopackages.org/packages/p/commentail/)
11
13
 
@@ -25,10 +27,10 @@ Commentail — библиотека комментариев Django для **Wag
25
27
  Python callbacks позволяют адаптировать его без фронтенд-фреймворка или
26
28
  внешней платформы комментариев.
27
29
 
28
- > **0.2.0 Beta:** последние комментарии,
29
- > шесть языков, HTML-письма и оптимизация запросов с новыми индексами.
30
+ > **1.0.0:** стабильный контракт API и правила совместимости с составом
31
+ > 0.2.0 Beta: последние комментарии, шесть языков и HTML-письма.
30
32
  > [Изменения между версиями](https://github.com/hardcodd/Commentail/blob/main/CHANGELOG.md) · [Планы развития](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Roadmap.md).
31
- > [Изменения и обновление](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md).
33
+ > [Изменения и обновление](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md).
32
34
 
33
35
  ## Зачем Commentail?
34
36
 
@@ -50,6 +52,8 @@ Python callbacks позволяют адаптировать его без фр
50
52
  отключить вывод.
51
53
  [Руководство по структурированным данным →](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Structured-data.md)
52
54
 
55
+ Начиная с **1.0.0**, документированные контракты интеграции подчиняются [правилам стабильного API и совместимости](docs/wiki/Stability.md).
56
+
53
57
  ## Совместимость
54
58
 
55
59
  | Компонент | Версия / требование |
@@ -61,7 +65,7 @@ Python callbacks позволяют адаптировать его без фр
61
65
  | Фронтенд | Шаблоны Django, необязательный JavaScript для постепенного улучшения интерфейса |
62
66
  | Лицензия | [MIT](https://github.com/hardcodd/Commentail/blob/main/LICENSE) |
63
67
 
64
- Таблица описывает выпуск 0.2.0 Beta. CI определяет все пять пар фреймворков
68
+ Таблица описывает выпуск 1.0.0. CI определяет все пять пар фреймворков
65
69
  на Python 3.12, 3.13 и 3.14 с обеими базами данных — всего 30 сочетаний.
66
70
  Границы зависимостей пакета: `Wagtail>=7.4.3,<8.1` и `Django>=5.2,<6.2`;
67
71
  поддерживаются только перечисленные пары. Wagtail 7.4 с Django 6.1 не входит
@@ -89,15 +93,15 @@ Python callbacks позволяют адаптировать его без фр
89
93
  В виртуальном окружении сайта установите выпуск:
90
94
 
91
95
  ```sh
92
- python -m pip install commentail==0.2.0
96
+ python -m pip install commentail==1.0.0
93
97
  ```
94
98
 
95
99
  Для необязательного драйвера PostgreSQL используйте
96
- `python -m pip install 'commentail[postgres]==0.2.0'`.
100
+ `python -m pip install 'commentail[postgres]==1.0.0'`.
97
101
  Также можно распаковать исходный архив и выполнить `python -m pip install .` в его корне.
98
- При обновлении с 0.1.1 прочитайте
99
- [инструкцию по обновлению](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md),
100
- включая миграцию `0014_reading_indexes` и переопределения писем. Для более старых
102
+ При обновлении прочитайте
103
+ [инструкцию по обновлению](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md),
104
+ включая миграцию индексов 0.2.0 и переопределения писем при переходе с 0.1.1. Для более старых
101
105
  установок также прочитайте [примечания к 0.1.1](docs/releases/0.1.1.md). Пакет 0.1.0 сохраняет
102
106
  исходные ограничения Wagtail 7.4 и Django 5.2.
103
107
 
@@ -202,7 +206,7 @@ Django через `OBJECT_ADAPTERS`. Технические настройки
202
206
 
203
207
  ## Границы выпуска и проверок
204
208
 
205
- [Примечания к выпуску 0.2.0 Beta](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md)
209
+ [Примечания к выпуску 1.0.0](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md)
206
210
  описывают изменения и обновление;
207
211
  [примечания к 0.1.0](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.1.0.md)
208
212
  сохраняют исходный контракт выпуска. Архив исходников включает запускаемый
@@ -213,10 +217,11 @@ CI определяет 30 сочетаний фреймворков, Python и
213
217
  линтеров, изменений моделей без миграций, переводов и установки из исходников/wheel.
214
218
  Браузерные проверки охватили установленные Safari, Chrome, Яндекс Браузер и
215
219
  Firefox с JavaScript и без него, отдельные сценарии VoiceOver и телефон.
216
- Предыдущие основные версии браузеров не проверены; это не исчерпывающая
220
+ Дополнительно проверены Chrome 142 на macOS и Windows ARM64 и Firefox 140 ESR
221
+ на Windows ARM64; Chrome x64 работал через эмуляцию Windows. Это не исчерпывающая
217
222
  сертификация доступности или устройств.
218
223
 
219
- В 0.2.0 нет отдельного REST API, редактора форматированного текста, загрузки
224
+ В 1.0.0 нет отдельного REST API, редактора форматированного текста, загрузки
220
225
  файлов, лайков, жалоб и обновлений в реальном времени. Повторные попытки SMTP
221
226
  могут дублировать письма после неопределённого результата доставки. Темы сайта,
222
227
  правила доступа и доставка почты требуют собственной приёмки.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commentail
3
- Version: 0.2.0
3
+ Version: 1.0.0
4
4
  Summary: Self-hosted Wagtail comments with moderation, verified guests and threaded replies
5
5
  License-Expression: MIT
6
6
  Project-URL: Source, https://github.com/hardcodd/Commentail
@@ -8,7 +8,7 @@ Project-URL: Issues, https://github.com/hardcodd/Commentail/issues
8
8
  Project-URL: Documentation, https://github.com/hardcodd/Commentail/wiki
9
9
  Project-URL: Changelog, https://github.com/hardcodd/Commentail/blob/main/CHANGELOG.md
10
10
  Project-URL: Funding, https://pay.cloudtips.ru/p/f92ee349
11
- Classifier: Development Status :: 4 - Beta
11
+ Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Framework :: Django :: 5.2
13
13
  Classifier: Framework :: Django :: 6.0
14
14
  Classifier: Framework :: Django :: 6.1
@@ -34,6 +34,8 @@ Dynamic: license-file
34
34
 
35
35
  Moderated discussions, verified guests and inline replies — styled by your site.
36
36
 
37
+ **Current release: [1.0.0](https://github.com/hardcodd/Commentail/releases/tag/v1.0.0)** · [PyPI](https://pypi.org/project/commentail/1.0.0/)
38
+
37
39
  [![Tests and distributions](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
38
40
  [![Django Packages · Commentail](https://img.shields.io/badge/Django%20Packages-Commentail-0C4B33.svg)](https://djangopackages.org/packages/p/commentail/)
39
41
 
@@ -53,10 +55,10 @@ The widget inherits your site's typography and colors. CSS custom properties,
53
55
  replaceable templates and Python callbacks let you adapt it without a frontend
54
56
  framework or an external comments platform.
55
57
 
56
- > **0.2.0 Beta** adds recent comments, six languages,
57
- > HTML emails and indexed database reads.
58
+ > **1.0.0** starts the stable API and compatibility policy with the
59
+ > feature set of 0.2.0 Beta, including recent comments, six languages and HTML emails.
58
60
  > [Version-to-version changelog](https://github.com/hardcodd/Commentail/blob/main/CHANGELOG.md) · [Roadmap](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Roadmap.md).
59
- > [Changes and upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md).
61
+ > [Changes and upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md).
60
62
 
61
63
  ## Why Commentail?
62
64
 
@@ -76,6 +78,8 @@ Published comments include **Schema.org Comment microdata and JSON-LD**, using
76
78
  the visible text and author name. Choose either format or disable output in Python.
77
79
  [Structured-data guide →](https://github.com/hardcodd/Commentail/blob/main/docs/wiki/Structured-data.md)
78
80
 
81
+ From **1.0.0**, documented integration contracts follow the [stable API and compatibility policy](docs/wiki/Stability.md).
82
+
79
83
  ## Compatibility
80
84
 
81
85
  | Component | Version / requirement |
@@ -87,7 +91,7 @@ the visible text and author name. Choose either format or disable output in Pyth
87
91
  | Frontend | Django templates, optional progressive JavaScript |
88
92
  | License | [MIT](https://github.com/hardcodd/Commentail/blob/main/LICENSE) |
89
93
 
90
- This table describes the 0.2.0 Beta release. CI defines all five framework
94
+ This table describes the 1.0.0 release. CI defines all five framework
91
95
  pairs on Python 3.12, 3.13 and 3.14 with both databases (30 combinations).
92
96
  Package bounds are `Wagtail>=7.4.3,<8.1` and `Django>=5.2,<6.2`; only the pairs
93
97
  listed above are supported. Wagtail 7.4 with Django 6.1 is outside this matrix.
@@ -114,15 +118,15 @@ Documentation remains in English and Russian.
114
118
  In your site's virtual environment, install the release:
115
119
 
116
120
  ```sh
117
- python -m pip install commentail==0.2.0
121
+ python -m pip install commentail==1.0.0
118
122
  ```
119
123
 
120
124
  For the optional PostgreSQL driver, use
121
- `python -m pip install 'commentail[postgres]==0.2.0'`.
125
+ `python -m pip install 'commentail[postgres]==1.0.0'`.
122
126
  You can also extract the source distribution and run `python -m pip install .` in its root.
123
- When upgrading from 0.1.1, review the
124
- [upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md),
125
- including migration `0014_reading_indexes` and email overrides. For older
127
+ When upgrading, review the
128
+ [upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md),
129
+ including the 0.2.0 index migration and email overrides when coming from 0.1.1. For older
126
130
  installations, also review the [0.1.1 notes](docs/releases/0.1.1.md). The 0.1.0 package retains
127
131
  its original Wagtail 7.4 and Django 5.2 limits.
128
132
 
@@ -222,7 +226,7 @@ cover the same topics. Start with the task you need:
222
226
 
223
227
  ## Release scope and verification
224
228
 
225
- [0.2.0 Beta release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.2.0.md) describe the changes and upgrade steps;
229
+ [1.0.0 release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/1.0.0.md) describe the changes and upgrade steps;
226
230
  [0.1.0 release notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.1.0.md) preserve the initial release contract.
227
231
  The source distribution includes the runnable Wagtail example, tests and
228
232
  guides; the wheel includes the runtime, translations, templates and static assets.
@@ -230,11 +234,12 @@ guides; the wheel includes the runtime, translations, templates and static asset
230
234
  The CI workflow defines 30 framework/Python/database combinations, JavaScript, lint, migration drift,
231
235
  translations and source/wheel installation. Browser checks covered installed Safari,
232
236
  Chrome, Yandex Browser and Firefox with and without JS, plus selected VoiceOver
233
- scenarios and a phone. Previous major browser versions remain unverified; this is
234
- not an exhaustive accessibility or device certification.
237
+ scenarios and a phone. Historical checks also covered Chrome 142 on macOS and Windows ARM64 and Firefox
238
+ 140 ESR on Windows ARM64; Chrome x64 used Windows emulation. This is not an
239
+ exhaustive accessibility or device certification.
235
240
 
236
241
  There is no separate REST API, rich-text editor, uploads, likes, reports or live
237
- updates in 0.2.0. SMTP retries can duplicate mail after an uncertain delivery result.
242
+ updates in 1.0.0. SMTP retries can duplicate mail after an uncertain delivery result.
238
243
  Host-specific themes, access rules and email delivery need their own acceptance checks.
239
244
 
240
245
  ## Support Commentail
@@ -119,6 +119,7 @@ docs/assets/support-qr.png
119
119
  docs/releases/0.1.0.md
120
120
  docs/releases/0.1.1.md
121
121
  docs/releases/0.2.0.md
122
+ docs/releases/1.0.0.md
122
123
  docs/wiki/Callbacks.md
123
124
  docs/wiki/Changelog.md
124
125
  docs/wiki/Configuration.md
@@ -135,13 +136,16 @@ docs/wiki/Recent-comments.md
135
136
  docs/wiki/Release-0.1.0.md
136
137
  docs/wiki/Release-0.1.1.md
137
138
  docs/wiki/Release-0.2.0.md
139
+ docs/wiki/Release-1.0.0.md
138
140
  docs/wiki/Replies-and-editing.md
139
141
  docs/wiki/Roadmap.md
140
142
  docs/wiki/Rules-and-CSV.md
141
143
  docs/wiki/Security-and-privacy.md
144
+ docs/wiki/Stability.md
142
145
  docs/wiki/Structured-data.md
143
146
  docs/wiki/Styling.md
144
147
  docs/wiki/Support.md
148
+ docs/wiki/Template-contract.md
145
149
  docs/wiki/Templates.md
146
150
  docs/wiki/Troubleshooting.md
147
151
  docs/wiki/_Footer.md
@@ -0,0 +1,56 @@
1
+ # Commentail 1.0.0
2
+
3
+ **19 October 2026 · Stable · MIT**
4
+
5
+ The feature set is frozen at published 0.2.0 Beta. This release starts the
6
+ [stable API and compatibility policy](../wiki/Stability.md); it introduces no
7
+ runtime changes, new dependencies or database migrations beyond 0.2.0.
8
+ Install from [PyPI](https://pypi.org/project/commentail/1.0.0/); archives and checksums
9
+ are available in the [GitHub release](https://github.com/hardcodd/Commentail/releases/tag/v1.0.0).
10
+
11
+ ## Included
12
+
13
+ Self-hosted Page/object discussions; Site/Page settings; site accounts and
14
+ email-verified guests; four moderation policies; threaded replies and moderated
15
+ author edits; protected links and per-comment unsubscribe; database mail queue;
16
+ custom templates, callbacks, CAPTCHA and object adapters; structured data;
17
+ recent-comment selection with host markup; six UI/email languages; HTML/plain-text
18
+ emails; and indexed database reads. See the [0.2.0 notes](0.2.0.md) for its additions.
19
+ Most-discussed threads remain deferred.
20
+
21
+ ## Upgrade
22
+
23
+ Back up the database, media, host settings/templates, `SECRET_KEY` and exact
24
+ versions. Rehearse with `python -m pip install --upgrade commentail==1.0.0`
25
+ in a restored test environment. Keep rehearsal mail local.
26
+
27
+ - From 0.2.0: no Commentail schema migration is added. Run normal `migrate`,
28
+ `check` and `collectstatic --noinput`; verify existing host overrides and queues.
29
+ - From 0.1.0 or 0.1.1: also follow the [0.1.1](0.1.1.md) and
30
+ [0.2.0](0.2.0.md) upgrade notes. Migration `0014_reading_indexes` builds indexes
31
+ and SQLite remakes the rate-event table. Measure migration cost on representative
32
+ data and plan a maintenance window where needed.
33
+ - Restore pre-upgrade and post-upgrade backups independently. Verify old tokens,
34
+ pending revisions, permissions, settings, subscriptions and queued mail; then
35
+ exercise new writes and local delivery. A wheel downgrade alone is not recovery.
36
+
37
+ ## Verification
38
+
39
+ Candidate verification and acceptance on an integrating site are separate. Check
40
+ the host theme, access rules, email delivery and scheduled worker on that site.
41
+ An owner-supplied report dated 19 October 2026 covers published 0.2.0 on a live
42
+ integrating site: guest confirmation/editing/moderation, Gmail/Yandex delivery,
43
+ reply notifications, unsubscribe, upgrade/restoration and 24 negative token/CSRF
44
+ cases. [Verification scope and observations](../wiki/Example-and-testing.md#reported-live-site-verification-020)
45
+ include initial Yandex spam placement and the ordinary form shown on repeated
46
+ confirmation. These results support the unchanged 1.0.0 runtime; they
47
+ are not a live-site test of an installed 1.0.0 package.
48
+ The installed 1.0.0 candidate passed 314 server tests on each of two framework
49
+ pairs with SQLite and PostgreSQL 16, 33 JavaScript tests, package checks and
50
+ independent upgrade/restoration rehearsals. Historical-browser checks covered
51
+ Chrome 142 and Firefox 140 ESR with and without JavaScript; Windows checks used
52
+ ARM64, with Chrome x64 under emulation. Native Windows x64 was not tested.
53
+
54
+ Support, compatibility promises and verification limits are defined by
55
+ [Stability](../wiki/Stability.md). No exhaustive browser/device/WCAG certification,
56
+ native-language review or universal server-capacity guarantee is claimed.
@@ -3,6 +3,16 @@
3
3
  Each release records changes relative to the previous version. Upgrade notes
4
4
  describe changes that an existing installation needs to review.
5
5
 
6
+ ## [1.0.0] — 2026-10-19 · Stable
7
+
8
+ The feature set is frozen at 0.2.0 Beta. This release introduces the documented
9
+ stable API and compatibility policy; runtime, dependencies and migration files
10
+ are unchanged from 0.2.0. Live-site verification of published 0.2.0 is recorded
11
+ in the [verification guide](Example-and-testing.md#reported-live-site-verification-020).
12
+ The documented integration surface now follows semantic versioning and the
13
+ stated deprecation policy. Direct upgrade and backup-restoration rehearsals
14
+ cover 0.1.0 and 0.2.0 on SQLite and PostgreSQL 16.
15
+
6
16
  ## [0.2.0] — 2026-10-19 · Beta
7
17
 
8
18
  Changes from **0.1.1 → 0.2.0**.
@@ -113,4 +123,5 @@ See [0.1.0 release notes](Release-0.1.0.md).
113
123
  [0.1.1]: https://github.com/hardcodd/Commentail/compare/v0.1.0...v0.1.1
114
124
  [0.1.0]: https://github.com/hardcodd/Commentail/releases/tag/v0.1.0
115
125
 
126
+ [1.0.0]: https://github.com/hardcodd/Commentail/compare/v0.2.0...v1.0.0
116
127
  [0.2.0]: https://github.com/hardcodd/Commentail/compare/v0.1.1...v0.2.0
@@ -67,6 +67,39 @@ The minimum supported Wagtail patch is 7.4.3. Earlier 7.4 patches are excluded
67
67
  because of upstream security fixes; the test pin and installed environments use
68
68
  7.4.3. See the [Wagtail 7.4.3 release notes](https://docs.wagtail.org/en/stable/releases/7.4.3.html).
69
69
 
70
+ ## Reported live-site verification: 0.2.0
71
+
72
+ On 19 October 2026, the integrating site's owner supplied a verification report
73
+ for published 0.2.0 on Django 6.1.2/Wagtail 8.0, using private Firefox sessions
74
+ and real Gmail/Yandex inboxes. It covered guest submission with CAPTCHA, email
75
+ confirmation, moderation, edits retaining the previous public text until approval,
76
+ reply notifications received after approval, and unsubscribe. Approved replies
77
+ after unsubscribe created no mail jobs; repeated unsubscribe kept delivery disabled.
78
+ Expired edit links were rejected, including while the comments were public.
79
+
80
+ All 24 reported negative cases were rejected without changes to the checked
81
+ related records: six altered-token GETs, six altered-token POSTs with valid CSRF
82
+ (404), and twelve POSTs without or with incorrect CSRF (403). Record counts and
83
+ SHA-256 digests of full serialized related records matched before and after.
84
+ This is bounded verification, not a complete security audit.
85
+
86
+ The report also covered a PyPI 0.1.0 → 0.2.0 upgrade, migration/data preservation,
87
+ independent backup restoration, host email overrides, static assets, RU/EN routes
88
+ and the scheduled worker. Host tests passed 346/350 initially; four analytics
89
+ configuration errors were followed by 30 passing affected tests with the usual
90
+ test setting. A full corrected 350-test rerun was not reported.
91
+
92
+ Two observations remain: Yandex initially classified confirmation mail as spam;
93
+ later checked messages reached the inbox after marking it as not spam. The owner
94
+ reports that Yandex advised recipients to mark legitimate mail as not spam to help
95
+ build sender reputation over time. This delivery observation is not treated as a
96
+ code defect or release blocker; future inbox placement is not guaranteed. Repeated
97
+ email confirmation showed the ordinary confirmation form, without a distinct
98
+ already-confirmed message, while preserving confirmation/subscription state.
99
+ Neither sustained deliverability nor all browser/email-client combinations were
100
+ established. These are owner-reported 0.2.0 results; they support the unchanged
101
+ runtime of 1.0.0 and are not a live-site test of an installed 1.0.0 package.
102
+
70
103
  ## Acceptance boundaries
71
104
 
72
105
  [Performance](Performance.md) describes query regressions, the synthetic load
@@ -79,10 +112,14 @@ separate from hosted CI status; inspect the workflow run for the revision in use
79
112
  See [GitHub Actions](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml).
80
113
  Installed Safari, Chrome, Yandex and Firefox were exercised with/without JS, including
81
114
  CSV, guest mail and inline interactions. Selected Safari VoiceOver scenarios and a
82
- physical phone were checked. Previous major browser versions remain unverified;
83
- this is not exhaustive device coverage or accessibility certification. Host-specific
115
+ physical phone were checked. Historical checks also covered Chrome 142 on macOS
116
+ and Windows ARM64 and Firefox 140 ESR on Windows ARM64, with and without JavaScript.
117
+ They exercised responsive layouts, pagination, replies, editing, validation and
118
+ network-error draft retention. Windows Chrome x64 ran under emulation; native
119
+ Windows x64 was not checked. Older Firefox on macOS could not complete startup
120
+ for automation. This is not exhaustive device coverage or accessibility certification. Host-specific
84
121
  customizations and deployment policies need their own acceptance checks.
85
122
 
86
123
  ---
87
124
 
88
- [← Troubleshooting](Troubleshooting.md) · [Documentation home](Home.md) · [Release 0.2.0 →](Release-0.2.0.md)
125
+ [← Troubleshooting](Troubleshooting.md) · [Documentation home](Home.md) · [Release 1.0.0 →](Release-1.0.0.md)
@@ -3,7 +3,7 @@
3
3
  **Self-hosted comments for Wagtail CMS.** Add moderated discussions to Wagtail
4
4
  Pages and registered Django models using your site's accounts, templates and styles.
5
5
 
6
- > **0.2.0 Beta:** Wagtail 7.4.3+ / Django 5.2 or 6.0; Wagtail 8.0 / Django 5.2, 6.0 or 6.1; Python 3.12–3.14; file SQLite and PostgreSQL 16.
6
+ > **1.0.0 Stable:** Wagtail 7.4.3+ / Django 5.2 or 6.0; Wagtail 8.0 / Django 5.2, 6.0 or 6.1; Python 3.12–3.14; file SQLite and PostgreSQL 16.
7
7
  > Published 0.1.0 retains Wagtail >=7.4.3,<7.5 and Django 5.2 support.
8
8
 
9
9
  ## Find your guide
@@ -28,7 +28,8 @@ Pages and registered Django models using your site's accounts, templates and sty
28
28
  | Understand query costs and run load checks | [Performance](Performance.md) |
29
29
  | Diagnose a problem | [Troubleshooting](Troubleshooting.md) |
30
30
  | Run the example and tests | [Example and testing](Example-and-testing.md) |
31
- | Read the current release scope | [Release 0.2.0](Release-0.2.0.md) |
31
+ | Read the current release scope | [Release 1.0.0](Release-1.0.0.md) |
32
+ | Understand the stable contract | [Stability](Stability.md) |
32
33
  | Compare versions | [Changelog](Changelog.md) |
33
34
  | See planned work | [Roadmap](Roadmap.md) |
34
35
  | Read the initial release scope | [Release 0.1.0](Release-0.1.0.md) |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Requirements and package
4
4
 
5
- | Component | 0.2.0 Beta |
5
+ | Component | 1.0.0 Stable |
6
6
  | --- | --- |
7
7
  | Python | 3.12, 3.13, 3.14 |
8
8
  | Wagtail / Django | 7.4.3+ in 7.4 / Django 5.2 or 6.0; 8.0.x / Django 5.2, 6.0 or 6.1 |
@@ -18,16 +18,16 @@ verification. The published 0.1.0 artifact retains its original bounds:
18
18
  In a virtual environment, install the release from PyPI:
19
19
 
20
20
  ```sh
21
- python -m pip install commentail==0.2.0
21
+ python -m pip install commentail==1.0.0
22
22
  ```
23
23
 
24
24
  For the PostgreSQL driver use
25
- `python -m pip install 'commentail[postgres]==0.2.0'`.
25
+ `python -m pip install 'commentail[postgres]==1.0.0'`.
26
26
  Alternatively, install a downloaded wheel or extract the source archive and run
27
27
  `python -m pip install .` in its root. Your site's `DATABASES` setting still selects
28
28
  the actual database.
29
29
  For downloaded release archives, verify the supplied checksum before installation.
30
- See [0.2.0 changes and upgrade notes](Release-0.2.0.md) and the
30
+ See [1.0.0 changes and upgrade notes](Release-1.0.0.md) and the
31
31
  [version-to-version changelog](Changelog.md).
32
32
 
33
33
  ## 1. Apps, middleware and templates
@@ -95,6 +95,10 @@ message before opening the integration to visitors.
95
95
 
96
96
  ## Upgrading and restoring
97
97
 
98
+ Version 1.0.0 changes no runtime files, dependencies or migrations from 0.2.0.
99
+ Run the normal checks and static collection after installing; the migration notes
100
+ below apply when upgrading from earlier versions.
101
+
98
102
  Version 0.2.0 adds migration `0014_reading_indexes` over 0.1.1. It creates
99
103
  publication/thread, active CAPTCHA and rate-cleanup indexes without changing
100
104
  comment content or state. Standard index builds may block writes and need extra