|
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