This release includes substantial reorganization around data object registration (no breaking changes) as well as minor quality of life improvements.
Improvements
* Thanks to a little reorganization, the `register_all` method on any of the object collections can now accept objects of any type (688). While the library always dispatched object types to the correct object collections, not being able to mix and match meant that `dry_run` couldn't be used to validate a whole material history.
* To help out with large object registrations, we've added a `status_bar` flag to register_all (694). Relax in the soft glow of slowly increasing numbers as you populate the platform.
* We're now using [gemd-python v1.2](https://github.com/CitrineInformatics/gemd-python/releases/tag/v1.2.0) for our data objects (#691). With this, you can now use `==` to compare complex material histories.
* And on the modeling side, we've added `INFER` to the `auto_configure` function (692). This will check your `DataSource` for a `FormulationsDescriptor` by default, which should help protect some toes from being stubbed.
Fixes
* And with thanks to external contributor shenganzhang and [pytest-flakefinder](https://github.com/dropbox/pytest-flakefinder), our tests are now robust to repeat evaluations (#690). Our community makes us stronger.