)]}'
{"web/src/containers/build/BuildOutput.jsx":[{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"cfc689bc87bf2c2217cc3b8a8824885e8fe8a745","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    FlexItem,"},{"line_number":30,"context_line":"} from \u0027@patternfly/react-core\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import CheckCircleIcon from \u0027@patternfly/react-icons/dist/js/icons/check-circle-icon\u0027"},{"line_number":33,"context_line":"import InfoCircleIcon from \u0027@patternfly/react-icons/dist/js/icons/info-circle-icon\u0027"},{"line_number":34,"context_line":"import TimesCircleIcon from \u0027@patternfly/react-icons/dist/js/icons/times-circle-icon\u0027"},{"line_number":35,"context_line":""}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_72cb3aa3","line":32,"updated":"2020-09-23 06:13:35.000000000","message":"These icons can directly be imported from \u0027@patternfly/react-icons\u0027 like this:\n\nimport {\n    CheckCircleIcon,\n    InfoCircleIcon,\n    TimesCircleIcon,\n} from \u0027@patternfly/react-icons\u0027","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9f13c2ac9d58a7d20ea6993ce838b16c453d8e68","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    FlexItem,"},{"line_number":30,"context_line":"} from \u0027@patternfly/react-core\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"import CheckCircleIcon from \u0027@patternfly/react-icons/dist/js/icons/check-circle-icon\u0027"},{"line_number":33,"context_line":"import InfoCircleIcon from \u0027@patternfly/react-icons/dist/js/icons/info-circle-icon\u0027"},{"line_number":34,"context_line":"import TimesCircleIcon from \u0027@patternfly/react-icons/dist/js/icons/times-circle-icon\u0027"},{"line_number":35,"context_line":""}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_8dddde6e","line":32,"in_reply_to":"9f560f44_72cb3aa3","updated":"2020-09-25 04:27:43.000000000","message":"Done","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"cfc689bc87bf2c2217cc3b8a8824885e8fe8a745","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                    \u003cDataListItemCells"},{"line_number":53,"context_line":"                      dataListCells\u003d{["},{"line_number":54,"context_line":"                        \u003cDataListCell"},{"line_number":55,"context_line":"                          key\u003d\"{host}.name\"\u003e{host}"},{"line_number":56,"context_line":"                        \u003c/DataListCell\u003e,"},{"line_number":57,"context_line":"                        \u003cDataListCell key\u003d\"{host}.data\"\u003e"},{"line_number":58,"context_line":"                          \u003cFlex\u003e"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_f24bca24","line":55,"updated":"2020-09-23 06:13:35.000000000","message":"This format string doesn\u0027t work in JavaScript. Usually there are two options:\n\n1. Use a \u0027+\u0027 to concat string and variable like so:\n\nkey\u003d{host + \".name\"}\n\n2. Use a JS format string with backticks (Honestly I have no idea why they decided for this character, but that\u0027s the JS world :D ). Note that you also have to wrap the variable in ${} like so:\n\nkey\u003d{`${host}.name`}","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9f13c2ac9d58a7d20ea6993ce838b16c453d8e68","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                    \u003cDataListItemCells"},{"line_number":53,"context_line":"                      dataListCells\u003d{["},{"line_number":54,"context_line":"                        \u003cDataListCell"},{"line_number":55,"context_line":"                          key\u003d\"{host}.name\"\u003e{host}"},{"line_number":56,"context_line":"                        \u003c/DataListCell\u003e,"},{"line_number":57,"context_line":"                        \u003cDataListCell key\u003d\"{host}.data\"\u003e"},{"line_number":58,"context_line":"                          \u003cFlex\u003e"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_2dc812a6","line":55,"in_reply_to":"9f560f44_f24bca24","updated":"2020-09-25 04:27:43.000000000","message":"thanks :)  I guess it made enough of a key for react to be happy.  I\u0027ve corrected it now.","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"cfc689bc87bf2c2217cc3b8a8824885e8fe8a745","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  renderFailedTask (host, task) {"},{"line_number":82,"context_line":"    const max_lines \u003d 42"},{"line_number":83,"context_line":"    return ("},{"line_number":84,"context_line":"      \u003cCard key\u003d{host + task.zuul_log_id}\u003e"},{"line_number":85,"context_line":"          \u003cCardHeader\u003e"},{"line_number":86,"context_line":"              \u003cLabel color\u003d\"red\" icon\u003d{\u003cTimesCircleIcon /\u003e}\u003eHost\u0026nbsp;\u003cstrong\u003e{host}\u003c/strong\u003e\u003c/Label\u003e\u0026nbsp;"},{"line_number":87,"context_line":"          Task\u0026nbsp;\u003cstrong\u003e{task.name}\u003c/strong\u003e\u0026nbsp;failed\u003c/CardHeader\u003e"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_b245d217","line":84,"updated":"2020-09-23 06:13:35.000000000","message":"I think we could spare the card here and just don\u0027t use any additional container as we are already \"wrapped\" in the tab content itself.","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9f13c2ac9d58a7d20ea6993ce838b16c453d8e68","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  renderFailedTask (host, task) {"},{"line_number":82,"context_line":"    const max_lines \u003d 42"},{"line_number":83,"context_line":"    return ("},{"line_number":84,"context_line":"      \u003cCard key\u003d{host + task.zuul_log_id}\u003e"},{"line_number":85,"context_line":"          \u003cCardHeader\u003e"},{"line_number":86,"context_line":"              \u003cLabel color\u003d\"red\" icon\u003d{\u003cTimesCircleIcon /\u003e}\u003eHost\u0026nbsp;\u003cstrong\u003e{host}\u003c/strong\u003e\u003c/Label\u003e\u0026nbsp;"},{"line_number":87,"context_line":"          Task\u0026nbsp;\u003cstrong\u003e{task.name}\u003c/strong\u003e\u0026nbsp;failed\u003c/CardHeader\u003e"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_cd3996a3","line":84,"in_reply_to":"9f560f44_b245d217","updated":"2020-09-25 04:27:43.000000000","message":"For mine I think the card offsets it fairly nicely; especially when you have multiple failed tasks as sometimes happens.  I\u0027ve left it in for now.","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"350fb2f86ab5f238973cea9eaa8727286cddc3b0","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  renderFailedTask (host, task) {"},{"line_number":82,"context_line":"    const max_lines \u003d 42"},{"line_number":83,"context_line":"    return ("},{"line_number":84,"context_line":"      \u003cCard key\u003d{host + task.zuul_log_id}\u003e"},{"line_number":85,"context_line":"          \u003cCardHeader\u003e"},{"line_number":86,"context_line":"              \u003cLabel color\u003d\"red\" icon\u003d{\u003cTimesCircleIcon /\u003e}\u003eHost\u0026nbsp;\u003cstrong\u003e{host}\u003c/strong\u003e\u003c/Label\u003e\u0026nbsp;"},{"line_number":87,"context_line":"          Task\u0026nbsp;\u003cstrong\u003e{task.name}\u003c/strong\u003e\u0026nbsp;failed\u003c/CardHeader\u003e"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_94001569","line":84,"in_reply_to":"9f560f44_cd3996a3","updated":"2020-09-29 05:27:15.000000000","message":"I\u0027ve never seen a build with multiple failed tasks listed on the result page. But if this could be the case a card might indeed be helpful to wrap single tasks. I think we can keep it for now an have a look later on when we also update the other tab contents so we get a consistent design ;-)","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"cfc689bc87bf2c2217cc3b8a8824885e8fe8a745","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    return ("},{"line_number":84,"context_line":"      \u003cCard key\u003d{host + task.zuul_log_id}\u003e"},{"line_number":85,"context_line":"          \u003cCardHeader\u003e"},{"line_number":86,"context_line":"              \u003cLabel color\u003d\"red\" icon\u003d{\u003cTimesCircleIcon /\u003e}\u003eHost\u0026nbsp;\u003cstrong\u003e{host}\u003c/strong\u003e\u003c/Label\u003e\u0026nbsp;"},{"line_number":87,"context_line":"          Task\u0026nbsp;\u003cstrong\u003e{task.name}\u003c/strong\u003e\u0026nbsp;failed\u003c/CardHeader\u003e"},{"line_number":88,"context_line":"        \u003cCardBody\u003e"},{"line_number":89,"context_line":"          {task.invocation \u0026\u0026 task.invocation.module_args \u0026\u0026"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_12ebdedc","line":86,"updated":"2020-09-23 06:13:35.000000000","message":"I don\u0027t think we should show a label on the left hand side (start) of a line. Usually those are used on the right hand side to provide additional information to the thing that is shown on the left (like tags, or a task result summary :D). I wouldn\u0027t use a tag here at all but something like the \u003cBuildResultWithIcon /\u003e which is also used to show the buildname with it\u0027s respective result icon on top of the builds page.\n\nI also think, that we should highlight the taskname more than the hostname. IMHO this is the more relevant part when it comes to analysis and debugging. It\u0027s also more helpful if you want to look up the failed message/task from the log to see it in it\u0027s context (play).","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"9f13c2ac9d58a7d20ea6993ce838b16c453d8e68","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    return ("},{"line_number":84,"context_line":"      \u003cCard key\u003d{host + task.zuul_log_id}\u003e"},{"line_number":85,"context_line":"          \u003cCardHeader\u003e"},{"line_number":86,"context_line":"              \u003cLabel color\u003d\"red\" icon\u003d{\u003cTimesCircleIcon /\u003e}\u003eHost\u0026nbsp;\u003cstrong\u003e{host}\u003c/strong\u003e\u003c/Label\u003e\u0026nbsp;"},{"line_number":87,"context_line":"          Task\u0026nbsp;\u003cstrong\u003e{task.name}\u003c/strong\u003e\u0026nbsp;failed\u003c/CardHeader\u003e"},{"line_number":88,"context_line":"        \u003cCardBody\u003e"},{"line_number":89,"context_line":"          {task.invocation \u0026\u0026 task.invocation.module_args \u0026\u0026"}],"source_content_type":"text/jsx","patch_set":7,"id":"9f560f44_6d732a81","line":86,"in_reply_to":"9f560f44_12ebdedc","updated":"2020-09-25 04:27:43.000000000","message":"I agree, and I think probably just keeping it simple and saying exactly what we mean works pretty well.  I made it\n\n\"X Task \u003ctask\u003e failed running on host \u003chost\u003e\"\n\nwith a red X and \u003cstrong\u003e around the task and host.","commit_id":"9f66e6f97583a1dfc5a39970368ce5b2886e096b"}]}
