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.
- {commentail-0.2.0 → commentail-1.0.0}/CHANGELOG.md +11 -0
- {commentail-0.2.0/commentail.egg-info → commentail-1.0.0}/PKG-INFO +20 -15
- {commentail-0.2.0 → commentail-1.0.0}/README.md +18 -13
- {commentail-0.2.0 → commentail-1.0.0}/README.ru.md +17 -12
- {commentail-0.2.0 → commentail-1.0.0/commentail.egg-info}/PKG-INFO +20 -15
- {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/SOURCES.txt +4 -0
- commentail-1.0.0/docs/releases/1.0.0.md +56 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Changelog.md +11 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Example-and-testing.md +40 -3
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Home.md +3 -2
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Installation.md +8 -4
- commentail-1.0.0/docs/wiki/Release-1.0.0.md +56 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Roadmap.md +6 -0
- commentail-1.0.0/docs/wiki/Stability.md +91 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Support.md +1 -1
- commentail-1.0.0/docs/wiki/Template-contract.md +123 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Templates.md +3 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/_Sidebar.md +3 -0
- {commentail-0.2.0 → commentail-1.0.0}/pyproject.toml +2 -2
- {commentail-0.2.0 → commentail-1.0.0}/LICENSE +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/MANIFEST.in +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/admin_urls.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/admin_views.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/admission.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/apps.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/assets.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/avatars.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/checks.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/config.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/detection.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/drafts.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/forms.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/group_permissions.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/limits.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/de/LC_MESSAGES/django.mo +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/de/LC_MESSAGES/django.po +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/es/LC_MESSAGES/django.mo +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/es/LC_MESSAGES/django.po +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/fr/LC_MESSAGES/django.mo +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/fr/LC_MESSAGES/django.po +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/pt_BR/LC_MESSAGES/django.po +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/ru/LC_MESSAGES/django.mo +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/locale/ru/LC_MESSAGES/django.po +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/logging.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/management/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/management/commands/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/management/commands/process_commentail.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/middleware.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0001_initial.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0002_sitegrouppermission_hide_sitegrouppermission_view.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0003_actiontoken_captchachallenge_guestgrant.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0004_submissionrecord.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0005_rateevent.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0006_alter_comment_guest_name_and_more.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0007_actiontoken_nonce_replysubscription_mailjob.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0008_mailjob_revision.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0009_formticket.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0010_captchachallenge_backend_and_more.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0011_discussion_content_type_discussion_object_id_and_more.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0012_formticket_draft.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0013_sitecommentsettings_email_enabled.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/0014_reading_indexes.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/migrations/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/models.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/objects.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/outbox.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/page_integration.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/panels.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/permissions.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/policies.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/public.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/recent.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/rules_csv.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/security.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/services.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/signals.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/admin.css +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/admin.js +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/commentail.css +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/static/commentail/commentail.js +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/structured.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/action.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/detail.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/form.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/group_permission_row.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/group_permissions.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/list.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/mail.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/objects.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/page_panel.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/rules.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/admin/rules_import.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/base.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/block.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/captcha.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/comment.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/edit-form.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/base.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/button.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/confirm.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/confirm.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/confirm_subject.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/edit.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/edit.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/edit_subject.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/published.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/published.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/published_subject.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/rejected.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/rejected.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/rejected_subject.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/reply.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/reply.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/emails/reply_subject.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/form.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templates/commentail/replies.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templatetags/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/templatetags/commentail_tags.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/text.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/urls.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/views.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail/wagtail_hooks.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/dependency_links.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/requires.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/commentail.egg-info/top_level.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/assets/commentail-preview.png +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/assets/support-qr.png +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/releases/0.1.0.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/releases/0.1.1.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/releases/0.2.0.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Callbacks.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Configuration.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Deployment.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Email-and-worker.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Guest-comments.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Moderation.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Object-adapters.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Performance.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Recent-comments.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Release-0.1.0.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Release-0.1.1.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Release-0.2.0.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Replies-and-editing.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Rules-and-CSV.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Security-and-privacy.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Structured-data.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Styling.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/Troubleshooting.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/docs/wiki/_Footer.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/README.md +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo/settings.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo/urls.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/comments.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/management/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/management/commands/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/management/commands/bootstrap_demo.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/migrations/0001_initial.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/migrations/0002_product.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/migrations/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/models.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/templates/demo_home/home_page.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/templates/demo_home/product.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/demo_home/views.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/example/manage.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/requirements-test-common.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/requirements-test.txt +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/setup.cfg +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/settings.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/targets/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/targets/apps.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/targets/migrations/0001_initial.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/targets/migrations/__init__.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/targets/models.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/templates/wagtailcore/page.html +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_actions.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_admin.js +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_admin_ui.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_admission.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_avatars.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_capability_access.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_captcha_backend.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_cleanup.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_concurrency.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_detection.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_email_presentation.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_extension_contracts.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_group_panel.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_inline_edit.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_lifecycle.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_localization.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_mail_admin.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_name_limit.js +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_notifications.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_object_adapters.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_outbox.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_performance.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_presentation_contracts.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_progressive.js +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_public_ui.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_rate_limits.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_recent_comments.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_release_gaps.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_reply.js +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_rules_admin.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_rules_csv.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_security.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_smtp_chain.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_structured_data.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_submission.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/test_transaction_contracts.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/urls.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tests/urls_custom_prefix.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tools/benchmark_performance.py +0 -0
- {commentail-0.2.0 → commentail-1.0.0}/tools/check_dist.py +0 -0
- {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.
|
|
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 ::
|
|
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
|
[](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
|
|
38
40
|
[](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.
|
|
57
|
-
>
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
124
|
-
[upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.
|
|
125
|
-
including migration
|
|
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.
|
|
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.
|
|
234
|
-
|
|
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.
|
|
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
|
[](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
|
|
10
12
|
[](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.
|
|
29
|
-
>
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
96
|
-
[upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.
|
|
97
|
-
including migration
|
|
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.
|
|
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.
|
|
206
|
-
|
|
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.
|
|
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
|
[](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
|
|
10
12
|
[](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.
|
|
29
|
-
>
|
|
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.
|
|
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.
|
|
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.
|
|
96
|
+
python -m pip install commentail==1.0.0
|
|
93
97
|
```
|
|
94
98
|
|
|
95
99
|
Для необязательного драйвера PostgreSQL используйте
|
|
96
|
-
`python -m pip install 'commentail[postgres]==0.
|
|
100
|
+
`python -m pip install 'commentail[postgres]==1.0.0'`.
|
|
97
101
|
Также можно распаковать исходный архив и выполнить `python -m pip install .` в его корне.
|
|
98
|
-
При обновлении
|
|
99
|
-
[инструкцию по обновлению](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.
|
|
100
|
-
включая миграцию
|
|
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.
|
|
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.
|
|
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.
|
|
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 ::
|
|
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
|
[](https://github.com/hardcodd/Commentail/actions/workflows/tests.yml)
|
|
38
40
|
[](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.
|
|
57
|
-
>
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
124
|
-
[upgrade notes](https://github.com/hardcodd/Commentail/blob/main/docs/releases/0.
|
|
125
|
-
including migration
|
|
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.
|
|
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.
|
|
234
|
-
|
|
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.
|
|
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.
|
|
83
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|