Skip to content
Compare
Choose a tag to compare
@ryanhiebert ryanhiebert released this 18 Mar 20:55
b53fc0c

Breaking Changes

  • Dropped support for Django 3.2, 4.0, 4.1.
  • Changed the default safe marking to Safe.always. This gives a better default experience for working with third-party apps.
  • Faking migrations when using safemigrate is explicitly forbidden and raises an error.
  • Safe.after_deploy and Safe.always migrations are now reported as blocked if they are behind a blocked Safe.before_deploy migration.
  • Safe.after_deploy migrations are now reported along with other delayed migrations instead of being separately reported as protected.

Other improvements

  • Added support for Django 5.1 and 5.2.
  • Added support for Python 3.13.
  • The standard values for safe are now methods that may be called:
    • Safe.before_deploy()
    • Safe.after_deploy()
    • Safe.always()
  • Added support for allowing a Safe.after_deploy(delay=timedelta()) migration to be migrated after the delay has passed.
  • Converted Safe to be a custom class rather than an Enum.
  • Renamed internal enums for clarity and PEP 8 alignment.
  • uv is the build tool.