6ef7a92 | Jenkins for Software Heritage | 07 August 2020, 10:49:28 UTC | Updated debian changelog for version 0.13.0 | 07 August 2020, 10:49:28 UTC |
5e10f66 | Jenkins for Software Heritage | 07 August 2020, 10:49:27 UTC | Update upstream source from tag 'debian/upstream/0.13.0' Update to upstream version '0.13.0' with Debian dir 3ec0254ffee829e62706e79906b3358a9041c974 | 07 August 2020, 10:49:27 UTC |
e27f8a5 | Jenkins for Software Heritage | 07 August 2020, 10:49:24 UTC | New upstream version 0.13.0 | 07 August 2020, 10:49:24 UTC |
d9ff391 | Antoine R. Dumont (@ardumont) | 06 August 2020, 22:38:19 UTC | storage*: Rename and type content_get(List[Sha1]) -> List[Optional[Content]] Related to T645 | 07 August 2020, 10:24:41 UTC |
bfa8f46 | Antoine R. Dumont (@ardumont) | 06 August 2020, 20:56:09 UTC | storage*: Rename content_get_data(Sha1) -> Optional[bytes] Rename the confusing endpoint `content_get` to `content_get_data`. This now works on one content as it is how it is used today. Related to T645 | 07 August 2020, 10:21:36 UTC |
243e873 | Antoine R. Dumont (@ardumont) | 07 August 2020, 09:49:04 UTC | Simplify as Content.ctime None is popped out of a to_dict call in recent model since model 0.6.6 (similarly to the data field) Fixes build [1] [1] https://jenkins.softwareheritage.org/job/DSTO/job/tests/1534/console | 07 August 2020, 10:21:14 UTC |
653b1f9 | Antoine R. Dumont (@ardumont) | 06 August 2020, 10:55:23 UTC | cassandra.storage: Use next token for pagination instead of computing it The existing implementation computed the next token using the tok (adding 1). It's not good enough as it would skip some contents in case of collision on tok (collisions exist as the tok here is a noncryptographic hash on 32 bits). Related to T2518 | 06 August 2020, 16:50:27 UTC |
1ec875a | Jenkins for Software Heritage | 06 August 2020, 06:55:27 UTC | Updated debian changelog for version 0.12.0 | 06 August 2020, 06:55:27 UTC |
c587aa0 | Jenkins for Software Heritage | 06 August 2020, 06:55:26 UTC | Update upstream source from tag 'debian/upstream/0.12.0' Update to upstream version '0.12.0' with Debian dir 012b1b76ed424f2528fe7ba53a38e65371e3a40e | 06 August 2020, 06:55:26 UTC |
653d7e1 | Jenkins for Software Heritage | 06 August 2020, 06:55:22 UTC | New upstream version 0.12.0 | 06 August 2020, 06:55:22 UTC |
be9e958 | Antoine R. Dumont (@ardumont) | 05 August 2020, 18:01:20 UTC | in_memory: Drop dead code Related to T645 | 05 August 2020, 18:01:20 UTC |
0d72ea2 | Antoine R. Dumont (@ardumont) | 05 August 2020, 14:10:52 UTC | storage*: content_get_partition(...) -> PagedResult[Content] Related to T645 | 05 August 2020, 15:01:24 UTC |
b48d834 | Antoine R. Dumont (@ardumont) | 05 August 2020, 13:15:01 UTC | storage*: Drop deprecated content_get_range endpoint Related to T645 | 05 August 2020, 13:19:59 UTC |
4722663 | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:56:51 UTC | storage*: object_find_by_sha1_git: Type remaining existing endpoints Related to T2517 | 05 August 2020, 11:06:58 UTC |
334a016 | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:47:46 UTC | storage*: snapshot_get_branches: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:47:46 UTC |
27c7f07 | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:35:31 UTC | storage*: snapshot_count_branches: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:35:31 UTC |
ec620af | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:29:24 UTC | storage*: snapshot_get_by_origin_visit: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:29:24 UTC |
7c6c088 | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:23:47 UTC | storage*: snapshot_get: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:23:47 UTC |
ec4aed4 | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:12:05 UTC | storage*: snapshot_missing: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:23:11 UTC |
7dbd64d | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:10:06 UTC | storage*: release_get: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:23:07 UTC |
5f6630a | Antoine R. Dumont (@ardumont) | 05 August 2020, 10:07:15 UTC | storage*: release_missing: Type remaining existing endpoints Related to T2517 | 05 August 2020, 10:23:03 UTC |
c5d63ad | Antoine R. Dumont (@ardumont) | 05 August 2020, 07:46:37 UTC | storage*: origin_get_by_sha1: Drop generator from pgstorage And simplify its type Related to T645 | 05 August 2020, 09:12:56 UTC |
760cbf6 | Antoine R. Dumont (@ardumont) | 05 August 2020, 06:33:49 UTC | storage*: revision_*log: Type remaining existing endpoints Related to T645 | 05 August 2020, 09:12:56 UTC |
38ee525 | Antoine R. Dumont (@ardumont) | 05 August 2020, 06:17:42 UTC | storage*: revision_get: Type remaining existing endpoints Related to T645 | 05 August 2020, 06:18:28 UTC |
8b6d18e | Antoine R. Dumont (@ardumont) | 05 August 2020, 06:11:04 UTC | storage*: revision_missing: Type remaining existing endpoints Related to T645 | 05 August 2020, 06:11:04 UTC |
9f214bc | Antoine R. Dumont (@ardumont) | 04 August 2020, 21:04:26 UTC | storage*: directory_entry_get_by_path: Type remaining existing endpoints Related to T645 | 04 August 2020, 21:04:26 UTC |
f9d0952 | Antoine R. Dumont (@ardumont) | 04 August 2020, 20:35:45 UTC | storage*: directory_ls: Type remaining existing endpoints Related to T645 | 04 August 2020, 20:43:23 UTC |
fd5fd86 | Antoine R. Dumont (@ardumont) | 04 August 2020, 20:27:45 UTC | storage*: directory_missing: Type remaining existing endpoints Related to T645 | 04 August 2020, 20:27:45 UTC |
5d13cd7 | Antoine R. Dumont (@ardumont) | 04 August 2020, 20:07:34 UTC | storage*: skipped_content_missing: Type remaining existing endpoints Related to T645 | 04 August 2020, 20:17:00 UTC |
1a2aa70 | Antoine R. Dumont (@ardumont) | 04 August 2020, 16:57:37 UTC | storage*: content_missing_per_sha1_git: Type remaining existing endpoints Related to T645 | 04 August 2020, 19:42:19 UTC |
15e4863 | Antoine R. Dumont (@ardumont) | 04 August 2020, 16:55:39 UTC | storage*: content_missing_per_sha1: Type remaining existing endpoints Related to T645 | 04 August 2020, 19:41:36 UTC |
b62afbb | Antoine R. Dumont (@ardumont) | 04 August 2020, 16:13:43 UTC | storage*: content_missing: Unify and type remaining existing endpoints This updates the docstrings as well Related to T645 | 04 August 2020, 16:52:00 UTC |
d6f26e4 | Antoine R. Dumont (@ardumont) | 04 August 2020, 16:06:06 UTC | storage*: content_get_partition: Type remaining existing endpoints Related to T645 | 04 August 2020, 16:51:59 UTC |
8644733 | Antoine R. Dumont (@ardumont) | 04 August 2020, 15:56:39 UTC | storage*: content_get_range: Type remaining existing endpoints Related to T645 | 04 August 2020, 16:51:59 UTC |
c6da282 | Antoine R. Dumont (@ardumont) | 04 August 2020, 15:45:31 UTC | storage*: content_get: Type remaining existing endpoints Related to T645 | 04 August 2020, 16:51:59 UTC |
25ebc48 | Antoine R. Dumont (@ardumont) | 04 August 2020, 15:42:12 UTC | storage*: content_update: Type remaining existing endpoints Related to T645 | 04 August 2020, 16:51:59 UTC |
c32e224 | Antoine R. Dumont (@ardumont) | 04 August 2020, 15:59:46 UTC | storage*: origin_get_by_sha1: Type remaining existing endpoints Related to T645 | 04 August 2020, 16:39:48 UTC |
26ef015 | Antoine R. Dumont (@ardumont) | 04 August 2020, 15:59:24 UTC | storage*: check_config: Type remaining existing endpoints Related to T645 | 04 August 2020, 16:00:30 UTC |
1b96ace | Jenkins for Software Heritage | 04 August 2020, 12:15:22 UTC | Updated debian changelog for version 0.11.10 | 04 August 2020, 12:15:22 UTC |
9d11a4e | Jenkins for Software Heritage | 04 August 2020, 12:15:20 UTC | Update upstream source from tag 'debian/upstream/0.11.10' Update to upstream version '0.11.10' with Debian dir 0682ec4aedae9d395e591d7baaf54449a576de9b | 04 August 2020, 12:15:20 UTC |
6ca837c | Jenkins for Software Heritage | 04 August 2020, 12:15:16 UTC | New upstream version 0.11.10 | 04 August 2020, 12:15:16 UTC |
a5232b7 | Antoine R. Dumont (@ardumont) | 04 August 2020, 10:40:24 UTC | tests: Improve coverage on directory_ls endpoints This fixes the current directory listing tests coverage to check down to the contents. This also fixes one inconsistent test data and the tests impacted by this change. | 04 August 2020, 11:34:48 UTC |
15e8c99 | Antoine R. Dumont (@ardumont) | 04 August 2020, 08:06:50 UTC | storage*: Type content_find(...) -> List[Content] Related to T645 | 04 August 2020, 09:22:45 UTC |
3c2e5a3 | Antoine R. Dumont (@ardumont) | 03 August 2020, 11:21:29 UTC | storage*: Type {cnt,dir,rev,rel,snp}_get_random(...) -> Sha1Git Related to T645 | 03 August 2020, 14:23:44 UTC |
44807d8 | Jenkins for Software Heritage | 03 August 2020, 10:02:56 UTC | Updated debian changelog for version 0.11.9 | 03 August 2020, 10:02:56 UTC |
37689c9 | Jenkins for Software Heritage | 03 August 2020, 10:02:55 UTC | Update upstream source from tag 'debian/upstream/0.11.9' Update to upstream version '0.11.9' with Debian dir 01423f66eb2af59524c287338dc4235b9f95cf3c | 03 August 2020, 10:02:55 UTC |
e420486 | Jenkins for Software Heritage | 03 August 2020, 10:02:51 UTC | New upstream version 0.11.9 | 03 August 2020, 10:02:51 UTC |
aa58e10 | Antoine R. Dumont (@ardumont) | 31 July 2020, 15:56:13 UTC | storage*: Drop origin-get-range in favor of origin-list Related to T645 | 03 August 2020, 09:39:58 UTC |
87c5ba2 | Antoine R. Dumont (@ardumont) | 01 August 2020, 07:07:12 UTC | storage*: Do not allow unknown visit status in origin_visit*_get_latest That makes some storage (pg-storage) fail without that filtering. | 01 August 2020, 07:07:12 UTC |
9c18381 | Jenkins for Software Heritage | 31 July 2020, 13:17:40 UTC | Updated debian changelog for version 0.11.8 | 31 July 2020, 13:17:40 UTC |
de9a56a | Jenkins for Software Heritage | 31 July 2020, 13:17:38 UTC | Update upstream source from tag 'debian/upstream/0.11.8' Update to upstream version '0.11.8' with Debian dir 04155cd323a18583d6dae27f6620810e55c1e0d4 | 31 July 2020, 13:17:38 UTC |
cce71b8 | Jenkins for Software Heritage | 31 July 2020, 13:17:34 UTC | New upstream version 0.11.8 | 31 July 2020, 13:17:34 UTC |
92f1183 | Antoine R. Dumont (@ardumont) | 31 July 2020, 12:51:14 UTC | storage*: Add type annotation to origin_count Related to T645 | 31 July 2020, 12:51:14 UTC |
3466e48 | Antoine R. Dumont (@ardumont) | 31 July 2020, 11:56:46 UTC | Reuse swh.core stream_results function Related to T645 | 31 July 2020, 12:15:51 UTC |
0eb309e | Valentin Lorentz | 31 July 2020, 11:00:42 UTC | Rename argument 'object_type' of raw_extrinsic_metadata_get to 'type'. For consistency with RawExtrinsicMetadata. | 31 July 2020, 11:00:59 UTC |
b385c79 | Valentin Lorentz | 31 July 2020, 10:30:31 UTC | Make raw_extrinsic_metadata_get return PagedResult instead of Dict. | 31 July 2020, 10:56:34 UTC |
df943ec | Valentin Lorentz | 31 July 2020, 08:11:57 UTC | pg: Rewrite _origin_query to force the query planner to filter on URLs before filtering on visits. URL filters usually have a few matches and use the index; whereas filtering on visits requires to scan the entire origin table first. This makes the query considerably faster. Credit for the idea goes to @olasd. | 31 July 2020, 08:12:41 UTC |
0c5a8e2 | Valentin Lorentz | 30 July 2020, 17:39:41 UTC | Add support for metadata-related object types to the backfiller and replayer. Existing tests automatically test them, using data from swh.journal.tests. | 30 July 2020, 17:39:41 UTC |
24bc51d | Valentin Lorentz | 30 July 2020, 17:33:14 UTC | test_replay: update for swh.journal 0.4.1. DUPLICATE_CONTENTS now contains BaseModel objects. | 30 July 2020, 17:36:49 UTC |
221e40c | Jenkins for Software Heritage | 30 July 2020, 14:29:11 UTC | Updated debian changelog for version 0.11.6 | 30 July 2020, 14:29:11 UTC |
c8d6673 | Jenkins for Software Heritage | 30 July 2020, 14:29:09 UTC | Update upstream source from tag 'debian/upstream/0.11.6' Update to upstream version '0.11.6' with Debian dir 71a5fa5147e4c905fe8adc91fbd3ee792f62aae1 | 30 July 2020, 14:29:09 UTC |
8608172 | Jenkins for Software Heritage | 30 July 2020, 14:29:06 UTC | New upstream version 0.11.6 | 30 July 2020, 14:29:06 UTC |
cf9f44e | Antoine R. Dumont (@ardumont) | 30 July 2020, 14:07:53 UTC | storage*: Type origin_search(...) -> PagedResult[Origin] Related to T645 | 30 July 2020, 14:24:55 UTC |
4d52fc1 | Antoine R. Dumont (@ardumont) | 30 July 2020, 12:32:20 UTC | storage*: Adapt origin_list(...) -> PagedResult[Origin] Related to T645 | 30 July 2020, 12:32:20 UTC |
7beba93 | Antoine R. Dumont (@ardumont) | 30 July 2020, 07:58:40 UTC | algos.snapshot: Open snapshot_id_get_from_revision This leverages the latest change in origin_visit_get and origin_visit_status_get to iterate over visit and visit status to detect a snapshot targetting a revision. This algo got used recently in the deposit. It may serve again. Related to T645 | 30 July 2020, 12:10:12 UTC |
b81f928 | Antoine R. Dumont (@ardumont) | 29 July 2020, 14:33:31 UTC | storage*: add origin_visit_status_get(...) -> PagedResult[OriginVisitStatus] Related to T645 | 30 July 2020, 12:05:39 UTC |
8cf6efa | Valentin Lorentz | 29 July 2020, 13:13:04 UTC | Add type annotations on get_storage. The main goal of this commit is to add '-> StorageInterface', so all storage users automatically get type-checked. But mypy was whining about the multiple imports, so this commit also deduplicates the import statements as a side-effect. | 30 July 2020, 11:53:38 UTC |
e63b78c | Valentin Lorentz | 30 July 2020, 09:30:28 UTC | buffer: Pass lists to backend functions, not iterables. Unbreaks swh-loader-core's tests, which are all red when run with the current swh-storage version. Unfortunately, swh-storage's tests did not catch it, because the in-memory backend works fine with iterables, but the pg backend doesn't. | 30 July 2020, 09:30:28 UTC |
7667f7e | Valentin Lorentz | 29 July 2020, 14:59:59 UTC | test_origin_visit_get_all: Use tokens as opaque values. | 29 July 2020, 15:23:33 UTC |
708522d | Valentin Lorentz | 29 July 2020, 14:52:10 UTC | test_origin_visit_get_all: Make assertions consistent. | 29 July 2020, 15:23:24 UTC |
2bfd2f7 | Antoine R. Dumont (@ardumont) | 29 July 2020, 14:55:16 UTC | storage*: Simplify next-page-token computation Related to T645 | 29 July 2020, 15:12:00 UTC |
874646e | Valentin Lorentz | 29 July 2020, 14:51:51 UTC | filter: Fix types passed to the proxied storage. | 29 July 2020, 14:51:51 UTC |
24559bb | Valentin Lorentz | 29 July 2020, 08:30:45 UTC | Fix upcoming type warning with swh.core > v0.1.2. origin_visit_status_get_latest expects an int, not Optional[int]; but this error wasn't detected so far because mypy couldn't detect the type of the function. The next release of swh.core fixes that issue, so this fix is now needed to not trigger a mypy error. | 29 July 2020, 14:24:11 UTC |
b6202a0 | Valentin Lorentz | 29 July 2020, 08:26:32 UTC | Make API endpoints take Lists instead of Iterables as arguments 1. clients crash when they call the API with an iterator 2. some backend implementations violate the contract by assuming the argument is a sequence (eg. by iterating twice on it, and assuming the elements are the same) 3. no matter what we do, the endpoints will always get a list as argument in practice, because they go through the RPC framework 4. there is no concrete (ha!) advantage in taking an Iterable rather than a List. | 29 July 2020, 14:24:11 UTC |
21b7730 | Antoine R. Dumont (@ardumont) | 27 July 2020, 20:17:59 UTC | storage*: use an enum to explicit the order in origin_visit_get Related to T645 | 29 July 2020, 12:43:36 UTC |
643ebc6 | Antoine R. Dumont (@ardumont) | 27 July 2020, 20:17:59 UTC | storage*: origin_visit_get(...) -> PagedResult[OriginVisit] Related to T645 | 29 July 2020, 12:43:36 UTC |
f543bd5 | Valentin Lorentz | 28 July 2020, 13:59:35 UTC | Write metadata + metadata authorities/fetchers to the journal. | 28 July 2020, 13:59:35 UTC |
9167dc7 | Jenkins for Software Heritage | 28 July 2020, 08:10:21 UTC | Updated debian changelog for version 0.11.5 | 28 July 2020, 08:10:21 UTC |
d48adf4 | Jenkins for Software Heritage | 28 July 2020, 08:10:20 UTC | Update upstream source from tag 'debian/upstream/0.11.5' Update to upstream version '0.11.5' with Debian dir a25d13a30234e582d4f2f5c2700eab3db2c2a492 | 28 July 2020, 08:10:20 UTC |
b4cd42d | Jenkins for Software Heritage | 28 July 2020, 08:10:17 UTC | New upstream version 0.11.5 | 28 July 2020, 08:10:17 UTC |
77960ca | Valentin Lorentz | 28 July 2020, 07:40:57 UTC | in_memory: fix tie-breaking when two visits have the same date. swh-loader-core's tests depend on this behavior. | 28 July 2020, 07:54:55 UTC |
7543dc8 | Jenkins for Software Heritage | 27 July 2020, 14:16:18 UTC | Updated debian changelog for version 0.11.4 | 27 July 2020, 14:16:18 UTC |
548f018 | Jenkins for Software Heritage | 27 July 2020, 14:16:17 UTC | Update upstream source from tag 'debian/upstream/0.11.4' Update to upstream version '0.11.4' with Debian dir a95acf15bcf503742e7f5ce212010932a5cc49a5 | 27 July 2020, 14:16:17 UTC |
b64c58d | Jenkins for Software Heritage | 27 July 2020, 14:16:13 UTC | New upstream version 0.11.4 | 27 July 2020, 14:16:13 UTC |
119d01e | Antoine R. Dumont (@ardumont) | 27 July 2020, 12:18:32 UTC | storage*: origin_visit_get_by -> Optional[OriginVisit] Related to T645 | 27 July 2020, 12:44:16 UTC |
2d51be9 | Valentin Lorentz | 27 July 2020, 11:23:18 UTC | Rename object_metadata to raw_extrinsic_metadata. For consistency with the name in swh-model. | 27 July 2020, 12:18:49 UTC |
57e305e | Antoine R. Dumont (@ardumont) | 27 July 2020, 10:44:37 UTC | storage*: origin_visit_find_by_date -> Optional[OriginVisit] Related to T645 | 27 July 2020, 10:46:35 UTC |
b31c304 | Antoine R. Dumont (@ardumont) | 26 July 2020, 08:22:40 UTC | algos.origin: Simplify origin_get_latest_visit_status function | 27 July 2020, 09:56:33 UTC |
5344a6f | Antoine R. Dumont (@ardumont) | 26 July 2020, 06:05:10 UTC | storage*: type origin_visit_get_latest endpoint result The endpoint returns an optional OriginVisit object instead of a dict: ``` def origin_visit_get_latest(...) -> Optional[OriginVisit] ``` It also fixes the in-memory storage implementation which filtered data too early. It only filtered on the latest origin visit status associated to the origin visit. So depending on filters, this could have been wrong. It was not much of a problem as there is no longer any direct clients of this api (they are using [1] now). [1] swh.storage.algos.origin.origin_get_latest_origin_visit_status function Related to T645 | 27 July 2020, 09:56:33 UTC |
6f0946d | Jenkins for Software Heritage | 27 July 2020, 06:08:56 UTC | Updated debian changelog for version 0.11.3 | 27 July 2020, 06:08:56 UTC |
2324094 | Jenkins for Software Heritage | 27 July 2020, 06:08:54 UTC | Update upstream source from tag 'debian/upstream/0.11.3' Update to upstream version '0.11.3' with Debian dir b2477219c2018c32c320df9ddcf9f011f7185c12 | 27 July 2020, 06:08:54 UTC |
65ea9e8 | Jenkins for Software Heritage | 27 July 2020, 06:08:50 UTC | New upstream version 0.11.3 | 27 July 2020, 06:08:50 UTC |
789972f | Valentin Lorentz | 24 July 2020, 07:28:33 UTC | metadata_{authority,fetcher}_add: Fix crash when the iterable argument is empty. | 24 July 2020, 07:28:33 UTC |
7e94767 | Antoine R. Dumont (@ardumont) | 23 July 2020, 15:47:04 UTC | storage*: origin_get(Iterable[str]) -> Iterable[Optional[Origin]] This: - drops the legacy behavior (no more input as list of dicts or even one dict). - aligns with other _get endpoints (only 1 iterable of identifiers as input, here the origin urls). - migrates towards returning an iterable of optional origin model objects (again the optional part is alignment with existing get endpoint) Related to T645 | 23 July 2020, 16:16:38 UTC |
d8583eb | Antoine R. Dumont (@ardumont) | 22 July 2020, 12:22:45 UTC | storage*.origin_visit_get_random: Read model objects Related to T645 | 23 July 2020, 12:10:07 UTC |
ccbcee9 | Jenkins for Software Heritage | 23 July 2020, 10:18:15 UTC | Updated debian changelog for version 0.11.2 | 23 July 2020, 10:18:15 UTC |
1bd6fa1 | Jenkins for Software Heritage | 23 July 2020, 10:18:14 UTC | Update upstream source from tag 'debian/upstream/0.11.2' Update to upstream version '0.11.2' with Debian dir d959a8c4b061404f92da4b96189a773245484f35 | 23 July 2020, 10:18:14 UTC |
8052056 | Jenkins for Software Heritage | 23 July 2020, 10:18:11 UTC | New upstream version 0.11.2 | 23 July 2020, 10:18:11 UTC |
b2055f4 | Antoine R. Dumont (@ardumont) | 23 July 2020, 07:16:19 UTC | pgstorage: Drop unnecessary indirection from reading origin_visit It's a missing left-over from the migration to making the origin-visit immutable. | 23 July 2020, 08:28:09 UTC |
ccbd2e9 | Antoine R. Dumont (@ardumont) | 22 July 2020, 06:46:10 UTC | pytest_plugin: Make sample_data an object Note that this: - drops the no longer needed copy done by the StorageData instance (used by sample_data) since now it returned immutable BaseModel objects. - centralizes some left-over tests to use sample_data as well | 22 July 2020, 10:41:08 UTC |