0.4.0 Python 3 only — Django 4.2 / 5.x / 6.x support

Compatibility:
- Requires Python 3.10+ and Django 4.2+
- Tested against Python 3.10–3.14 × Django 4.2, 5.1, 5.2, 6.0
- Django 6.0 requires Python 3.12+; Python 3.14 is supported on Django 6.0 only

Bug fixes:
- Remove dependency on `six` (class_decorator.py): replace
  six.string_types with str, drop Python 2 / Python 3 branch
- Fix smart_text → smart_str throughout registry.py (smart_text alias
  was removed in Django 4.0)
- Fix user.is_authenticated: drop try/except workaround and use the
  boolean attribute directly (method form removed in Django 2.0)
- Remove _autodiscover() which imported django.utils.importlib (removed
  in Django 1.9); simplify autodiscover() to a single call
- Remove func_name attribute check in rule_text_name() (Python 2 only)
- Remove dead code for Django < 1.8 in class_decorator.py and
  middleware.py, and for Django < 1.7 in tests/__init__.py

Modernisation:
- Drop `from __future__ import unicode_literals` from all source files
- Modernise super() calls (drop explicit ClassName, self arguments)
- Migrate packaging to pyproject.toml (PEP 517, setuptools >= 61)

CI:
- Replace Travis CI with GitHub Actions
- Add lint job (ruff) and docs job (sphinx-build -W)
- Update tox to Python 3.10–3.14, Django 4.2–6.0, pytest
- Fix build-backend: switch from setuptools.build_meta:__legacy__ (requires
  setuptools >= 68) to the universally supported setuptools.build_meta;
  add pip/setuptools upgrade step to avoid version-mismatch failures
- Fix legacy django.conf.urls.url() (removed in Django 4.0): replace
  with re_path() from django.urls in test_project/urls.py
- Fix logger.warn() deprecation: rename to logger.warning() in registry.py
- Fix ruff F401 lint errors: use explicit re-export syntax (X as X) in
  __init__.py, replace star import with named imports in tests, remove
  unused imports and unused `as cm` aliases across test files
- Upgrade actions/checkout v4 → v6 and actions/setup-python v5 → v6
  (both now run on Node.js 24, eliminating the Node.js 20 deprecation
  warning ahead of the June 2026 forced cutover)

0.3.2 Django 4.1.x support

0.3.1 Django 4.x support
Provide context for error page by @martinmaillard

0.3.0 Django 2.x support 

0.1.3 Django 1.8 support by Serafeim Papastefanos @spapas.

0.1.2 Added Brazilian Portuguese Translation.

0.1.1 Decorated rule name was just 'function' in Python 3.

0.1.0 Python 3 support.

0.0.9 Greek translation, div wrapper in template.

Thanks Serafeim Papastefanos for contributing.

0.0.8 Bugfix: decorated function was losing its name

0.0.7 FR locale

0.0.6 Added {% rule %} templatetag.

0.0.5 

- Added is_authenticated and is_staff shortcuts,
- Added make_decorator which enables decorating rules with other rules.
- Improved registration debug log messages with bools.

0.0.4 Django 1.4 compatibility

0.0.3 UnicodeDecodeError fixed and improved logging

0.0.2 Fixed MANIFEST.in to include templates
