All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- 284 - Update pyyaml to 6.0.2 in poetry.lock by @gsnider2195
- 286 - Update GitHub Actions runner version by @mjbear
- 289 - Remove upper limit on Packaging by @jdrew82
- @gsnider2195 made their first contribution in networktocode#284
- @mjbear made their first contribution in networktocode#286
- @jdrew82 made their first contribution in networktocode#289
- #276 - Removed upper version bound for
structlogdependency
- #281 - Properly deprecated
DiffSyncclass name - #273 - Properly capitalized
DiffSyncin documentation - #273 - Removed more mentions of
DiffSyncin favor ofAdapter - #274 - Fixed doc section title for getting started
- #269 - Fixed wording for a couple of docstrings
- #265 - Fixed readthedocs build
- BREAKING CHANGE #236/240 - Upgrade to Pydantic v2.
- #249 - Fixes natural deletion order flag
- #247 - Fixes underspecified typing_extensions dependency
- #247 - Deprecates Python 3.7
- #220 - Implement DiffSyncModelFlags.NATURAL_DELETION_ORDER.
- #219 - Type hinting overhaul
- #182 - Added
get_or_add_model_instance()andupdate_or_add_model_instance()APIs. - #189 - Added note in
README.mdabout runninginvoke tests. - #190 - Added note in
README.mdabout runninginvoke build.
- #77/#188 -
sync_from()andsync_to()now return theDiffthat was applied. - #211 - Loosened
packagingandstructloglibrary dependency constraints for broader compatibility.
- #176 - Remove pytest-redislite in favor of pytest-redis.
- #174 - Update Dockerfile to install build-essential
- #174 - Add methods to load data from dictionary and enable tree traversal
- #174 - Add a
get_or_nonemethod to the DiffSync class - #168 - Add 'skip' counter to diff.summary()
- #169/#170 - Add documentation about model processing order
- #121/#140 - Add and configure renovate
- #140 - Add renovate configuration validation to the CI
- #149 - Limit redundant CI concurrency
- #120 - Dropped support for Python 3.6, new minimum is Python 3.7
- #111 - Added example 6, regarding IP prefixes.
- #107 - Updated example 5 to use the Redis backend store.
- #115 - Fixed ReadTheDocs rendering pipeline
- #118 - Fixed a regression in
DiffSync.get(modelname, identifiers)introduced in 1.5.0
- #106 - Add a new, optional, backend store based in Redis
- #101 - Revert changed introduced in #90 that affected
DiffElement.action
NOTE: this change is a breaking change against DiffSync 1.4.0 through 1.4.2, but was necessary to restore backward compatibility with DiffSync 1.3.x and earlier. Apologies for any inconvenience this causes.
- #103 - Update development dependencies
WARNING - #90 inadvertently introduced a breaking API change in DiffSync 1.4.0 through 1.4.2 (#101); this change was reverted in #102 for DiffSync 1.4.3 and later. We recommend not using this release, and moving to 1.4.3 instead.
- #100 - Added explicit dependency on
packaging.
WARNING - #90 inadvertently introduced a breaking API change in DiffSync 1.4.0 through 1.4.2 (#101); this change was reverted in #102 for DiffSync 1.4.3 and later. We recommend not using this release, and moving to 1.4.3 instead.
- #95 - Removed optional dependencies on
sphinx,m2r2,sphinx-rtd-theme,toml.
WARNING - #90 inadvertently introduced a breaking API change in DiffSync 1.4.0 through 1.4.2 (#101); this change was reverted in #102 for DiffSync 1.4.3 and later. We recommend not using this release, and moving to 1.4.3 instead.
- #53 - Add a new example based on pynautobot and Nautobot REST API
- #59 - Add proper documentation published in Read the doc
- #68 - Cleanup Readme, add link to new documentation site
- #70 - Add
add_or_update()method to DiffSync class that requires a DiffSyncModel to be passed in and will attempt to add or update an existing object - #72 - Add core engine section in docs and rename example directories
- #75 - Add support for Structlog v21 in addition to v20.
- #80 - Add support for an existing Diff object to be passed to
sync_to()&sync_from()to prevent another diff from being calculated. - #81 - Add a new example based on PeeringDB
- #83 - Add support for Python 3.10
- #87 - Add new model flags :
SKIP_UNMATCHED_BOTH,SKIP_UNMATCHED_SRC&SKIP_UNMATCHED_DSTto match the behavior of the global flags
- #62 - Update CI Token
- #69 - Replace Travis CI with Github Actions to run unit tests
- #82 - Update lock file with latest versions.
- #90 - Convert list of actions (
create,update,delete) to proper Enum
- #51 - Update minimum Pydantic version due to security advisory GHSA-5jqp-qgf6-3pvh
- #63 - Fix type in Readme
- #48 - added optional
callbackargument todiff_from/diff_to/sync_from/sync_tofor use with progress reporting.
- #45 - minimum Python version lowered from 3.7 to 3.6, also now tested against Python 3.9.
- #37 - added
sync_completecallback, triggered onsync_fromcompletion with changes. - #41 - added
summaryAPI for Diff and DiffElement objects. - #44 - added
set_status()andget_status()APIs so that DiffSyncModel implementations can provide details for create/update/delete logging
- Now requires Pydantic 1.7.2 or later
- #34 - in diff dicts, changed keys
src/dst/_src/_dstto-and+ - #43 -
DiffSync.get_by_uids()now raisesObjectNotFoundif any of the provided uids cannot be located;DiffSync.get()raisesObjectNotFoundorValueErroron failure, instead of returningNone.
- #44 - On CRUD failure, do not generate an extraneous "success" log message in addition to the "failed" message
Initial release