Release 2.0.0: Django 4.2-7.0 support with async-safe operations#1
Merged
Release 2.0.0: Django 4.2-7.0 support with async-safe operations#1
Conversation
ac840ac to
2f04f5d
Compare
Owner
Author
3b2cfd4 to
2083033
Compare
Major version upgrade with breaking changes and modern Django support: Breaking Changes: - Minimum Django version: 4.2 LTS (supports Django 4.2-5.2, experimental Django 6.0, tested with Django 7.0 dev) - Minimum Python version: 3.10 (supports 3.10, 3.11, 3.12) - Dropped Django 1.x, 2.x, 3.x support - Dropped Python 2.7, 3.4-3.9 support - Removed django-model-utils dependency Async Support (New): - Refactored from thread-local variables to contextvars for async-safe operation - All deletion and query context handling now supports asyncio - Context managers (deletion_context, show_all_context) are fully async-safe - Works correctly with Django's async QuerySet API (acount, afirst, aget, etc.) - Future-proof for Django 6.0 and 7.0 async expansion New Features: - Added Django System Check (W001) to detect problematic PermanentModel configurations - Warns when PermanentModel has CASCADE ForeignKey to non-PermanentModel - Comprehensive documentation (README.md) Bug Fixes from MnogoByte Fork: - Fixed MnogoByte#53: restore() respects user filters on removed field - Fixed MnogoByte#75: Access deleted related objects via show_all_context() - Fixed MnogoByte#78: Removed django.utils.six dependency - Improved documentation (MnogoByte#69, MnogoByte#66, MnogoByte#67) Infrastructure: - Migrated CI/CD from Travis CI to GitHub Actions - All 44 tests passing with Django 4.2-7.0 dev - 100% pass rate, NO SKIPS - Converted documentation from RST to Markdown - Added explicit LICENSE file (BSD) CI/CD Enhancements: - Added automated PyPI publishing workflow (GitHub Actions) - Automatically publishes to PyPI when version tag is pushed - Creates GitHub releases with release notes - Auto-updates CHANGES.md with next version template after release - Improved test infrastructure with extras_require for test/dev dependencies - Added TEST_VERBOSITY environment variable support - Enhanced coverage reporting and Coveralls integration Technical Improvements: - Modernized codebase for Django 4.2+ - Removed Python 2/six dependencies - Removed 15+ version compatibility checks - Simplified QuerySet and Manager implementations - Updated for Django 5.2+ API changes (Collector.delete, ForeignObject.get_extra_restriction, Signal) - Enhanced async deletion and lazy reference handling
2083033 to
0a932be
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Major version upgrade with breaking changes and modern Django support:
Breaking Changes:
Async Support (New):
New Features:
Infrastructure:
CI/CD Enhancements:
Technical Improvements: