|
1 | 1 | # Change Log |
2 | 2 |
|
| 3 | +## [2.4.2](https://github.com/DataONEorg/d1_python/tree/2.4.2) (2018-02-15) |
| 4 | +[Full Changelog](https://github.com/DataONEorg/d1_python/compare/2.4.1...2.4.2) |
| 5 | + |
| 6 | +* DataONE Generic Member Node (GMN) |
| 7 | + * Add SysMeta XML doc to each object returned in BagIt from getPackage() |
| 8 | + * Fix configuration checks performed at startup and improve messages |
| 9 | + * Add option to limit number of objects to import in bulk importer |
| 10 | + * Add tests for settings check performed at GMN startup |
| 11 | + |
| 12 | +* DataONE Client Library |
| 13 | + * Move updateSystemMetadata() to baseclient to make it availble for CN calls |
| 14 | + |
| 15 | +* DataONE Common Library |
| 16 | + * Update dependencies to current as of 2018-02-15 |
| 17 | + * Improve StringIterator to allow for more general usage |
| 18 | + |
| 19 | +* Tests and test framework |
| 20 | + * Add memory_limit context manager and associated test |
| 21 | + * Provides ability to fail unit tests that exceed a given memory usage target |
| 22 | + * Based on psutil, which is added as a new dependency |
| 23 | + * Add workaround for MultipartEncoder bug in Django test client |
| 24 | + * Improve performance in instance generator |
| 25 | + * Skip generating PyXB objects that will not be used in the final SysMeta object |
| 26 | + * Ensure unique media types in test objects |
| 27 | + * Check that dateSysMetadataModified of object obsoleted by update() is set to the GMN server's current datetime |
| 28 | + |
3 | 29 | ## [2.4.1](https://github.com/DataONEorg/d1_python/tree/2.4.1) (2017-12-14) |
4 | 30 | [Full Changelog](https://github.com/DataONEorg/d1_python/compare/2.4.0...2.4.1) |
5 | 31 |
|
6 | | -* GMN |
| 32 | +* DataONE Generic Member Node (GMN) |
7 | 33 | * Add XML Schema (XSD) validation of incoming Science Metadata documents |
8 | 34 | * Applies to calls to MNStorage.create() and MNStorage.update() |
9 | 35 | * Controlled by new SCIMETA_VALIDATION_* settings |
|
12 | 38 | * Fix bug that prevented process_refresh_queue from running |
13 | 39 | * Improve error handling and logging in bulk importer |
14 | 40 |
|
15 | | -* d1_common |
| 41 | +* DataONE Common Library |
16 | 42 | * Add new package for validating Science Metadata |
17 | 43 | * The required schemas are included in the package |
18 | 44 | * Improve error handling in multiprocessed iterators |
|
29 | 55 | ## [2.4.0](https://github.com/DataONEorg/d1_python/tree/2.4.0) (2017-11-16) |
30 | 56 | [Full Changelog](https://github.com/DataONEorg/d1_python/compare/2.3.8...2.4.0) |
31 | 57 |
|
32 | | -* GMN |
| 58 | +* DataONE Generic Member Node (GMN) |
33 | 59 | * Fix ServiceFailure caused by some `listObjects()` and `getLogRecords()` slice requests |
34 | 60 | * Fix datetimes in DataONE types sometimes returned as naive instead of in the UTC timezone |
35 | 61 | * Add support for returning BagIt zip archives from `getPackage()` |
|
53 | 79 | * identifier related functionality |
54 | 80 | * Misc |
55 | 81 |
|
56 | | -* d1_common |
| 82 | +* DataONE Common Library |
57 | 83 | * Add AccessPolicyWrapper, a wrapper for the AccessPolicy DataONE type adds type specific and intuitive methods directly on the object |
58 | 84 | * Add SimpleXMLWrapper, similar functionality for XML |
59 | 85 | * These abstract away the details of the types and provide for concise and intuitive code |
|
66 | 92 | * Improve utilities for comparing and normalizing XML |
67 | 93 | * New date-time functions to better handle timezones |
68 | 94 |
|
69 | | -* d1_client |
| 95 | +* DataONE Client Library |
70 | 96 | * Improve error handling in multiprocessed iterators |
71 | 97 |
|
72 | | -* Test framework |
| 98 | +* Tests and test framework |
| 99 | + * Add around 300 tests since 2.3.8. |
73 | 100 | * Add support for running tests in parallel with `pytest.xdist` |
74 | 101 | * Run of test set, currently around 1100 tests, reduced from 7 to 2 min on dev machine |
75 | 102 | * Each worker runs against a separate copy of the GMN database, instantiated from shared template |
|
87 | 114 | * Misc other smaller test framework improvements |
88 | 115 |
|
89 | 116 | * Misc |
90 | | - * Add around 300 tests since 2.3.8. |
91 | 117 | * Update dependencies to current as of 2017-11-16 |
92 | | - * Refactoring: |
93 | | - * Better timezone support throughout d1_python |
94 | | - * Misc |
| 118 | + * Better timezone support throughout d1_python |
95 | 119 |
|
96 | 120 | ## [2.3.8](https://github.com/DataONEorg/d1_python/tree/2.3.8) (2017-10-20) |
97 | 121 | [Full Changelog](https://github.com/DataONEorg/d1_python/compare/2.3.6...2.3.8) |
98 | 122 |
|
99 | | -* Update all dependencies to current versions as of 2017-10-20 |
100 | | -* GMN: |
| 123 | +* DataONE Generic Member Node (GMN) |
101 | 124 | * Add support for storing partial and out-of-order revision chains |
102 | 125 | * Automatically combine chain fragments that are found to be part of the |
103 | 126 | same chain |
|
108 | 131 | * Add support for general migrations to bulk importer |
109 | 132 | * Remove old migrate_v1_to_v2 command |
110 | 133 | * Update database test fixtures and sample docs |
111 | | -* Add misc methods, docstrings and tests to d1_common access_policy module |
112 | | -* Update PyXB bindings to PyXB 1.2.6 and update generator script |
113 | | -* Add multiprocessed log record iterator |
114 | | -* Refactor multiprocessed iterators to improve reliability |
115 | | -* Add API v1.2 MN method wrappers (view and package methods) |
| 134 | + |
| 135 | +* DataONE Client Library |
| 136 | + * Add multiprocessed log record iterator |
| 137 | + * Refactor multiprocessed iterators to improve reliability |
| 138 | + * Add API v1.2 MN method wrappers (view and package methods) |
| 139 | + |
| 140 | +* DataONE Common Library |
| 141 | + * Add misc methods, docstrings and tests to access_policy module |
| 142 | + * Update PyXB bindings to PyXB 1.2.6 and update generator script |
| 143 | + |
| 144 | +* Misc |
| 145 | + * Update dependencies to current as of 2017-10-20 |
| 146 | + |
116 | 147 |
|
117 | 148 | ## [2.3.6](https://github.com/DataONEorg/d1_python/tree/2.3.6) (2017-08-24) |
118 | 149 | [Full Changelog](https://github.com/DataONEorg/d1_python/compare/2.3.5...2.3.6) |
119 | 150 |
|
120 | | -* Update all dependencies to current versions as of 2017-08-24 |
121 | | -* GMN: |
| 151 | +* DataONE Generic Member Node (GMN) |
122 | 152 | * Add extended listObjects() API |
123 | 153 | * Fast method for retrieving large number of selected sysmeta values |
124 | 154 | * Returns JSON |
|
135 | 165 | * Keep track of ownership and versioning of sciobj filesystem store |
136 | 166 | * Check every minute instead of every hour for new replication and sysmeta refresh tasks |
137 | 167 | * Ongoing refactoring of diagnostics |
138 | | -* Other: |
139 | | - * Add support for disabling timeout in d1_client by passing timeout=None, 0 or 0.0 |
140 | | -* Testing: |
| 168 | + |
| 169 | +* DataONE Client Library |
| 170 | + * Add support for disabling timeout by passing timeout=None, 0 or 0.0 |
| 171 | + |
| 172 | +* Tests and test framework |
141 | 173 | * Add various small unit test improvements |
142 | 174 | * Add automatic migration of test database |
143 | 175 | * Update samples |
144 | 176 | * Ensure that files deleted after previous build are not included in later releases |
145 | 177 |
|
| 178 | +* Misc |
| 179 | + * Update dependencies to current as of 2017-08-24 |
146 | 180 |
|
147 | 181 | ## [2.3.5](https://github.com/DataONEorg/d1_python/tree/2.3.5) (2017-08-08) |
148 | 182 | [Full Changelog](https://github.com/DataONEorg/d1_python/compare/2.3.4...2.3.5) |
149 | 183 |
|
150 | | -* Update all dependencies to current versions as of 2017-08-07 |
151 | | - |
152 | | -* Add general bulk importer management command |
153 | | - * Allows upgrading from any earlier version of GMN or other MN stack |
154 | | - |
155 | | -* Add shared module for handling obsolescence chains / revisions |
156 | | - * `d1_common/revision.py` |
157 | | - |
158 | | -* Rename methods for creating missing directory names |
159 | | - * `d1_common/util.py` |
160 | | - |
161 | | -* Add default page size of 100 records for getLogRecords() |
162 | | - * `d1_common/const.py` |
163 | | - |
164 | | -* Expose a ".total" attribute in iterators |
165 | | - * Clients can read the value from .total to keep track of progress. Earlier, clients had to perform a separate query using filter parameters matching those used by the iterator. There was also a potential race, in that the total could change between query by the iterator and by the client. |
166 | | - |
167 | | -* Change iterator arguments: |
168 | | - * ObjectListIterator: listObjects_args_dict -> list_objects_args |
169 | | - * LogRecordIterator: getLogRecords_dict -> get_log_records_arg_dict |
170 | | - |
171 | | -* Add get_and_save() wrapper for MNRead.get() |
172 | | - * This is a convenience method added because correctly saving the result |
173 | | -from get() to a file is a bit tricky, while it is also the most common |
174 | | -use of get(). |
175 | | - * Add option to create missing directories for MNRead.get_and_save() |
176 | | - |
177 | | -* Add section in README.md about db fixtures for GMN, how they're used, how to generate them |
178 | | - * Improve procedure for regenerating db fixture |
179 | | - |
180 | | -* Add mock API handlers |
181 | | - * MNCore.getCapabilities() |
182 | | - * CNCore.listNodes() |
183 | | - |
184 | | -* Fix bug: SID did not resolve correctly |
185 | | - * Add tests for SID resolve |
186 | | - |
187 | | -* Update default User-Agent to DataONE_Python/x.y.z +http://dataone.org/ |
188 | | - |
189 | | -* Add misc type related utilities to d1_common |
190 | | - * `d1_common/type_conversions.py`, etc. |
191 | | - |
192 | | -* Add support for v2 CNRead.synchronize() |
193 | | - |
194 | | -* Add description on how to use stream=True with MNRead.get() |
195 | | - |
196 | | -* Add handling of db where migrations are out of sync in fixture generator |
197 | | - |
198 | | -* Add cleardb diag management command |
| 184 | +* DataONE Generic Member Node (GMN) |
| 185 | + * Add general bulk importer management command |
| 186 | + * Allows upgrading from any earlier version of GMN or other MN stack |
| 187 | + * Add cleardb diag management command |
199 | 188 | * Remove cleardb from the diags page |
200 | 189 | * Start code for other "diag" management commands |
201 | | - |
202 | | -* Improve the way that chains are represented in the db |
| 190 | + * Improve the way that chains are represented in the db |
203 | 191 | * Less code and faster SID related queries |
| 192 | + * Update revision change related model name |
| 193 | + * After earlier modifications in how the chains are represented, the old names were misleading |
| 194 | + * Add SID filtering support |
| 195 | + * Add support for passing SID as the getLogRecords() idFilter and listObjects() identifier args |
| 196 | + * Note: We don't resolve SIDs for v1, so the v1 pidFilter argument cannot take a SID. |
| 197 | + * Add tests for SID filtering |
| 198 | + * Fix bug: Unable to run management commands |
| 199 | + * Update node registration doc to reflects updated manage.py commands |
| 200 | + |
| 201 | +* DataONE Client Library |
| 202 | + * Add support for v2 CNRead.synchronize() |
| 203 | + * Expose a ".total" attribute in iterators |
| 204 | + * Clients can read the value from .total to keep track of progress. Earlier, clients had to perform a separate query using filter parameters matching those used by the iterator. There was also a potential race, in that the total could change between query by the iterator and by the client. |
| 205 | + * Change iterator arguments: |
| 206 | + * ObjectListIterator: listObjects_args_dict -> list_objects_args |
| 207 | + * LogRecordIterator: getLogRecords_dict -> get_log_records_arg_dict |
| 208 | + * Add get_and_save() wrapper for MNRead.get() |
| 209 | + * This is a convenience method added because correctly saving the result from get() to a file is a bit tricky, while it is also the most common use of get(). |
| 210 | + * Add option to create missing directories for MNRead.get_and_save() |
| 211 | + * Add description on how to use stream=True with MNRead.get() |
| 212 | + |
| 213 | +* DataONE Common Library |
| 214 | + * Add module for handling obsolescence chains / revisions |
| 215 | + * `d1_common/revision.py` |
| 216 | + * Rename methods for creating missing directory names |
| 217 | + * `d1_common/util.py` |
| 218 | + * Add default page size of 100 records for getLogRecords() |
| 219 | + * `d1_common/const.py` |
| 220 | + * Update default User-Agent to DataONE_Python/x.y.z +http://dataone.org/ |
| 221 | + * Add misc type related utilities to d1_common |
| 222 | + * `d1_common/type_conversions.py`, etc. |
204 | 223 |
|
205 | | -* Update revision change related model name |
206 | | - After earlier modifications in how the chains are represented, the old |
207 | | -names were misleading. |
208 | | - |
209 | | -* Add SID filtering support |
210 | | - * Add support for passing SID as the getLogRecords() idFilter and listObjects() identifier args. |
211 | | - * Note: We don't resolve SIDs for v1, so the v1 pidFilter argument cannot take a |
212 | | -SID. |
213 | | - * Add tests for SID filtering |
214 | | - |
215 | | -* Fix bug: Unable to run management commands |
216 | | - |
217 | | -* Update node registration doc to reflects updated manage.py commands |
218 | | - |
219 | | -* Add script that checks scimeta indexing |
| 224 | +* Tests and test framework |
| 225 | + * Add section in README.md about db fixtures for GMN, how they're used, how to generate them |
| 226 | + * Improve procedure for regenerating db fixture |
| 227 | + * Add mock API handlers |
| 228 | + * MNCore.getCapabilities() |
| 229 | + * CNCore.listNodes() |
| 230 | + * Fix bug: SID did not resolve correctly |
| 231 | + * Add tests for SID resolve |
| 232 | + * Add handling of db where migrations are out of sync in fixture generator |
| 233 | + * Add script that checks scimeta indexing |
220 | 234 |
|
221 | | -* Misc refactoring and internal improvements |
| 235 | +* Misc |
| 236 | + * Update dependencies to current as of 2017-08-07 |
0 commit comments