Skip to content

Latest commit

 

History

History
409 lines (252 loc) · 10.1 KB

ChangeLog.rst

File metadata and controls

409 lines (252 loc) · 10.1 KB

ChangeLog

unreleased

1.9.5 (2024-11-09)

Bugfix
  • Fixed error in PyPI publish process

1.9.4 (2024-11-09)

New:
  • Confirm support for Python 3.13
  • Confirm support for Django 5.1
  • Drop support for Python 3.8

1.9.3 (2024-05-24)

New:
  • Confirm support for Python 3.12
  • Confirm support for Django 5.0
  • Drop support for Python 3.7
  • Drop support for Django 2.0
  • Drop support for Django 2.1

1.9.2 (2023-04-12)

New:
  • Confirm support for Django 4.2

1.9.1 (2023-01-14)

Bugfix:
  • Fixed a KeyError that would occur when updating a field two times in a row when the field value is set to an F object and the field is specified in the update_fields argument to save(). (#209)

1.9.0 (2022-11-07)

New:
  • Confirm support for Python 3.11
  • Confirm support for Django 4.1
  • Drop support for Django 1.11
Changed:
  • The method get_dirty_fields() now returns only the file name for FileFields. This is to improve performance, since the entire FieldFile object will no longer be copied when Model instances are initialized and saved. (#203)
Bugfix:
  • The method save_dirty_fields() can now be called on Model instances that have not been saved to the Database yet. In this case all fields will be considered dirty, and all will be saved to the Database. Previously doing this would result in an Exception being raised. (#200)

1.8.2 (2022-07-16)

Documentation:
  • General improvements to content and generation of Documentation (#197).

1.8.1 (2022-03-07)

Documentation:
  • Document limitations when using dirtyfields and database transactions (#148).
  • Document how to use a Proxy Model to avoid performance impact (#132).

1.8.0 (2022-01-22)

New:
  • Confirm support of Python 3.10
  • Confirm support of Django 4.0
  • Drop support for Python 3.6
Tests
  • Run CI tests on Github Actions since travis-ci.org has been shutdown.

1.7.0 (2021-05-02)

New:
  • Provide programmatically accessible package version number. Use dirtyfields.__version__ for a string, dirtyfields.VERSION for a tuple.
  • Build and publish a wheel to PyPI.
Changed:
  • Only look at concrete fields when determining dirty fields.
  • Migrate package metadata from setup.py to setup.cfg and specify the PEP-517 build-backend to use with the project.
Bugfix:
  • Fixed a KeyError that happened when saving a Model with update_fields specified after updating a field value with an F object (#118).

1.6.0 (2021-04-07)

New:
  • Confirm support of Django 3.2
Changed:
  • Remove pytz as a dependency.

1.5.0 (2021-01-15)

New:
  • Drop support of Python 2.7
  • Drop support of Python 3.5
  • Confirm support of Python 3.8
  • Confirm support of Python 3.9
  • Confirm support of Django 3.0
  • Confirm support of Django 3.1

1.4.1 (2020-11-28)

Bugfix:
  • Fixes an issue when refresh_from_db was called with the fields argument, the dirty state for all fields would be reset, even though only the fields specified are reloaded from the database. Now only the reloaded fields will have their dirty state reset (#154).
  • Fixes an issue where accessing a deferred field would reset the dirty state for all fields (#154).

1.4 (2020-04-11)

New:
  • Drop support of Python 3.4
  • Drop support of Django 1.8
  • Drop support of Django 1.9
  • Drop support of Django 1.10
  • Confirm support of Python 3.7
  • Confirm support of Django 2.0
  • Confirm support of Django 2.1
  • Confirm support of Django 2.2
Bugfix:
  • Fixes tests for Django 2.0
  • refresh_from_db is now properly resetting dirty fields.
  • Adds normalise_function to provide control on how dirty values are stored

1.3.1 (2018-02-28)

New:

  • Updates python classifier in setup file (#116). Thanks amureki.
  • Adds PEP8 validation in travisCI run (#123). Thanks hsmett.

Bugfix:

  • Avoids get_deferred_fields to be called too many times on _as_dict (#115). Thanks benjaminrigaud.
  • Respects FIELDS_TO_CHECK in reset_state (#114). Thanks bparker98.

1.3 (2017-08-23)

New:

  • Drop support for unsupported Django versions: 1.4, 1.5, 1.6 and 1.7 series.
  • Fixes issue with verbose mode when the object has not been yet saved in the database (MR #99). Thanks vapkarian.
  • Add test coverage for Django 1.11.
  • A new attribute FIELDS_TO_CHECK has been added to DirtyFieldsMixin to specify a limited set of fields to check.

Bugfix:

  • Correctly handle ForeignKey.db_column {}_id in update_fields. Thanks Hugo Smett.
  • Fixes #111: Eliminate a memory leak.
  • Handle deferred fields in update_fields

1.2.1 (2016-11-16)

New:

  • django-dirtyfields is now tested with PostgreSQL, especially with specific fields

Bugfix:

  • Fixes #80: Use of Field.rel raises warnings from Django 1.9+
  • Fixes #84: Use only() in conjunction with 2 foreign keys triggers a recursion error
  • Fixes #77: Shallow copy does not work with Django 1.9's JSONField
  • Fixes #88: get_dirty_fields on a newly-created model does not work if pk is specified
  • Fixes #90: Unmark dirty fields only listed in update_fields

1.2 (2016-08-11)

New:

  • django-dirtyfields is now compatible with Django 1.10 series (deferred field handling has been updated).

1.1 (2016-08-04)

New:

  • A new attribute ENABLE_M2M_CHECK has been added to DirtyFieldsMixin to enable/disable m2m check functionality. This parameter is set to False by default. IMPORTANT: backward incompatibility with v1.0.x series. If you were using check_m2m parameter to check m2m relations, you should now add ENABLE_M2M_CHECK = True to these models inheriting from DirtyFieldsMixin. Check the documentation to see more details/examples.

1.0.1 (2016-07-25)

Bugfix:

  • Fixing a bug preventing django-dirtyfields to work properly on models with custom primary keys.

1.0 (2016-06-26)

After several years of existence, django-dirty-fields is mature enough to switch to 1.X version. There is a backward-incompatibility on this version. Please read careful below.

New:

  • IMPORTANT: get_dirty_fields is now more consistent for models not yet saved in the database. get_dirty_fields is, in that situation, always returning ALL fields, where it was before returning various results depending on how you initialised your model. It may affect you specially if you are using get_dirty_fields in a pre_save receiver. See more details at #65.
  • Adding compatibility for old _meta API, deprecated in Django 1.10 version and now replaced by an official API.
  • General test cleaning.

0.9 (2016-06-18)

New:

  • Adding Many-to-Many fields comparison method check_m2m in DirtyFieldsMixin.
  • Adding verbose parameter in get_dirty_fields method to get old AND new field values.

0.8.2 (2016-03-19)

New:

  • Adding field comparison method compare_function in DirtyFieldsMixin.
  • Also adding a specific comparison function timezone_support_compare to handle different Datetime situations.

0.8.1 (2015-12-08)

Bugfix:

  • Not comparing fields that are deferred (only method on QuerySet).
  • Being more tolerant when comparing values that can be on another type than expected.

0.8 (2015-10-30)

New:

  • Adding save_dirty_fields method to save only dirty fields in the database.

0.7 (2015-06-18)

New:

  • Using copy to properly track dirty fields on complex fields.
  • Using py.test for tests launching.

0.6.1 (2015-06-14)

Bugfix:

  • Preventing django db expressions to be evaluated when testing dirty fields (#39).

0.6 (2015-06-11)

New:

  • Using to_python to avoid false positives when dealing with model fields that internally convert values (#4)

Bugfix:

  • Using attname instead of name on fields to avoid massive useless queries on ForeignKey fields (#34). For this kind of field, get_dirty_fields() is now returning instance id, instead of instance itself.

0.5 (2015-05-06)

New:

  • Adding code compatibility for python3,
  • Launching travis-ci tests on python3,
  • Using tox to launch tests on Django 1.5, 1.6, 1.7 and 1.8 versions,
  • Updating runtests.py test script to run properly on every Django version.

Bugfix:

  • Catching Error when trying to get foreign key object if not existing (#32).

0.4.1 (2015-04-08)

Bugfix:

  • Removing model_to_form to avoid bug when using models that have editable=False fields.

0.4 (2015-03-31)

New:

  • Adding check_relationship parameter on is_dirty and get_dirty_field methods to also check foreign key values.