{"action":"created","issue":{"url":"https://api.github.com/repos/broadinstitute/cromwell/issues/1076","repository_url":"https://api.github.com/repos/broadinstitute/cromwell","labels_url":"https://api.github.com/repos/broadinstitute/cromwell/issues/1076/labels{/name}","comments_url":"https://api.github.com/repos/broadinstitute/cromwell/issues/1076/comments","events_url":"https://api.github.com/repos/broadinstitute/cromwell/issues/1076/events","html_url":"https://github.com/broadinstitute/cromwell/issues/1076","id":162515662,"number":1076,"title":"default_runtime_attributes should be a MaterializeWorkflowDescriptorActor thing","user":{"login":"cjllanwarne","id":13006282,"avatar_url":"https://avatars.githubusercontent.com/u/13006282?v=3","gravatar_id":"","url":"https://api.github.com/users/cjllanwarne","html_url":"https://github.com/cjllanwarne","followers_url":"https://api.github.com/users/cjllanwarne/followers","following_url":"https://api.github.com/users/cjllanwarne/following{/other_user}","gists_url":"https://api.github.com/users/cjllanwarne/gists{/gist_id}","starred_url":"https://api.github.com/users/cjllanwarne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cjllanwarne/subscriptions","organizations_url":"https://api.github.com/users/cjllanwarne/orgs","repos_url":"https://api.github.com/users/cjllanwarne/repos","events_url":"https://api.github.com/users/cjllanwarne/events{/privacy}","received_events_url":"https://api.github.com/users/cjllanwarne/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/broadinstitute/cromwell/labels/0.21","name":"0.21","color":"e6e6e6"},{"url":"https://api.github.com/repos/broadinstitute/cromwell/labels/Technical%20Debt%20%E2%9A%93","name":"Technical Debt ⚓","color":"c5def5"}],"state":"closed","locked":false,"assignee":{"login":"mcovarr","id":10790523,"avatar_url":"https://avatars.githubusercontent.com/u/10790523?v=3","gravatar_id":"","url":"https://api.github.com/users/mcovarr","html_url":"https://github.com/mcovarr","followers_url":"https://api.github.com/users/mcovarr/followers","following_url":"https://api.github.com/users/mcovarr/following{/other_user}","gists_url":"https://api.github.com/users/mcovarr/gists{/gist_id}","starred_url":"https://api.github.com/users/mcovarr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcovarr/subscriptions","organizations_url":"https://api.github.com/users/mcovarr/orgs","repos_url":"https://api.github.com/users/mcovarr/repos","events_url":"https://api.github.com/users/mcovarr/events{/privacy}","received_events_url":"https://api.github.com/users/mcovarr/received_events","type":"User","site_admin":false},"assignees":[{"login":"mcovarr","id":10790523,"avatar_url":"https://avatars.githubusercontent.com/u/10790523?v=3","gravatar_id":"","url":"https://api.github.com/users/mcovarr","html_url":"https://github.com/mcovarr","followers_url":"https://api.github.com/users/mcovarr/followers","following_url":"https://api.github.com/users/mcovarr/following{/other_user}","gists_url":"https://api.github.com/users/mcovarr/gists{/gist_id}","starred_url":"https://api.github.com/users/mcovarr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcovarr/subscriptions","organizations_url":"https://api.github.com/users/mcovarr/orgs","repos_url":"https://api.github.com/users/mcovarr/repos","events_url":"https://api.github.com/users/mcovarr/events{/privacy}","received_events_url":"https://api.github.com/users/mcovarr/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/broadinstitute/cromwell/milestones/4","html_url":"https://github.com/broadinstitute/cromwell/milestones/0.21","labels_url":"https://api.github.com/repos/broadinstitute/cromwell/milestones/4/labels","id":1855760,"number":4,"title":"0.21","description":"","creator":{"login":"kcibul","id":1423491,"avatar_url":"https://avatars.githubusercontent.com/u/1423491?v=3","gravatar_id":"","url":"https://api.github.com/users/kcibul","html_url":"https://github.com/kcibul","followers_url":"https://api.github.com/users/kcibul/followers","following_url":"https://api.github.com/users/kcibul/following{/other_user}","gists_url":"https://api.github.com/users/kcibul/gists{/gist_id}","starred_url":"https://api.github.com/users/kcibul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcibul/subscriptions","organizations_url":"https://api.github.com/users/kcibul/orgs","repos_url":"https://api.github.com/users/kcibul/repos","events_url":"https://api.github.com/users/kcibul/events{/privacy}","received_events_url":"https://api.github.com/users/kcibul/received_events","type":"User","site_admin":false},"open_issues":19,"closed_issues":50,"state":"open","created_at":"2016-06-29T18:30:14Z","updated_at":"2016-08-09T17:53:53Z","due_on":"2016-07-31T04:00:00Z","closed_at":null},"comments":7,"created_at":"2016-06-27T18:22:36Z","updated_at":"2016-08-09T17:53:53Z","closed_at":"2016-08-09T17:53:53Z","body":"The assignment of these variables into each task's descriptor naturally fits in MaterializeWorkflowDescriptorActor rather than relying on the backends to re-implement it.\n\nRe-enable test `\"assign default runtime attributes\"` in `MaterializeWorkflowDescriptorActorSpec`"},"comment":{"url":"https://api.github.com/repos/broadinstitute/cromwell/issues/comments/238635247","html_url":"https://github.com/broadinstitute/cromwell/issues/1076#issuecomment-238635247","issue_url":"https://api.github.com/repos/broadinstitute/cromwell/issues/1076","id":238635247,"user":{"login":"mcovarr","id":10790523,"avatar_url":"https://avatars.githubusercontent.com/u/10790523?v=3","gravatar_id":"","url":"https://api.github.com/users/mcovarr","html_url":"https://github.com/mcovarr","followers_url":"https://api.github.com/users/mcovarr/followers","following_url":"https://api.github.com/users/mcovarr/following{/other_user}","gists_url":"https://api.github.com/users/mcovarr/gists{/gist_id}","starred_url":"https://api.github.com/users/mcovarr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcovarr/subscriptions","organizations_url":"https://api.github.com/users/mcovarr/orgs","repos_url":"https://api.github.com/users/mcovarr/repos","events_url":"https://api.github.com/users/mcovarr/events{/privacy}","received_events_url":"https://api.github.com/users/mcovarr/received_events","type":"User","site_admin":false},"created_at":"2016-08-09T17:53:53Z","updated_at":"2016-08-09T17:53:53Z","body":"Per standup this morning we've decided to close this.  The requested functionality is problematic on a couple of levels:\r\n\r\nJSON runtime attributes are currently interpreted as WdlExpressions after going through coercion, which presently is a backend-dependent process as only the backend knows the accepted runtime attribute coercions.  While currently it might appear safe to treat the default runtime attribute JSON values as WDL with a `WdlExpression.fromString`, that's an assumption of WDL / JSON expression equivalence not made elsewhere in Cromwell and it seems questionable to pioneer that here.\r\n\r\nCurrently Cromwell's backend assignments currently happen at initialization time, but in the future Cromwell's backend dispatch is likely to become more sophisticated and dynamic.  It therefore wouldn't be possible to say at workflow initialization time the backend to which a call was fated, which would mean the default runtime attribute handling would need to happen in the various `FooRuntimeAttributes` classes as it does now.  The refactor proposed here would actually remove the default runtime attribute handling at call execution time and therefore make dynamic dispatch more difficult to add in the future.\r\n\r\nFinally, while it appears technically possible to doctor tasks with workflow option-derived default runtime attributes in `MaterializeWorkflowDescriptorActor`, this makes for some pretty hacky code.  I discovered at least 3 spots that needed to be updated:\r\n\r\n- backendAssignment values\r\n- NamespaceWithWorkflow -> tasks\r\n- NamespaceWithWorkflow -> workflow -> children -> tasks\r\n\r\nThat last item was particularly hideous since `Workflow#children` is explicitly write-once.  I got around this with subclassing, but I felt bad about myself afterward. "}}
{"actor":{"display_login":"mcovarr"}}