Proposal: Add the following information about each asset/test to the status.yaml files:
asset size
(maybe) asset ID
(maybe) asset modified property from Archive
(maybe) asset blobDateModified metadata field from Archive
test start time
test duration
(maybe) the current (short?) Git commit hash of the dandisets-healthstatus repository
(Compare #82, which proposes recording the same information in files that aren't overwritten.)
This would necessitate restructuring the status.yaml files. One possibility would be to replace the tests and untested fields with a single assets field containing lists of objects with the following fields:
path
size
asset_id?
blob_id?
modified?
blob_modified?
mime_type — only defined for "untested" assets
tests: a mapping from test names to objects with the following fields:
outcome (string) — "pass", "fail", or "timeout"
timestamp (timestamp) — starting time of the test process
duration (float) — duration of the test process in seconds
versions
(Note to self: If any of an asset's details change, delete any test records for the old details.)
This would result in each test's assets no longer being grouped by outcome, meaning that linking to blocks of test results from the README will no longer be an option.
However, much of the above information seems worth recording regardless, particularly asset size and test duration, which could be used to analyze our timeout issues. It would also allow for listing assets that haven't had any tests run on them yet.
(Also, while we're modifying the status.yaml schema, I'd like to adjust the last_run, last_run_ended, and last_run_duration fields; it would be cleaner if they were renamed to start, end, & duration and were placed within a sub-mapping with the key last_full_run. The use of "full" in the key name is due to the fact that, currently, these fields are only updated for --mode all runs.)
Proposal: Add the following information about each asset/test to the
status.yaml
files:modified
property from ArchiveblobDateModified
metadata field from Archivedandisets-healthstatus
repository(Compare #82, which proposes recording the same information in files that aren't overwritten.)
This would necessitate restructuring the
status.yaml
files. One possibility would be to replace thetests
anduntested
fields with a singleassets
field containing lists of objects with the following fields:path
size
asset_id
?blob_id
?modified
?blob_modified
?mime_type
— only defined for "untested" assetstests
: a mapping from test names to objects with the following fields:outcome
(string) —"pass"
,"fail"
, or"timeout"
timestamp
(timestamp) — starting time of the test processduration
(float) — duration of the test process in secondsversions
(Note to self: If any of an asset's details change, delete any test records for the old details.)
This would result in each test's assets no longer being grouped by outcome, meaning that linking to blocks of test results from the README will no longer be an option.
However, much of the above information seems worth recording regardless, particularly asset size and test duration, which could be used to analyze our timeout issues. It would also allow for listing assets that haven't had any tests run on them yet.
(Also, while we're modifying the
status.yaml
schema, I'd like to adjust thelast_run
,last_run_ended
, andlast_run_duration
fields; it would be cleaner if they were renamed tostart
,end
, &duration
and were placed within a sub-mapping with the keylast_full_run
. The use of "full" in the key name is due to the fact that, currently, these fields are only updated for--mode all
runs.)@yarikoptic: Your thoughts?