)]}'
{".gitignore":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f0ab49715a6e75b8c8ddd9a91618072cd431dab2","unresolved":false,"context_lines":[{"line_number":25,"context_line":".venv"},{"line_number":26,"context_line":".tox"},{"line_number":27,"context_line":"node_modules"},{"line_number":28,"context_line":"bower_components"},{"line_number":29,"context_line":"build"},{"line_number":30,"context_line":"dist"},{"line_number":31,"context_line":"AUTHORS"}],"source_content_type":"application/octet-stream","patch_set":36,"id":"dac4157f_639a8516","line":28,"updated":"2015-04-20 20:30:15.000000000","message":"how about adding coverage here.\n\nThen we\u0027d have karma generate coverage/horizon/karma and coverage/dashboard/karma?","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"336b0bf840002085c5860887c2ee10117d2a0a77","unresolved":false,"context_lines":[{"line_number":25,"context_line":".venv"},{"line_number":26,"context_line":".tox"},{"line_number":27,"context_line":"node_modules"},{"line_number":28,"context_line":"bower_components"},{"line_number":29,"context_line":"build"},{"line_number":30,"context_line":"dist"},{"line_number":31,"context_line":"AUTHORS"}],"source_content_type":"application/octet-stream","patch_set":36,"id":"dac4157f_d2121c62","line":28,"in_reply_to":"dac4157f_639a8516","updated":"2015-04-21 14:39:23.000000000","message":"I notice that we also have a .coverage* area above...should something go there?","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"},{"author":{"_account_id":11098,"name":"Brian Tully","email":"brian.tully@hpe.com","username":"btully"},"change_message_id":"3d5487eb4ed071df3fad907612cff3ab5ec7ac66","unresolved":false,"context_lines":[{"line_number":30,"context_line":"dist"},{"line_number":31,"context_line":"AUTHORS"},{"line_number":32,"context_line":"ChangeLog"},{"line_number":33,"context_line":"tags"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"bab921fb_c93cd395","line":33,"updated":"2015-04-23 16:49:29.000000000","message":"Since we are now moving the coverage reports from /tmp to within the horizon repo - should we not also include those directories here?","commit_id":"6d50f6bb523aee4d1c95d15b9b7a6858399e342a"},{"author":{"_account_id":11098,"name":"Brian Tully","email":"brian.tully@hpe.com","username":"btully"},"change_message_id":"474a3eb3beee916811ad60ccbfc6f5657dc63739","unresolved":false,"context_lines":[{"line_number":30,"context_line":"dist"},{"line_number":31,"context_line":"AUTHORS"},{"line_number":32,"context_line":"ChangeLog"},{"line_number":33,"context_line":"tags"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"bab921fb_3a494b32","line":33,"in_reply_to":"bab921fb_0c7539f8","updated":"2015-04-23 17:29:16.000000000","message":"ack! I\u0027m sorry didn\u0027t see that since it was hidden here in the gerrit UI. good call! I\u0027ll remove the -1 :)","commit_id":"6d50f6bb523aee4d1c95d15b9b7a6858399e342a"},{"author":{"_account_id":9659,"name":"Matt Wood","email":"matt.wood@hpe.com","username":"woodm1979"},"change_message_id":"e5f8a02aaa90e56719c208392b9f9e23aab86be0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"dist"},{"line_number":31,"context_line":"AUTHORS"},{"line_number":32,"context_line":"ChangeLog"},{"line_number":33,"context_line":"tags"}],"source_content_type":"application/octet-stream","patch_set":40,"id":"bab921fb_0c7539f8","line":33,"in_reply_to":"bab921fb_c93cd395","updated":"2015-04-23 17:07:17.000000000","message":"I\u0027m pretty sure this gets covered by the above .coverage* entry.","commit_id":"6d50f6bb523aee4d1c95d15b9b7a6858399e342a"}],"/COMMIT_MSG":[{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f0ab49715a6e75b8c8ddd9a91618072cd431dab2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Get unit tests working with Karma"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Establish features for running Karma tests.  Separate karma configurations"},{"line_number":10,"context_line":"are used due to current overlap of template file structure."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I79680ef6369383c148da68e6677945886a48df81"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"dac4157f_03a8681e","line":10,"updated":"2015-04-20 20:30:15.000000000","message":"Would like to see a line in here about how to test it, like Thai did for the translations patch.  Just ./run_tests.sh -k would be good.\n\nAlso, some more info here about why we are doing this would be helpful for others for future reference (e.g. code coverage).  I\u0027m also wondering if this needs a spec or bug since it is modifying the ./run_tests.sh.","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"336b0bf840002085c5860887c2ee10117d2a0a77","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Get unit tests working with Karma"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Establish features for running Karma tests.  Separate karma configurations"},{"line_number":10,"context_line":"are used due to current overlap of template file structure."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I79680ef6369383c148da68e6677945886a48df81"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":36,"id":"dac4157f_3202780c","line":10,"in_reply_to":"dac4157f_03a8681e","updated":"2015-04-21 14:39:23.000000000","message":"Good idea, will do.","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"}],"bower.json":[{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"07f1150937a6d901030b666cd444ac0ffb170e2e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  \"version\": \"2014.2.3\","},{"line_number":4,"context_line":"  \"homepage\": \"https://github.com/openstack/horizon\","},{"line_number":5,"context_line":"  \"authors\": ["},{"line_number":6,"context_line":"    \"Matt Borland \u003cmatt.borland@hp.com\u003e\""},{"line_number":7,"context_line":"  ],"},{"line_number":8,"context_line":"  \"description\": \"OpenStack Horizon\","},{"line_number":9,"context_line":"  \"license\": \"MIT\","}],"source_content_type":"application/json","patch_set":35,"id":"dac4157f_616845f6","line":6,"updated":"2015-04-20 18:00:57.000000000","message":"This should match the \u0027author\u0027 field in setup.cfg:\n\n\"OpenStack \u003copenstack-dev@lists.openstack.org\u003e\"","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"c6b0016d9d64886ec25b2fd58c794ed07130f9f2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  \"version\": \"2014.2.3\","},{"line_number":4,"context_line":"  \"homepage\": \"https://github.com/openstack/horizon\","},{"line_number":5,"context_line":"  \"authors\": ["},{"line_number":6,"context_line":"    \"Matt Borland \u003cmatt.borland@hp.com\u003e\""},{"line_number":7,"context_line":"  ],"},{"line_number":8,"context_line":"  \"description\": \"OpenStack Horizon\","},{"line_number":9,"context_line":"  \"license\": \"MIT\","}],"source_content_type":"application/json","patch_set":35,"id":"dac4157f_922609b9","line":6,"in_reply_to":"dac4157f_616845f6","updated":"2015-04-20 18:11:00.000000000","message":"OK","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"07f1150937a6d901030b666cd444ac0ffb170e2e","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    \"Matt Borland \u003cmatt.borland@hp.com\u003e\""},{"line_number":7,"context_line":"  ],"},{"line_number":8,"context_line":"  \"description\": \"OpenStack Horizon\","},{"line_number":9,"context_line":"  \"license\": \"MIT\","},{"line_number":10,"context_line":"  \"ignore\": ["},{"line_number":11,"context_line":"    \"**/.*\","},{"line_number":12,"context_line":"    \"node_modules\","}],"source_content_type":"application/json","patch_set":35,"id":"dac4157f_21724de6","line":9,"updated":"2015-04-20 18:00:57.000000000","message":"Apache 2.0","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"c6b0016d9d64886ec25b2fd58c794ed07130f9f2","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    \"Matt Borland \u003cmatt.borland@hp.com\u003e\""},{"line_number":7,"context_line":"  ],"},{"line_number":8,"context_line":"  \"description\": \"OpenStack Horizon\","},{"line_number":9,"context_line":"  \"license\": \"MIT\","},{"line_number":10,"context_line":"  \"ignore\": ["},{"line_number":11,"context_line":"    \"**/.*\","},{"line_number":12,"context_line":"    \"node_modules\","}],"source_content_type":"application/json","patch_set":35,"id":"dac4157f_5220719b","line":9,"in_reply_to":"dac4157f_21724de6","updated":"2015-04-20 18:11:00.000000000","message":"OK","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"07f1150937a6d901030b666cd444ac0ffb170e2e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    \"tests\""},{"line_number":16,"context_line":"  ],"},{"line_number":17,"context_line":"  \"dependencies\": {"},{"line_number":18,"context_line":"    \"jquery\": \"~1.10.2\","},{"line_number":19,"context_line":"    \"angular\": \"1.3.7\","},{"line_number":20,"context_line":"    \"angular-mocks\": \"1.3.7\","},{"line_number":21,"context_line":"    \"angular-cookies\": \"1.3.7\","}],"source_content_type":"application/json","patch_set":35,"id":"dac4157f_a1553d1e","line":18,"updated":"2015-04-20 18:00:57.000000000","message":"No fuzzy versions, this will make the build non-repeatable. Also applies to angular-bootstrap and rickshaw.\n\nAlso, please confirm that none of these libraries are published under the GPL :)","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"c6b0016d9d64886ec25b2fd58c794ed07130f9f2","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    \"tests\""},{"line_number":16,"context_line":"  ],"},{"line_number":17,"context_line":"  \"dependencies\": {"},{"line_number":18,"context_line":"    \"jquery\": \"~1.10.2\","},{"line_number":19,"context_line":"    \"angular\": \"1.3.7\","},{"line_number":20,"context_line":"    \"angular-mocks\": \"1.3.7\","},{"line_number":21,"context_line":"    \"angular-cookies\": \"1.3.7\","}],"source_content_type":"application/json","patch_set":35,"id":"dac4157f_3225fdaa","line":18,"in_reply_to":"dac4157f_a1553d1e","updated":"2015-04-20 18:11:00.000000000","message":"OK, I\u0027ll check on this and drop the fuzzy.","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"}],"horizon/karma.conf.js":[{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"07f1150937a6d901030b666cd444ac0ffb170e2e","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    frameworks: [\u0027jasmine\u0027],"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    browsers : [\u0027Chrome\u0027],"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    reporters : [ \u0027progress\u0027, \u0027coverage\u0027 ],"},{"line_number":78,"context_line":""}],"source_content_type":"text/javascript","patch_set":35,"id":"dac4157f_b44b3d59","line":75,"updated":"2015-04-20 18:00:57.000000000","message":"It may be a better idea to start this with firefox rather than chrome. Reason is that on debian, we only have access to the chromium browser, and I\u0027m not certain if CHROME_BIN has been updated to reflect that so karma can pick it up.","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"c6b0016d9d64886ec25b2fd58c794ed07130f9f2","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    frameworks: [\u0027jasmine\u0027],"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    browsers : [\u0027Chrome\u0027],"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    reporters : [ \u0027progress\u0027, \u0027coverage\u0027 ],"},{"line_number":78,"context_line":""}],"source_content_type":"text/javascript","patch_set":35,"id":"dac4157f_1269d9be","line":75,"in_reply_to":"dac4157f_b44b3d59","updated":"2015-04-20 18:11:00.000000000","message":"Michael, good point.  Let me ask around about what best to do here.","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f0ab49715a6e75b8c8ddd9a91618072cd431dab2","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      xstaticPath + \u0027angular_smart_table/data/smart-table.js\u0027,"},{"line_number":43,"context_line":"      xstaticPath + \u0027angular_lrdragndrop/data/lrdragndrop.js\u0027,"},{"line_number":44,"context_line":"      xstaticPath + \u0027spin/data/spin.js\u0027,"},{"line_number":45,"context_line":"      xstaticPath + \u0027spin/data/spin.jquery.js\u0027,"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      // from jasmine_tests.py; only those that are deps for others"}],"source_content_type":"text/javascript","patch_set":36,"id":"dac4157f_837358b1","line":45,"updated":"2015-04-20 20:30:15.000000000","message":"Oh boy, yet another place to manage dependencies and now we are adding two more (this and the dashboard karma conf).  Is there anything we can do to pull from a common config?","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"336b0bf840002085c5860887c2ee10117d2a0a77","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      xstaticPath + \u0027angular_smart_table/data/smart-table.js\u0027,"},{"line_number":43,"context_line":"      xstaticPath + \u0027angular_lrdragndrop/data/lrdragndrop.js\u0027,"},{"line_number":44,"context_line":"      xstaticPath + \u0027spin/data/spin.js\u0027,"},{"line_number":45,"context_line":"      xstaticPath + \u0027spin/data/spin.jquery.js\u0027,"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      // from jasmine_tests.py; only those that are deps for others"}],"source_content_type":"text/javascript","patch_set":36,"id":"dac4157f_15751e97","line":45,"in_reply_to":"dac4157f_837358b1","updated":"2015-04-21 14:39:23.000000000","message":"I actually think that the others will go away. :)  Also, we really should think about using bower more fully rather than doing this xstatic/bower division; but many resources are not in bower.","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"f0ab49715a6e75b8c8ddd9a91618072cd431dab2","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    coverageReporter: {"},{"line_number":92,"context_line":"      type : \u0027html\u0027,"},{"line_number":93,"context_line":"      dir : \u0027/tmp/coverage/\u0027"},{"line_number":94,"context_line":"    }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  });"}],"source_content_type":"text/javascript","patch_set":36,"id":"dac4157f_e36a151a","line":93,"updated":"2015-04-20 20:30:15.000000000","message":"I\u0027d much rather see this created locally in a directory that is gitignored.\n\ngitignore coverage\n\nThen we\u0027d have karma generate\n\ncoverage/horizon/karma\n\ncoverage/dashboard/karma","commit_id":"93c3098573a1552d5f8b839510f13b9f94aa4ca6"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"f2cc26dbf93e9a89859e88563a6c3baec332dc58","unresolved":false,"context_lines":[{"line_number":30,"context_line":"      // Django or via jasmine template."},{"line_number":31,"context_line":"      \u0027../../test-shim.js\u0027,"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"      // from jasmine.html"},{"line_number":34,"context_line":"      \u0027../../bower_components/jquery/jquery.js\u0027,"},{"line_number":35,"context_line":"      \u0027../../bower_components/angular/angular.js\u0027,"},{"line_number":36,"context_line":"      \u0027../../bower_components/angular-mocks/angular-mocks.js\u0027,"}],"source_content_type":"text/javascript","patch_set":52,"id":"3acd31a7_6e78092c","line":33,"updated":"2015-05-01 16:21:23.000000000","message":"I\u0027m very confused by the inclusion of bower in this patch. Why are you introducing a different set of dependencies than what Horizon is deployed/tested in the gate with?\n\nI\u0027m all for better testing tools, but you\u0027re creating a system that is unit testing the code, but on a different dependency stack.","commit_id":"2a1ebce79fb985834b97bd1c8a57f6e0f8d94dcf"},{"author":{"_account_id":5623,"name":"David Lyle","email":"dklyle0@gmail.com","username":"david-lyle"},"change_message_id":"f2cc26dbf93e9a89859e88563a6c3baec332dc58","unresolved":false,"context_lines":[{"line_number":39,"context_line":"      \u0027../../bower_components/angular-sanitize/angular-sanitize.js\u0027,"},{"line_number":40,"context_line":"      \u0027../../bower_components/d3/d3.js\u0027,"},{"line_number":41,"context_line":"      \u0027../../bower_components/rickshaw/rickshaw.js\u0027,"},{"line_number":42,"context_line":"      xstaticPath + \u0027angular_smart_table/data/smart-table.js\u0027,"},{"line_number":43,"context_line":"      xstaticPath + \u0027angular_lrdragndrop/data/lrdragndrop.js\u0027,"},{"line_number":44,"context_line":"      xstaticPath + \u0027spin/data/spin.js\u0027,"},{"line_number":45,"context_line":"      xstaticPath + \u0027spin/data/spin.jquery.js\u0027,"}],"source_content_type":"text/javascript","patch_set":52,"id":"3acd31a7_2e72114a","line":42,"updated":"2015-05-01 16:21:23.000000000","message":"These seem more appropriate.","commit_id":"2a1ebce79fb985834b97bd1c8a57f6e0f8d94dcf"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"6df9ac132e7fd7c48afeb70a359a7e40fe6cae21","unresolved":false,"context_lines":[{"line_number":1,"context_line":"module.exports \u003d function(config){"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"  // Path to xstatic pkg path."},{"line_number":4,"context_line":"  var xstaticPath \u003d \u0027../../.venv/lib/python2.7/site-packages/xstatic/pkg/\u0027;"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  config.set({"},{"line_number":7,"context_line":""}],"source_content_type":"text/javascript","patch_set":71,"id":"7a016987_3bc964ad","line":4,"updated":"2015-05-26 21:45:39.000000000","message":"Doesn\u0027t have to be done in this patch, but I\u0027m wondering if it might be easier to generate this path instead of hard-coding. This is a node app, so we should have access to file structure as well.","commit_id":"00c0cdfc8c216586d7fdde7e6e15042a5867410a"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"18db3424f8f52d318d864da18462f821e9928112","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      // NOTE: the templates must also be listed in the files section below."},{"line_number":11,"context_line":"      \u0027./**/*.html\u0027: [\u0027ng-html2js\u0027],"},{"line_number":12,"context_line":"      // Used to indicate files requiring coverage reports."},{"line_number":13,"context_line":"      \u0027./**/!(*spec).js\u0027: [\u0027coverage\u0027]"},{"line_number":14,"context_line":"    },"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    // Sets up module to process templates."}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_d4e96f80","line":13,"updated":"2015-05-30 06:58:14.000000000","message":"*.spec","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"15d34606952dbe54e9bfde1697bf90610d034a04","unresolved":false,"context_lines":[{"line_number":56,"context_line":"      \u0027framework/framework.module.js\u0027,"},{"line_number":57,"context_line":"      \u0027framework/widgets/charts/charts.js\u0027,"},{"line_number":58,"context_line":"      \u0027framework/widgets/metadata-tree/metadata-tree.js\u0027,"},{"line_number":59,"context_line":"      \u0027framework/widgets/table/table.js\u0027,"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"      // Catch-all for stuff that isn\u0027t required explicitly by others."},{"line_number":62,"context_line":"      \u0027framework/**/!(*spec).js\u0027,"}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_8a6addeb","line":59,"updated":"2015-05-29 00:52:00.000000000","message":"Is there a better way of maintain this list?","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"4589642c16e0192815a03e9897efddca7134e4f8","unresolved":false,"context_lines":[{"line_number":56,"context_line":"      \u0027framework/framework.module.js\u0027,"},{"line_number":57,"context_line":"      \u0027framework/widgets/charts/charts.js\u0027,"},{"line_number":58,"context_line":"      \u0027framework/widgets/metadata-tree/metadata-tree.js\u0027,"},{"line_number":59,"context_line":"      \u0027framework/widgets/table/table.js\u0027,"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"      // Catch-all for stuff that isn\u0027t required explicitly by others."},{"line_number":62,"context_line":"      \u0027framework/**/!(*spec).js\u0027,"}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_f4cda430","line":59,"in_reply_to":"7a016987_8a6addeb","updated":"2015-05-29 13:32:09.000000000","message":"Yes!  Actually, now with the new file structure, the problem where some .js files reference modules that don\u0027t exist can be more easily alleviated, such as performing a wildcard for all the module.js files before the other .js files.\n\nThat way we won\u0027t need to call out individual files.","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"18db3424f8f52d318d864da18462f821e9928112","unresolved":false,"context_lines":[{"line_number":56,"context_line":"      \u0027framework/framework.module.js\u0027,"},{"line_number":57,"context_line":"      \u0027framework/widgets/charts/charts.js\u0027,"},{"line_number":58,"context_line":"      \u0027framework/widgets/metadata-tree/metadata-tree.js\u0027,"},{"line_number":59,"context_line":"      \u0027framework/widgets/table/table.js\u0027,"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"      // Catch-all for stuff that isn\u0027t required explicitly by others."},{"line_number":62,"context_line":"      \u0027framework/**/!(*spec).js\u0027,"}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_74f99b4d","line":59,"in_reply_to":"7a016987_f4cda430","updated":"2015-05-30 06:58:14.000000000","message":"Is it true with new file structure at this point or after all the restructuring is completed?","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"18db3424f8f52d318d864da18462f821e9928112","unresolved":false,"context_lines":[{"line_number":59,"context_line":"      \u0027framework/widgets/table/table.js\u0027,"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"      // Catch-all for stuff that isn\u0027t required explicitly by others."},{"line_number":62,"context_line":"      \u0027framework/**/!(*spec).js\u0027,"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"      // Templates."},{"line_number":65,"context_line":"      \u0027./**/*.html\u0027,"}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_149b8719","line":62,"updated":"2015-05-30 06:58:14.000000000","message":"*.spec","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":7665,"name":"Travis Tripp","email":"os.travis.tripp@gmail.com","username":"travis.tripp"},"change_message_id":"18db3424f8f52d318d864da18462f821e9928112","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    frameworks: [\u0027jasmine\u0027],"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    browsers : [\u0027Chrome\u0027],"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    reporters : [ \u0027progress\u0027, \u0027coverage\u0027 ],"},{"line_number":78,"context_line":""}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_948777b4","line":75,"updated":"2015-05-30 06:58:14.000000000","message":"Phantomjs if possible. If not phantom js, then shouldn\u0027t this be Firefox? I believe Firefox is more widely available in the testing environment.","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"}],"karma-dashboard.conf.js":[{"author":{"_account_id":9659,"name":"Matt Wood","email":"matt.wood@hpe.com","username":"woodm1979"},"change_message_id":"5a8ff9262b9614c3071060053d747ea2b870f633","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    browsers : [\u0027Chrome\u0027],"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    // Un-comment to run coverage; conflicts a little with the other features."},{"line_number":65,"context_line":"    // reporters : [ \u0027coverage\u0027 ],"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    plugins : ["},{"line_number":68,"context_line":"      \u0027karma-chrome-launcher\u0027,"}],"source_content_type":"text/javascript","patch_set":24,"id":"3ab451fb_b087e0d6","line":65,"updated":"2015-04-16 22:23:12.000000000","message":"If your line was:\n\n    reporters: [ \u0027progress\u0027, \u0027coverage\u0027 ]\n\nI think this might work without the conflicts you mentioned.  That said, I don\u0027t know what was conflicting with what, so I could be entirely wrong.","commit_id":"a2b9dece0dc7e82a2273d0f6c8800abc9c6d83f9"}],"karma.conf.js":[{"author":{"_account_id":9659,"name":"Matt Wood","email":"matt.wood@hpe.com","username":"woodm1979"},"change_message_id":"5a8ff9262b9614c3071060053d747ea2b870f633","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    browsers : [\u0027Chrome\u0027],"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    // Un-comment to run coverage; conflicts a little with the other features."},{"line_number":80,"context_line":"    // reporters : [ \u0027coverage\u0027 ],"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    plugins : ["},{"line_number":83,"context_line":"      \u0027karma-chrome-launcher\u0027,"}],"source_content_type":"text/javascript","patch_set":24,"id":"3ab451fb_3074f0fb","line":80,"updated":"2015-04-16 22:23:12.000000000","message":"If your line was:\n\n    reporters: [ \u0027progress\u0027, \u0027coverage\u0027 ]\n\nI think this might work without the conflicts you mentioned.  That said, I don\u0027t know what was conflicting with what, so I could be entirely wrong.","commit_id":"a2b9dece0dc7e82a2273d0f6c8800abc9c6d83f9"}],"openstack_dashboard/karma.conf.js":[{"author":{"_account_id":11098,"name":"Brian Tully","email":"brian.tully@hpe.com","username":"btully"},"change_message_id":"7dc2592a9a581b97a86afaf3e0429161a1427213","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    //           .constant(\u0027basePath\u0027, \u0027angular/\u0027);"},{"line_number":10,"context_line":"    preprocessors: {"},{"line_number":11,"context_line":"      // Used to collect templates for preprocessing."},{"line_number":12,"context_line":"      // NOTE: the templates must also be listed in the files section below."},{"line_number":13,"context_line":"      \u0027./**/*.html\u0027: [\u0027ng-html2js\u0027],"},{"line_number":14,"context_line":"      // Used to indicate files requiring coverage reports."},{"line_number":15,"context_line":"      \u0027./**/!(*spec).js\u0027: [\u0027coverage\u0027]"}],"source_content_type":"text/javascript","patch_set":34,"id":"dac4157f_d935f3f7","line":12,"updated":"2015-04-18 17:02:42.000000000","message":"we say that templates must also be listed in the files section below, yet there are no templates listed in the files section. is this still correct?","commit_id":"5a948c72ac795616ebb427fe3fc3b18d5af3067b"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"64c5a81b4fed5a595a55914fa325bc09a6fa455b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    //           .constant(\u0027basePath\u0027, \u0027angular/\u0027);"},{"line_number":10,"context_line":"    preprocessors: {"},{"line_number":11,"context_line":"      // Used to collect templates for preprocessing."},{"line_number":12,"context_line":"      // NOTE: the templates must also be listed in the files section below."},{"line_number":13,"context_line":"      \u0027./**/*.html\u0027: [\u0027ng-html2js\u0027],"},{"line_number":14,"context_line":"      // Used to indicate files requiring coverage reports."},{"line_number":15,"context_line":"      \u0027./**/!(*spec).js\u0027: [\u0027coverage\u0027]"}],"source_content_type":"text/javascript","patch_set":34,"id":"dac4157f_7ac59a59","line":12,"in_reply_to":"dac4157f_d935f3f7","updated":"2015-04-20 13:43:09.000000000","message":"Yeah, I think there are no templates in the current code.  Though, we could still fileglob for them, probably should.","commit_id":"5a948c72ac795616ebb427fe3fc3b18d5af3067b"},{"author":{"_account_id":11098,"name":"Brian Tully","email":"brian.tully@hpe.com","username":"btully"},"change_message_id":"7dc2592a9a581b97a86afaf3e0429161a1427213","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    },"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    // Sets up module to process templates."},{"line_number":19,"context_line":"    ngHtml2JsPreprocessor: {"},{"line_number":20,"context_line":"      moduleName: \u0027templates\u0027"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":""}],"source_content_type":"text/javascript","patch_set":34,"id":"dac4157f_1955ab1c","line":19,"updated":"2015-04-18 17:02:42.000000000","message":"just a question, why is it on the horizon karma.conf we add prependPrefix: \u0027/static/\u0027 here whereas it is not needed here?","commit_id":"5a948c72ac795616ebb427fe3fc3b18d5af3067b"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"64c5a81b4fed5a595a55914fa325bc09a6fa455b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    },"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    // Sets up module to process templates."},{"line_number":19,"context_line":"    ngHtml2JsPreprocessor: {"},{"line_number":20,"context_line":"      moduleName: \u0027templates\u0027"},{"line_number":21,"context_line":"    },"},{"line_number":22,"context_line":""}],"source_content_type":"text/javascript","patch_set":34,"id":"dac4157f_9a9f4e5f","line":19,"in_reply_to":"dac4157f_1955ab1c","updated":"2015-04-20 13:43:09.000000000","message":"We probably would need to here, but again, there are no templates that I am testing against.  Probably should put a dummy template in to align and make sure it works.","commit_id":"5a948c72ac795616ebb427fe3fc3b18d5af3067b"},{"author":{"_account_id":11098,"name":"Brian Tully","email":"brian.tully@hpe.com","username":"btully"},"change_message_id":"7dc2592a9a581b97a86afaf3e0429161a1427213","unresolved":false,"context_lines":[{"line_number":51,"context_line":"      \"dashboard/launch-instance/launch-instance.js\","},{"line_number":52,"context_line":"      \"dashboard/**/*.js\","},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"      // Templates."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    ],"},{"line_number":57,"context_line":""}],"source_content_type":"text/javascript","patch_set":34,"id":"dac4157f_b93a3fe6","line":54,"updated":"2015-04-18 17:02:42.000000000","message":"either templates are missing here or the note in the preprocessors section above is not valid?","commit_id":"5a948c72ac795616ebb427fe3fc3b18d5af3067b"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"64c5a81b4fed5a595a55914fa325bc09a6fa455b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"      \"dashboard/launch-instance/launch-instance.js\","},{"line_number":52,"context_line":"      \"dashboard/**/*.js\","},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"      // Templates."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    ],"},{"line_number":57,"context_line":""}],"source_content_type":"text/javascript","patch_set":34,"id":"dac4157f_1a821e01","line":54,"in_reply_to":"dac4157f_b93a3fe6","updated":"2015-04-20 13:43:09.000000000","message":"I\u0027ll put a fileglob in here.","commit_id":"5a948c72ac795616ebb427fe3fc3b18d5af3067b"},{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"6df9ac132e7fd7c48afeb70a359a7e40fe6cae21","unresolved":false,"context_lines":[{"line_number":1,"context_line":"module.exports \u003d function(config){"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"  // Path to xstatic pkg path."},{"line_number":4,"context_line":"  var xstaticPath \u003d \u0027../../.venv/lib/python2.7/site-packages/xstatic/pkg/\u0027;"}],"source_content_type":"text/javascript","patch_set":71,"id":"7a016987_bb6b1485","line":1,"updated":"2015-05-26 21:45:39.000000000","message":"My concern here is that the two conf files are very similar. I\u0027d like to stick with the DRY principle and reduce the code duplication. Can we investigate ways to import the other conf module and use a mixin to augment the diff?","commit_id":"00c0cdfc8c216586d7fdde7e6e15042a5867410a"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"fa33b6c2f0b4087cffff19873127b59fbf1464f2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"module.exports \u003d function(config){"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"  // Path to xstatic pkg path."},{"line_number":4,"context_line":"  var xstaticPath \u003d \u0027../../.venv/lib/python2.7/site-packages/xstatic/pkg/\u0027;"}],"source_content_type":"text/javascript","patch_set":71,"id":"7a016987_a3ccf061","line":1,"in_reply_to":"7a016987_bb6b1485","updated":"2015-05-27 17:57:26.000000000","message":"There is actually a way to make this work, with the only exception that if we have overlapping template paths things get ugly.","commit_id":"00c0cdfc8c216586d7fdde7e6e15042a5867410a"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"15d34606952dbe54e9bfde1697bf90610d034a04","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      // NOTE: the templates must also be listed in the files section below."},{"line_number":11,"context_line":"      \u0027./**/*.html\u0027: [\u0027ng-html2js\u0027],"},{"line_number":12,"context_line":"      // Used to indicate files requiring coverage reports."},{"line_number":13,"context_line":"      \u0027./**/!(*spec).js\u0027: [\u0027coverage\u0027]"},{"line_number":14,"context_line":"    },"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    // Sets up module to process templates."}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_ca321510","line":13,"updated":"2015-05-29 00:52:00.000000000","message":"nit: shouldn\u0027t it be *.spec (with a dot after *)?","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"4589642c16e0192815a03e9897efddca7134e4f8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"      // NOTE: the templates must also be listed in the files section below."},{"line_number":11,"context_line":"      \u0027./**/*.html\u0027: [\u0027ng-html2js\u0027],"},{"line_number":12,"context_line":"      // Used to indicate files requiring coverage reports."},{"line_number":13,"context_line":"      \u0027./**/!(*spec).js\u0027: [\u0027coverage\u0027]"},{"line_number":14,"context_line":"    },"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    // Sets up module to process templates."}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_14f4c058","line":13,"in_reply_to":"7a016987_ca321510","updated":"2015-05-29 13:32:09.000000000","message":"I think you\u0027re right...There had at one point been a file that didn\u0027t conform to that .spec.js naming, but that is now fixed.  This should be able to be fixed as you suggest.","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":13805,"name":"Shaoquan Chen","email":"sean.chen2@hp.com","username":"SeanChen"},"change_message_id":"15d34606952dbe54e9bfde1697bf90610d034a04","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      \"dashboard/dashboard.module.js\","},{"line_number":49,"context_line":"      \"dashboard/workflow/workflow.js\","},{"line_number":50,"context_line":"      \"dashboard/launch-instance/launch-instance.js\","},{"line_number":51,"context_line":"      \"dashboard/**/*.js\","},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      // Templates."},{"line_number":54,"context_line":"      \u0027./**/*.html\u0027,"}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_ca4b3586","line":51,"updated":"2015-05-29 00:52:00.000000000","message":"Is there a better way of maintain this list?","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"4589642c16e0192815a03e9897efddca7134e4f8","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      \"dashboard/dashboard.module.js\","},{"line_number":49,"context_line":"      \"dashboard/workflow/workflow.js\","},{"line_number":50,"context_line":"      \"dashboard/launch-instance/launch-instance.js\","},{"line_number":51,"context_line":"      \"dashboard/**/*.js\","},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"      // Templates."},{"line_number":54,"context_line":"      \u0027./**/*.html\u0027,"}],"source_content_type":"text/javascript","patch_set":72,"id":"7a016987_74f9b44d","line":51,"in_reply_to":"7a016987_ca4b3586","updated":"2015-05-29 13:32:09.000000000","message":"Yup, as noted on other file.","commit_id":"4cc658258495ac8812e572622f050145c78c3b67"}],"package.json":[{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"07f1150937a6d901030b666cd444ac0ffb170e2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"dac4157f_f772d77b","updated":"2015-04-20 18:00:57.000000000","message":"Again: no fuzzy versions, the License is apache 2, and GPL checks.\n\nIn this case though, I would really encourage you to run something like npm shrinkwrap to not only nail down your explicit dependencies, but also nail down the implicit ones. If one of them is not fuzzy, but the other is fuzzy, you\u0027re likely to get unpredictable behavior in the future, and our package maintainers don\u0027t like that.","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"e7cd6244acd22435bf26302367c1d46d683f659c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"dac4157f_ed37a4e1","in_reply_to":"dac4157f_923729b0","updated":"2015-04-20 18:32:40.000000000","message":"Probably not yet. I\u0027m just being mindful of a happy shiny rainbow future where these tests are run as part of the horizon build, and are therefore also run by package maintainers. They require that the build will always produce the same output, which only hard versions will provide. If, say, an upstream library that manages console output changes its default use_color_console from false to true, suddenly the output has changed between one run of npm install to the next.","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"c6b0016d9d64886ec25b2fd58c794ed07130f9f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"dac4157f_923729b0","in_reply_to":"dac4157f_f772d77b","updated":"2015-04-20 18:11:00.000000000","message":"With this, since this is only framework (not actually used in reference for code, unlike inclusions in bower.json), are fuzzy versions still not good?  Just curious.  Since this file doesn\u0027t actually end up with any packaging...?","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"}],"run_tests.sh":[{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"07f1150937a6d901030b666cd444ac0ffb170e2e","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  echo \"Running karma ...\""},{"line_number":169,"context_line":"  npm install"},{"line_number":170,"context_line":"  bower install"},{"line_number":171,"context_line":"  npm test"},{"line_number":172,"context_line":"}"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"function warn_on_flake8_without_venv {"}],"source_content_type":"text/x-sh","patch_set":35,"id":"dac4157f_37996f6f","line":171,"updated":"2015-04-20 18:00:57.000000000","message":"When running `npm test` vs. `npm run test` I get two different kinds of output. Since infra will eventually use `npm run test`, it may be better to standardize on that.","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"c6b0016d9d64886ec25b2fd58c794ed07130f9f2","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  echo \"Running karma ...\""},{"line_number":169,"context_line":"  npm install"},{"line_number":170,"context_line":"  bower install"},{"line_number":171,"context_line":"  npm test"},{"line_number":172,"context_line":"}"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"function warn_on_flake8_without_venv {"}],"source_content_type":"text/x-sh","patch_set":35,"id":"dac4157f_124c3941","line":171,"in_reply_to":"dac4157f_37996f6f","updated":"2015-04-20 18:11:00.000000000","message":"Oh, OK, I didn\u0027t realize that.  I\u0027ll change to \u0027npm run test\u0027","commit_id":"9ac893eaa5645f0ede26fa001e4fcf25cc6b4b56"}],"test-shim.js":[{"author":{"_account_id":9576,"name":"Thai Tran","email":"tqtran@us.ibm.com","username":"tqtran"},"change_message_id":"6df9ac132e7fd7c48afeb70a359a7e40fe6cae21","unresolved":false,"context_lines":[{"line_number":2,"context_line":" *  Shim for Javascript unit tests; supplying expected global features."},{"line_number":3,"context_line":" *  This should be removed from the codebase once i18n services are provided."},{"line_number":4,"context_line":" *  Taken from default i18n file provided by Django."},{"line_number":5,"context_line":" */"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"var angularModuleExtension \u003d [];"},{"line_number":8,"context_line":""}],"source_content_type":"text/javascript","patch_set":71,"id":"7a016987_9bc4d85f","line":5,"updated":"2015-05-26 21:45:39.000000000","message":"You need to educate me a bit here :) So from my understanding, we are only using Karma for angular code. And right now, we are only using gettext in the form of horizon.framework.util.i18n. If this is the case, I\u0027m not sure we need this at all?","commit_id":"00c0cdfc8c216586d7fdde7e6e15042a5867410a"},{"author":{"_account_id":14124,"name":"Matt Borland","email":"matt.borland@hpe.com","username":"mborland"},"change_message_id":"fa33b6c2f0b4087cffff19873127b59fbf1464f2","unresolved":false,"context_lines":[{"line_number":2,"context_line":" *  Shim for Javascript unit tests; supplying expected global features."},{"line_number":3,"context_line":" *  This should be removed from the codebase once i18n services are provided."},{"line_number":4,"context_line":" *  Taken from default i18n file provided by Django."},{"line_number":5,"context_line":" */"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"var angularModuleExtension \u003d [];"},{"line_number":8,"context_line":""}],"source_content_type":"text/javascript","patch_set":71,"id":"7a016987_a3fd103d","line":5,"in_reply_to":"7a016987_9bc4d85f","updated":"2015-05-27 17:57:26.000000000","message":"That patch to use i18n is not committed...that\u0027s why this is hanging around.  We\u0027d still need to keep it until everything is wrapped with i18n, which openstack_dashboard is not.","commit_id":"00c0cdfc8c216586d7fdde7e6e15042a5867410a"}]}
