{"action":"created","issue":{"url":"https://api.github.com/repos/galaxyproject/galaxy/issues/117","labels_url":"https://api.github.com/repos/galaxyproject/galaxy/issues/117/labels{/name}","comments_url":"https://api.github.com/repos/galaxyproject/galaxy/issues/117/comments","events_url":"https://api.github.com/repos/galaxyproject/galaxy/issues/117/events","html_url":"https://github.com/galaxyproject/galaxy/pull/117","id":68464417,"number":117,"title":"Implement ``detect_errors`` attribute on tool XML.","user":{"login":"jmchilton","id":216771,"avatar_url":"https://avatars.githubusercontent.com/u/216771?v=3","gravatar_id":"","url":"https://api.github.com/users/jmchilton","html_url":"https://github.com/jmchilton","followers_url":"https://api.github.com/users/jmchilton/followers","following_url":"https://api.github.com/users/jmchilton/following{/other_user}","gists_url":"https://api.github.com/users/jmchilton/gists{/gist_id}","starred_url":"https://api.github.com/users/jmchilton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmchilton/subscriptions","organizations_url":"https://api.github.com/users/jmchilton/orgs","repos_url":"https://api.github.com/users/jmchilton/repos","events_url":"https://api.github.com/users/jmchilton/events{/privacy}","received_events_url":"https://api.github.com/users/jmchilton/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-04-14T18:37:39Z","updated_at":"2015-04-14T20:36:34Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/galaxyproject/galaxy/pulls/117","html_url":"https://github.com/galaxyproject/galaxy/pull/117","diff_url":"https://github.com/galaxyproject/galaxy/pull/117.diff","patch_url":"https://github.com/galaxyproject/galaxy/pull/117.patch"},"body":"If present, it can be one of\r\n\r\n - ``default``, no-op fallback to stdio tags and erroring on standard error output.\r\n - ``exit_code``, error if tool exit code is not 0. (The @jmchilton recommendation).\r\n - ``aggressive``, error if tool exit code is not 0 or either Exception: or Error: appears in standard error/output. (The @bgruening recommendation).\r\n\r\nThe ``stdio`` tag is a very heavy solution when many (most?) tools use either this ``exit_code`` or ``aggressive`` strategy leading to a lot of duplicated XML - and if there is one thing I like less than XML it is duplicated XML.\r\n\r\nRefactoring and unit/functional tests to support and demonstrate this.\r\n\r\nRun relevant functional tests with:\r\n\r\n    ./run_tests.sh -framework -id detect_errors_aggressive\r\n\r\nRun relevant unit tests:\r\n\r\n    nosetests test/unit/tools/test_parsing.py\r\n"},"comment":{"url":"https://api.github.com/repos/galaxyproject/galaxy/issues/comments/93051727","html_url":"https://github.com/galaxyproject/galaxy/pull/117#issuecomment-93051727","issue_url":"https://api.github.com/repos/galaxyproject/galaxy/issues/117","id":93051727,"user":{"login":"blankenberg","id":1231190,"avatar_url":"https://avatars.githubusercontent.com/u/1231190?v=3","gravatar_id":"","url":"https://api.github.com/users/blankenberg","html_url":"https://github.com/blankenberg","followers_url":"https://api.github.com/users/blankenberg/followers","following_url":"https://api.github.com/users/blankenberg/following{/other_user}","gists_url":"https://api.github.com/users/blankenberg/gists{/gist_id}","starred_url":"https://api.github.com/users/blankenberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blankenberg/subscriptions","organizations_url":"https://api.github.com/users/blankenberg/orgs","repos_url":"https://api.github.com/users/blankenberg/repos","events_url":"https://api.github.com/users/blankenberg/events{/privacy}","received_events_url":"https://api.github.com/users/blankenberg/received_events","type":"User","site_admin":false},"created_at":"2015-04-14T20:36:34Z","updated_at":"2015-04-14T20:36:34Z","body":"+1 to the idea of potentially allowing multiple command tags. It might be nice to be able to put different failure modes on each command execution though."}}