Fix Version/s: None
Sprint:AP S21-3 (February)
The existing upload script (dispatch_verify.py) assumes that metric values have been persisted in Job objects. Once we can store metric values in Gen 3 repositories, we need to be able to read those as part of the upload process.
Story point value assumes that using Gen 3 Butler inside something that's not a PipelineTask is difficult.
DM-21888 Stand up Gen3 version of ap_verify HiTS (2015) CI test
DM-28888 Allow SQuaSH uploads from ap_verify Gen 3
- is blocked by
DM-21875 Add StorageClass and Formatter support necessary to persist lsst.verify.Measurement in Gen3 repos
- relates to
DM-28757 Factor upload format out of lsst.verify.Job
- To Do
DM-21885 Convert concrete MetricTasks to PipelineTasks
DM-25507 Tooling to report to SQuaSH
DM-28351 Add faro to lsst_distrib
DM-24262 Run HSC AP processing in CI using Gen 3
DM-12549 ap_pipe must call AssociationTask in a reproducible order
|Team||SQuaRE [ 10302 ]|
See verify/tests/test_measurements.py and verify/tests/butler_utils.py for some examples of using the Butler in arbitrary scripts. I don't try to read the registry, though.
Jonathan Sick asked on #dm-square about whether the SQuaSH API needs to be updated to handle uploads of up to one metric value (measurement) per metric per data ID, rather than just per metric.
Krzysztof Findeisen this relates to the work Simon Krughoff is doing with the V&V team PR #13 has code that collects metric values from a Gen3 Butler repository, adds job metadata and create a verification job that can be upload to SQuaSH.
I assumed the script in metric-pipeline-tasks was a workaround for this issue. Or do you plan for the Job class to always be required as a sort of intermediate step?
I think reconstructing the Job as an intermediate step is a possible approach to use dispatch_verify.py to submit to SQuaSH. This code could live in the lsst.verify package and be used by dispatch_verify.py if pointed to a Butler Gen 3 registry. Haven't thought much about this yet but it seems promising.
I've been working on updating our SQuaSH stuff for
DM-24262, and I noticed we don't seem to have a tag(?) that distinguishes between Gen 2 and Gen 3 runs. This would be very useful once we have more data from both.
That is a good point. I hope to have validate_drp running on HSC in nightlies using both gen2 and gen3 in the next few weeks. It would be very good to be able to differentiate between the two using tags.
I was initially thinking about starting another database, but I think separating by tags is probably better.
|Remote Link||This issue links to "Page (Confluence)" [ 25794 ]|
Here is a Slack discussion of the faro implementation (https://github.com/lsst-dmsst/metric-pipeline-tasks/blob/master/python/metric_pipeline_scripts/jobReporter.py)
|Assignee||Angelo Fausti [ afausti ]||Krzysztof Findeisen [ krzys ]|
|Team||SQuaRE [ 10302 ]||Alert Production [ 10300 ]|
|Sprint||AP S21-3 (February) [ 1072 ]|
|Status||To Do [ 10001 ]||In Progress [ 3 ]|
Simon Krughoff, Angelo Fausti, it seems I misunderstood the constraints of the existing verify framework. Would it be possible/practical to move the faro Gen 3 -> Job translator into verify, so that it's available to any package that uses verify?
Discussed with Simon Krughoff on Slack, and he agreed to using jobReporter in lsst.verify.
Simon Krughoff, I apparently don't have permissions to push ticket branches to lsst-dmsst/metric-pipeline-tasks. What's the SST procedure for dealing with this? Should I fork?
For reference, I'm trying to follow https://developer.lsst.io/stack/transferring-code.html.
Sure, forking seems reasonable. FWIW, it's going to move to the lsst org in the next week or so, if you'd prefer to just wait.
Thanks for the tip, but given that rebasing the double-branches is excruciatingly painful, I'd like to minimize the number of changes I need to account for when I do so. I'll open PRs as soon as Jenkins finishes.
|Reviewers||Simon Krughoff [ krughoff ]|
|Status||In Progress [ 3 ]||In Review [ 10004 ]|
PRs are verify#77 and metric-pipeline-tasks#66.
Looks great. I have not tested it explicitly, but since the interfaces are all preserved in the mertric_pipeline_tasks repository, I don't see any reason why these changes would cause problems
|Status||In Review [ 10004 ]||Reviewed [ 10101 ]|
|Remote Link||This issue links to "Page (Confluence)" [ 27630 ]|
|Resolution||Done [ 10000 ]|
|Status||Reviewed [ 10101 ]||Done [ 10002 ]|
Per discussion on DM-21885, the new code will need to be able to get what's currently Job metadata out of the registry. Presumably Measurement metadata will be unaffected.