This is configurable with two new options:
- `calculate_dataset_hash`: in which cases Galaxy should calculate
a hash for a new dataset. Possible values: 'always', 'upload'
(the default), 'never'.
- `hash_function`. Possible values: 'md5', 'sha1', 'sha256', 'sha512'
Hashes are calculated via a Celery task, so currently only if
the 'enable_celery_tasks' option is set to true.
Currently when uploading datasets with associated hashes, this were
only validated if `validate_hashes=True` was also passed in the
request.
This commit drops `validate_hashes` completely and always validates
hashes when they were provided.
In API tests, replace no more working `uses_test_history` decorator (because
the `history_id` method parameter is interpreted as a fixture) with a real
class-level pytest fixture.
As a consequence, replace use of `self.history_id` in API tests because it
interferes with the class-level `history_id` fixture.
Also:
- Some type annotations
- Improves options and display around discarded datasets.
- Adds new APIs for importing model stores.
- Adds support to model store layer for importing/exporting workflow invocations and APIs and tests to support this.
- Add new DEFERRED dataset state - with APIs for materializing them or the option to defer them on the worker node if using tool_evaluation_strategy=remote on the job destination.
- UI and API options for uploading deferred datasets individually or into collections.