|
1 | | -# v1 Release Notes |
| 1 | +# v1.0 Release Notes |
2 | 2 |
|
3 | 3 | This document describes all new features and changes in the release. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
4 | 4 |
|
5 | 5 | ## Release Overview |
6 | 6 |
|
7 | | -Initial release of DiffSync and subsequent minor version updates through v1.10.0. |
| 7 | +Initial release of DiffSync. |
8 | 8 |
|
9 | 9 | ## [v1.0.0] - 2020-10-23 |
10 | 10 |
|
11 | 11 | Initial release |
12 | | - |
13 | | -## [v1.1.0] - 2020-12-01 |
14 | | - |
15 | | -### Added |
16 | | - |
17 | | -- #37 - added `sync_complete` callback, triggered on `sync_from` completion with changes. |
18 | | -- #41 - added `summary` API for Diff and DiffElement objects. |
19 | | -- #44 - added `set_status()` and `get_status()` APIs so that DiffSyncModel implementations can provide details for create/update/delete logging |
20 | | - |
21 | | -### Changed |
22 | | - |
23 | | -- Now requires Pydantic 1.7.2 or later |
24 | | -- #34 - in diff dicts, changed keys `src`/`dst`/`_src`/`_dst` to `-` and `+` |
25 | | -- #43 - `DiffSync.get_by_uids()` now raises `ObjectNotFound` if any of the provided uids cannot be located; `DiffSync.get()` raises `ObjectNotFound` or `ValueError` on failure, instead of returning `None`. |
26 | | - |
27 | | -### Fixed |
28 | | - |
29 | | -- #44 - On CRUD failure, do not generate an extraneous "success" log message in addition to the "failed" message |
30 | | - |
31 | | -## [v1.2.0] - 2020-12-08 |
32 | | - |
33 | | -### Added |
34 | | - |
35 | | -- #45 - minimum Python version lowered from 3.7 to 3.6, also now tested against Python 3.9. |
36 | | - |
37 | | -## [v1.3.0] - 2021-04-07 |
38 | | - |
39 | | -### Added |
40 | | - |
41 | | -- #48 - added optional `callback` argument to `diff_from`/`diff_to`/`sync_from`/`sync_to` for use with progress reporting. |
42 | | - |
43 | | -## [v1.4.0] - 2022-01-24 |
44 | | - |
45 | | -**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. |
46 | | - |
47 | | -### Added |
48 | | - |
49 | | -- #53 - Add a new example based on pynautobot and Nautobot REST API |
50 | | -- #59 - Add proper documentation published in Read the doc |
51 | | -- #68 - Cleanup Readme, add link to new documentation site |
52 | | -- #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 |
53 | | -- #72 - Add core engine section in docs and rename example directories |
54 | | -- #75 - Add support for Structlog v21 in addition to v20. |
55 | | -- #80 - Add support for an existing Diff object to be passed to `sync_to()` & `sync_from()` to prevent another diff from being calculated. |
56 | | -- #81 - Add a new example based on PeeringDB |
57 | | -- #83 - Add support for Python 3.10 |
58 | | -- #87 - Add new model flags : `SKIP_UNMATCHED_BOTH`, `SKIP_UNMATCHED_SRC` & `SKIP_UNMATCHED_DST` to match the behavior of the global flags |
59 | | - |
60 | | -### Changed |
61 | | - |
62 | | -- #62 - Update CI Token |
63 | | -- #69 - Replace Travis CI with Github Actions to run unit tests |
64 | | -- #82 - Update lock file with latest versions. |
65 | | -- #90 - Convert list of actions (`create`, `update`, `delete`) to proper Enum |
66 | | - |
67 | | -### Fixed |
68 | | - |
69 | | -- #51 - Update minimum Pydantic version due to security advisory GHSA-5jqp-qgf6-3pvh |
70 | | -- #63 - Fix type in Readme |
71 | | - |
72 | | -## [v1.4.1] - 2022-01-26 |
73 | | - |
74 | | -**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. |
75 | | - |
76 | | -### Fixed |
77 | | - |
78 | | -- #95 - Removed optional dependencies on `sphinx`, `m2r2`, `sphinx-rtd-theme`, `toml`. |
79 | | - |
80 | | -## [v1.4.2] - 2022-02-28 |
81 | | - |
82 | | -**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. |
83 | | - |
84 | | -### Fixed |
85 | | - |
86 | | -- #100 - Added explicit dependency on `packaging`. |
87 | | - |
88 | | -## [v1.4.3] - 2022-03-03 |
89 | | - |
90 | | -### Fixed |
91 | | - |
92 | | -- #101 - Revert changed introduced in #90 that affected `DiffElement.action` |
93 | | - |
94 | | -**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. |
95 | | - |
96 | | -### Changed |
97 | | - |
98 | | -- #103 - Update development dependencies |
99 | | - |
100 | | -## [v1.5.0] - 2022-06-07 |
101 | | - |
102 | | -### Added |
103 | | - |
104 | | -- #106 - Add a new, optional, backend store based in Redis |
105 | | - |
106 | | -## [v1.5.1] - 2022-06-30 |
107 | | - |
108 | | -### Added |
109 | | - |
110 | | -- #111 - Added example 6, regarding IP prefixes. |
111 | | - |
112 | | -### Changed |
113 | | - |
114 | | -- #107 - Updated example 5 to use the Redis backend store. |
115 | | - |
116 | | -### Fixed |
117 | | - |
118 | | -- #115 - Fixed ReadTheDocs rendering pipeline |
119 | | -- #118 - Fixed a regression in `DiffSync.get(modelname, identifiers)` introduced in 1.5.0 |
120 | | - |
121 | | -## [v1.6.0] - 2022-07-09 |
122 | | - |
123 | | -### Changed |
124 | | - |
125 | | -- #120 - Dropped support for Python 3.6, new minimum is Python 3.7 |
126 | | - |
127 | | -## [v1.7.0] - 2022-11-03 |
128 | | - |
129 | | -### Changed |
130 | | - |
131 | | -- #176 - Remove pytest-redislite in favor of pytest-redis. |
132 | | -- #174 - Update Dockerfile to install build-essential |
133 | | - |
134 | | -### Added |
135 | | - |
136 | | -- #174 - Add methods to load data from dictionary and enable tree traversal |
137 | | -- #174 - Add a `get_or_none` method to the DiffSync class |
138 | | -- #168 - Add 'skip' counter to diff.summary() |
139 | | -- #169/#170 - Add documentation about model processing order |
140 | | -- #121/#140 - Add and configure renovate |
141 | | -- #140 - Add renovate configuration validation to the CI |
142 | | - |
143 | | -### Fixed |
144 | | - |
145 | | -- #149 - Limit redundant CI concurrency |
146 | | - |
147 | | -## [v1.8.0] - 2023-04-18 |
148 | | - |
149 | | -### Added |
150 | | - |
151 | | -- #182 - Added `get_or_add_model_instance()` and `update_or_add_model_instance()` APIs. |
152 | | -- #189 - Added note in `README.md` about running `invoke tests`. |
153 | | -- #190 - Added note in `README.md` about running `invoke build`. |
154 | | - |
155 | | -### Changed |
156 | | - |
157 | | -- #77/#188 - `sync_from()` and `sync_to()` now return the `Diff` that was applied. |
158 | | -- #211 - Loosened `packaging` and `structlog` library dependency constraints for broader compatibility. |
159 | | - |
160 | | -## [v1.9.0] - 2023-10-16 |
161 | | - |
162 | | -### Added |
163 | | - |
164 | | -- #220 - Implement DiffSyncModelFlags.NATURAL_DELETION_ORDER. |
165 | | - |
166 | | -### Changed |
167 | | - |
168 | | -- #219 - Type hinting overhaul |
169 | | - |
170 | | -## [v1.10.0] - 2023-11-16 |
171 | | - |
172 | | -### Fixed |
173 | | - |
174 | | -- #249 - Fixes natural deletion order flag |
175 | | -- #247 - Fixes underspecified typing_extensions dependency |
176 | | - |
177 | | -### Changed |
178 | | - |
179 | | -- #247 - Deprecates Python 3.7 |
0 commit comments