)]}'
{"id":"openstack%2Fhacking~52221","triplet_id":"openstack%2Fhacking~master~I1cfa85745e4da3e773296d623ba390c5edd11ef5","project":"openstack/hacking","branch":"master","topic":"import-grouping","hashtags":[],"change_id":"I1cfa85745e4da3e773296d623ba390c5edd11ef5","subject":"Enforce import grouping","status":"MERGED","created":"2013-10-16 21:26:53.000000000","updated":"2014-01-03 04:03:11.000000000","submitted":"2014-01-03 04:03:11.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"320641129cd057cc893fda3b75e2b28354390733","_number":52221,"virtual_id_number":52221,"owner":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},{"value":0,"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":2,"date":"2014-01-03 04:03:11.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"value":0,"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},{"value":0,"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"recommended":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"all":[{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":1,"date":"2013-11-21 12:01:44.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},{"value":1,"date":"2013-12-11 18:00:45.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2013-12-31 07:27:17.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"value":2,"date":"2013-11-27 00:49:32.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},{"value":2,"date":"2014-01-03 03:59:21.000000000","_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"all":[{"value":0,"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},{"value":0,"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},{"value":0,"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},{"value":0,"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"value":0,"date":"2013-11-27 00:49:32.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},{"value":1,"date":"2014-01-03 03:59:21.000000000","_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2013-10-19 12:37:11.000000000","updated_by":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"reviewer":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"state":"REVIEWER"},{"updated":"2013-11-18 18:40:01.000000000","updated_by":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"reviewer":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"state":"REVIEWER"},{"updated":"2013-11-21 12:01:44.000000000","updated_by":{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},"reviewer":{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},"state":"REVIEWER"},{"updated":"2013-11-27 00:49:32.000000000","updated_by":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"reviewer":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"state":"REVIEWER"},{"updated":"2013-12-11 18:00:45.000000000","updated_by":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"reviewer":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"state":"REVIEWER"},{"updated":"2013-12-31 07:27:17.000000000","updated_by":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"reviewer":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"state":"REVIEWER"},{"updated":"2014-01-03 03:59:21.000000000","updated_by":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"reviewer":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"state":"REVIEWER"},{"updated":"2014-01-03 04:03:11.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"27e1865726cf105861e374fe0e6843851c97bc54","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-16 21:31:24.000000000","message":"Patch Set 1: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/1/check/gate-hacking-pep8/95a4510 : SUCCESS in 37s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/1/check/gate-hacking-docs/d97e936/doc/build/html/ : SUCCESS in 35s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/1/check/gate-hacking-python26/90bd74f : SUCCESS in 42s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/1/check/gate-hacking-python27/26ee4aa : SUCCESS in 34s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/1/check/gate-hacking-python33/f524d46 : FAILURE in 3m 50s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/1/check/gate-hacking-pypy/f5ea77e : SUCCESS in 1m 18s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/1/check/gate-hacking-integration-nova/9dc4e12 : SUCCESS in 2m 36s (non-voting)\n","accounts_in_message":[],"_revision_number":1},{"id":"4ee7edfdd9f1ae4bbcb6f1fee9dd6ef3cba3d4bb","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2013-10-17 19:25:33.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\nGlad to see this being implemented. -1 because the warnings are to verbose.\n\nCan we make the warnings optional and maybe print only one warning per import (so say \u0027failed to get module type for webob.dec\u0027 only once)\n\nsee http://logs.openstack.org/21/52221/1/check/gate-hacking-integration-nova/9dc4e12/console.html","accounts_in_message":[],"_revision_number":1},{"id":"d725d1fe7daeaa351bad3a471986ee322dada1ff","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-17 19:55:36.000000000","message":"Patch Set 1:\n\nHmm, I\u0027m concerned that it\u0027s failing to find so many packages in the first place.  Ordinarily that warning should almost never show up at all.  I wasn\u0027t aware of the tox integration target though, so I\u0027ll have to try that locally.  Maybe there\u0027s something different about that environment that\u0027s confusing it.","accounts_in_message":[],"_revision_number":1},{"id":"32e9a18ff9bf0afd5b0fd459e8601662d9127343","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-17 20:59:35.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"f9840f8a573f85a974ed7fa71af7236b9335c454","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-17 21:03:32.000000000","message":"Patch Set 2: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/2/check/gate-hacking-pep8/faff989 : SUCCESS in 33s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/2/check/gate-hacking-docs/5e8b537/doc/build/html/ : SUCCESS in 41s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/2/check/gate-hacking-python26/c52b993 : SUCCESS in 43s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/2/check/gate-hacking-python27/46c3879 : SUCCESS in 34s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/2/check/gate-hacking-python33/f5a9fd8 : FAILURE in 3m 50s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/2/check/gate-hacking-pypy/1aabdc6 : FAILURE in 1m 31s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/2/check/gate-hacking-integration-nova/2b5c14c : SUCCESS in 3m 09s (non-voting)\n","accounts_in_message":[],"_revision_number":2},{"id":"4d92cb0a528e41364828108e12213fededf74836","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-17 21:13:20.000000000","message":"Patch Set 2:\n\nOkay, it looks like the integration test doesn\u0027t install Nova deps, so that\u0027s why this test can\u0027t find a lot of the modules.  Not a huge deal.\n\nI made a change to cache results of previous searches for a module so it will only print a warning once per base package, so it won\u0027t be spamming the integration log so much now.","accounts_in_message":[],"_revision_number":2},{"id":"176f03818c679c10a3a0c130e8713783acb850df","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2013-10-18 21:06:29.000000000","message":"Patch Set 2: I would prefer that you didn\u0027t merge this\n\nIf instead of checking if each import is project, third-party or stdlib can we check if project or stdlib and if not assume its third-party.  I think its safe to assume every import will be real and we don\u0027t have to consider the case where the import is bad.\n\nThis will mean this check doesn\u0027t need all libs installed making the output more reproducible across different environments.\n\nDidn\u0027t mention this in my first review because didn\u0027t think of it at the time.","accounts_in_message":[],"_revision_number":2},{"id":"fbfea7d8cefd3020bac13269622f63971d7d5dd0","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-18 22:05:04.000000000","message":"Patch Set 2:\n\nOkay, good call.  It should be safe to default to third-party since we should never not find project or stdlib imports.  I\u0027ll get the change pushed.","accounts_in_message":[],"_revision_number":2},{"id":"3772180e166ea687f76db3ad252e683565d73d45","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-18 22:20:33.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"296e524678262db246e593e28213af5596e01b81","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-18 22:24:27.000000000","message":"Patch Set 3: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/3/check/gate-hacking-pep8/ffa8fda : SUCCESS in 28s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/3/check/gate-hacking-docs/b5d794d/doc/build/html/ : SUCCESS in 39s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/3/check/gate-hacking-python26/daa80b0 : SUCCESS in 54s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/3/check/gate-hacking-python27/79d47b8 : SUCCESS in 30s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/3/check/gate-hacking-python33/9b26efc : FAILURE in 3m 51s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/3/check/gate-hacking-pypy/e8cc5d1 : FAILURE in 1m 17s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/3/check/gate-hacking-integration-nova/175d2cc : SUCCESS in 3m 06s (non-voting)\n","accounts_in_message":[],"_revision_number":3},{"id":"c79815a325e25756503dc97d592e3f91abb71c81","author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"date":"2013-10-19 12:37:11.000000000","message":"Patch Set 3: I would prefer that you didn\u0027t merge this\n\n(1 inline comment)\n\nLooks mostly good- please add support for dist-packages in the path too.","accounts_in_message":[],"_revision_number":3},{"id":"02a196c0d08ca02019e6b87f10df498f0d9feb65","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-21 16:13:52.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"4c0a913425f65876d17b43bdeec08d00fb6a0e72","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-21 16:17:46.000000000","message":"Patch Set 4: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/4/check/gate-hacking-pep8/2a7d3df : SUCCESS in 31s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/4/check/gate-hacking-docs/246331c/doc/build/html/ : SUCCESS in 33s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/4/check/gate-hacking-python26/bf47743 : SUCCESS in 52s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/4/check/gate-hacking-python27/a3d1821 : SUCCESS in 38s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/4/check/gate-hacking-python33/bf34ba7 : FAILURE in 3m 51s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/4/check/gate-hacking-pypy/8993284 : FAILURE in 1m 18s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/4/check/gate-hacking-integration-nova/e0aec71 : SUCCESS in 3m 20s (non-voting)\n","accounts_in_message":[],"_revision_number":4},{"id":"ec88b764fa9187fe1a6ea23c2ded80f3ac445b2f","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2013-10-23 17:30:53.000000000","message":"Patch Set 4: I would prefer that you didn\u0027t merge this\n\nThis should be H305 see the todo in the code.  Also I think this check should also enforce the ordering between import blocks.  Looking good overall though","accounts_in_message":[],"_revision_number":4},{"id":"5360e8d9da99259ff81a92ed36d5c26629e685f8","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-24 17:33:42.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"b9d39d43986db005e4ce5eaf0eaae64322d4587c","author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"date":"2013-10-24 17:35:59.000000000","message":"Patch Set 5: I would prefer that you didn\u0027t merge this\n\n(1 inline comment)\n\n","accounts_in_message":[],"_revision_number":5},{"id":"0b9d54398d8a6f1b81ba48a9f4639fa3941adc2d","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-24 17:36:23.000000000","message":"Patch Set 5:\n\nOkay, that should take care of the group ordering.  I also added noqa support because I think we will need it for eventlet monkey patching.","accounts_in_message":[],"_revision_number":5},{"id":"a31723a787553f50d6bc2717c181661e08a8b7ed","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-24 17:37:08.000000000","message":"Patch Set 5: (1 inline comment)\n\nNew patch set imminent","accounts_in_message":[],"_revision_number":5},{"id":"24575e9f57df97ed820f9900ff610a9800275f44","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-24 17:37:39.000000000","message":"Patch Set 5: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/5/check/gate-hacking-pep8/723061b : SUCCESS in 32s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/5/check/gate-hacking-docs/5c40bb3/doc/build/html/ : SUCCESS in 36s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/5/check/gate-hacking-python26/4fcf219 : SUCCESS in 42s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/5/check/gate-hacking-python27/6e5fcf0 : SUCCESS in 36s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/5/check/gate-hacking-python33/fd985b4 : FAILURE in 3m 51s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/5/check/gate-hacking-pypy/d875050 : FAILURE in 1m 19s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/5/check/gate-hacking-integration-nova/039c6ff : SUCCESS in 3m 16s (non-voting)\n","accounts_in_message":[],"_revision_number":5},{"id":"a42e41434f4cec70f07e3c34774900e2f1f76391","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-24 17:38:16.000000000","message":"Uploaded patch set 6.","accounts_in_message":[],"_revision_number":6},{"id":"33a25e3a7e0c8f55f95927d6d8f6e72234cd21f3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-24 17:42:15.000000000","message":"Patch Set 6: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/6/check/gate-hacking-pep8/2b1ce25 : SUCCESS in 34s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/6/check/gate-hacking-docs/a533f05/doc/build/html/ : SUCCESS in 35s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/6/check/gate-hacking-python26/ee69336 : SUCCESS in 35s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/6/check/gate-hacking-python27/3dcebed : SUCCESS in 33s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/6/check/gate-hacking-python33/4d50b3e : FAILURE in 3m 50s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/6/check/gate-hacking-pypy/828ebeb : FAILURE in 1m 17s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/6/check/gate-hacking-integration-nova/06d891e : SUCCESS in 3m 31s (non-voting)\n","accounts_in_message":[],"_revision_number":6},{"id":"cff8a31d5b4bb38f92f73a62de48cfc161c6c1e7","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-25 16:35:30.000000000","message":"Uploaded patch set 7.","accounts_in_message":[],"_revision_number":7},{"id":"f642ce462f418695d6a9f029dbec94fba9e22970","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-25 16:39:31.000000000","message":"Patch Set 7: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/7/check/gate-hacking-pep8/a4975c4 : SUCCESS in 35s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/7/check/gate-hacking-docs/cc483d0/doc/build/html/ : SUCCESS in 35s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/7/check/gate-hacking-python26/ec5d047 : FAILURE in 41s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/7/check/gate-hacking-python27/1ff6cbf : FAILURE in 37s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/7/check/gate-hacking-python33/f966649 : FAILURE in 3m 55s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/7/check/gate-hacking-pypy/ff0414b : FAILURE in 1m 19s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/7/check/gate-hacking-integration-nova/67eb4ef : SUCCESS in 2m 45s (non-voting)\n","accounts_in_message":[],"_revision_number":7},{"id":"7ed9c63e12aeb87dbdf621acbd9f2efee6cc72c1","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-25 16:43:56.000000000","message":"Patch Set 7:\n\nRan across another case we should be checking - blank lines within groups.  It messes up our alphabetical order checks and doesn\u0027t follow the guidelines.\n\nA couple of things I\u0027m still not 100% sure about:\n1) Should all these cases be under the same rule, or should some be a new rule?\n2) The latest change won\u0027t allow blank lines around code such as the following:\n\ntry:\n    import lib_that_might_not_be_available\nexcept ImportError:\n    pass\n\nI\u0027m okay with that, but I realize it might be a point of contention so I wanted to mention it.","accounts_in_message":[],"_revision_number":7},{"id":"d3deb4f1540d288070da130f89d9ca4639810949","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-25 16:49:26.000000000","message":"Uploaded patch set 8.","accounts_in_message":[],"_revision_number":8},{"id":"2ed349d8911aad171b8771878fc46a1bd1b9da0b","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-25 16:51:04.000000000","message":"Patch Set 8:\n\nHuh.  I can scroll back up in my terminal and see where it passed tox locally, but the failure was legit so kudos to Jenkins I guess. :-)\n\nTo make sure my previous comment doesn\u0027t get lost in the Gerrit noise:\n\nA couple of things I\u0027m still not 100% sure about: 1) Should all these cases be under the same rule, or should some be a new rule? 2) The latest change won\u0027t allow blank lines around code such as the following:\n\ntry:\nimport lib_that_might_not_be_available\nexcept ImportError:\npass\n\nI\u0027m okay with that, but I realize it might be a point of contention so I wanted to mention it.","accounts_in_message":[],"_revision_number":8},{"id":"78014c153c6ff0442f975c8a2f6e6f3bdbc82d32","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-25 16:53:18.000000000","message":"Patch Set 8: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/8/check/gate-hacking-pep8/c799d4c : SUCCESS in 39s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/8/check/gate-hacking-docs/790adbe/doc/build/html/ : SUCCESS in 44s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/8/check/gate-hacking-python26/1227a3f : SUCCESS in 33s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/8/check/gate-hacking-python27/d6f9cde : SUCCESS in 40s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/8/check/gate-hacking-python33/dc74efd : FAILURE in 3m 50s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/8/check/gate-hacking-pypy/dfaf162 : FAILURE in 1m 20s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/8/check/gate-hacking-integration-nova/e8a5ce1 : SUCCESS in 3m 05s (non-voting)\n","accounts_in_message":[],"_revision_number":8},{"id":"c92c1be0f785ebf1177410595ad81f44e695c223","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2013-10-28 11:39:44.000000000","message":"Patch Set 8: I would prefer that you didn\u0027t merge this\n\n\u003e 1) Should all these cases be under the same rule, or should some be a new rule?\n\nI can go either way on that.\n\n 2) The latest change won\u0027t allow blank lines around code such as the following ...\n\n\nSince that isn\u0027t explicitly forbidden in hacking, we should allow it. See http://git.openstack.org/cgit/openstack-dev/hacking/tree/README.rst#n42","accounts_in_message":[],"_revision_number":8},{"id":"fd59bf8d4aa3370a7ad4895daeeb0b4436b44156","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-29 19:29:04.000000000","message":"Uploaded patch set 9.","accounts_in_message":[],"_revision_number":9},{"id":"672027d089b7e560902abbbd36f0613912457d5b","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-10-29 19:34:35.000000000","message":"Patch Set 9: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/9/check/gate-hacking-pep8/f780d55 : SUCCESS in 52s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/9/check/gate-hacking-docs/fc7caa2/doc/build/html/ : SUCCESS in 34s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/9/check/gate-hacking-python26/5592d99 : SUCCESS in 55s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/9/check/gate-hacking-python27/f33d587 : SUCCESS in 34s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/9/check/gate-hacking-python33/0bf6f64 : FAILURE in 3m 54s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/9/check/gate-hacking-pypy/798b90e : FAILURE in 1m 20s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/9/check/gate-hacking-integration-nova/58b0e12 : SUCCESS in 3m 09s (non-voting)\n","accounts_in_message":[],"_revision_number":9},{"id":"4f1d52d73801987a07206dcf17554b1b11745d06","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-10-29 19:53:23.000000000","message":"Patch Set 9:\n\nI decided to go ahead and split the different parts of the test.  It makes for a bit of duplication, but I think it\u0027s reasonable that someone might want to enforce grouping imports together but not the order of those groups (for example).\n\nI also did look into re-implementing the checks as flake8 class checks instead of functions so I wouldn\u0027t have to do all the filename/line number checking, but I had trouble getting that working with our tests.  I gave up because I\u0027m not entirely convinced writing AST traversal code to find the imports would actually have saved much effort. :-)","accounts_in_message":[],"_revision_number":9},{"id":"2e78aa1fef69588524bd5d66476b4fb1eb4740b0","author":{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},"date":"2013-11-19 13:13:47.000000000","message":"Patch Set 9: I would prefer that you didn\u0027t merge this\n\n(1 inline comment)\n\nBen,\n\nI leave an inline question about performance.:P","accounts_in_message":[],"_revision_number":9},{"id":"c0fa86ecb090ef3fabe338d061b4faab731e4361","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-11-20 17:29:17.000000000","message":"Patch Set 9: (1 inline comment)\n\n","accounts_in_message":[],"_revision_number":9},{"id":"e1f481c65d96b7f36b65a497485942c26e689a35","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-11-20 17:29:31.000000000","message":"Uploaded patch set 10.","accounts_in_message":[],"_revision_number":10},{"id":"ba9e864636714cd98643ccbc21b24b42a57ab5e6","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-11-20 17:56:31.000000000","message":"Patch Set 10: Doesn\u0027t seem to work\n\nBuild failed.  For information on how to proceed, see https://wiki.openstack.org/wiki/GerritJenkinsGit#Test_Failures\n\nThis change was unable to be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.","accounts_in_message":[],"_revision_number":10},{"id":"9488af3ba01b9999ec0a69bf46ede0f694641a29","author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"date":"2013-11-20 18:03:54.000000000","message":"Uploaded patch set 11.","accounts_in_message":[],"_revision_number":11},{"id":"0a8b305fb2a8daec8f9c7601325257f55442a480","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2013-11-20 19:34:13.000000000","message":"Patch Set 11: Works for me\n\nBuild succeeded.\n\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/11/check/gate-hacking-pep8/46bdeed : SUCCESS in 35s\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/11/check/gate-hacking-docs/a7cb74e/doc/build/html/ : SUCCESS in 47s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/11/check/gate-hacking-python26/e577eec : SUCCESS in 45s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/11/check/gate-hacking-python27/7a63d30 : SUCCESS in 32s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/11/check/gate-hacking-python33/7336614 : FAILURE in 5m 15s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/11/check/gate-hacking-pypy/40592d2 : FAILURE in 2m 45s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/11/check/gate-hacking-integration-nova/2a521c0 : SUCCESS in 3m 20s (non-voting)\n","accounts_in_message":[],"_revision_number":11},{"id":"0197ed263b411663516538259ed263f07817dbd7","author":{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},"date":"2013-11-21 12:01:44.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":11},{"id":"a8e29caf03a7e26fc3b765f041f730573e233ebf","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2013-11-27 00:49:32.000000000","message":"Patch Set 11: Looks good to me (core reviewer)\n\nLGTM thanks","accounts_in_message":[],"_revision_number":11},{"id":"a6d494e4ae85197dfd3cecd9348ed9ba12ffdc51","author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"date":"2013-12-11 18:00:45.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":11},{"id":"ac6982a69d6e47177b847f5c6a44cd51dc8a3ca2","author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"date":"2013-12-31 07:27:17.000000000","message":"Patch Set 11: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":11},{"id":"129744faf3e37126a62c37a30e740b6cb61fe9b0","author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"date":"2014-01-03 03:59:21.000000000","message":"Patch Set 11: Looks good to me (core reviewer); Approved\n\n","accounts_in_message":[],"_revision_number":11},{"id":"7da4a761502a27726fc3bcc375df28f5fb0c90bb","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-01-03 03:59:22.000000000","message":"Patch Set 11: No score\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":11},{"id":"231992392a67f0113e192cb2cbc1c227251150ee","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-01-03 04:03:11.000000000","message":"Patch Set 11: Verified\n\nBuild succeeded.\n\n- gate-hacking-docs http://docs-draft.openstack.org/21/52221/11/gate/gate-hacking-docs/13610ec/doc/build/html/ : SUCCESS in 34s\n- gate-hacking-pep8 http://logs.openstack.org/21/52221/11/gate/gate-hacking-pep8/489468e : SUCCESS in 26s\n- gate-hacking-python26 http://logs.openstack.org/21/52221/11/gate/gate-hacking-python26/729975e : SUCCESS in 45s\n- gate-hacking-python27 http://logs.openstack.org/21/52221/11/gate/gate-hacking-python27/f2284f0 : SUCCESS in 30s\n- gate-hacking-python33 http://logs.openstack.org/21/52221/11/gate/gate-hacking-python33/0a8c36a : FAILURE in 3m 47s (non-voting)\n- gate-hacking-pypy http://logs.openstack.org/21/52221/11/gate/gate-hacking-pypy/67f5f9c : FAILURE in 1m 11s (non-voting)\n- gate-hacking-integration-nova http://logs.openstack.org/21/52221/11/gate/gate-hacking-integration-nova/7b0f572 : SUCCESS in 3m 07s (non-voting)\n","accounts_in_message":[],"_revision_number":11},{"id":"9eaa45b099cf54ea0de0cf446f1da6b688033f64","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2014-01-03 04:03:11.000000000","message":"Change has been successfully merged into the git repository.","accounts_in_message":[],"_revision_number":11}],"current_revision_number":11,"current_revision":"b321905608b63c3d8a0f0ea7921c72c479b4f938","revisions":{"15a070bfeae0ab070b2c64120ccd21e09f28a9c0":{"kind":"REWORK","_number":1,"created":"2013-10-16 21:26:53.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/1"}}},"commit":{"parents":[{"commit":"bf776353b0dd775ef3fce14ee38ea8822220f53c","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bf776353b0dd775ef3fce14ee38ea8822220f53c"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 21:25:42.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H307) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  If it\nfails to determine the type of an import it bails out to avoid\nfalse positives.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/15a070bfeae0ab070b2c64120ccd21e09f28a9c0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/15a070bfeae0ab070b2c64120ccd21e09f28a9c0"}]},"branch":"refs/heads/master"},"49c2f47052e45c023e01ad7510a0e468a4a44169":{"kind":"REWORK","_number":2,"created":"2013-10-17 20:59:35.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/2"}}},"commit":{"parents":[{"commit":"bf776353b0dd775ef3fce14ee38ea8822220f53c","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bf776353b0dd775ef3fce14ee38ea8822220f53c"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-17 20:58:33.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H307) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  If it\nfails to determine the type of an import it bails out to avoid\nfalse positives.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/49c2f47052e45c023e01ad7510a0e468a4a44169"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/49c2f47052e45c023e01ad7510a0e468a4a44169"}]},"branch":"refs/heads/master"},"8c25837ded756e613de7f197cb3990b57e2398bf":{"kind":"REWORK","_number":3,"created":"2013-10-18 22:20:33.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/3"}}},"commit":{"parents":[{"commit":"bf776353b0dd775ef3fce14ee38ea8822220f53c","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bf776353b0dd775ef3fce14ee38ea8822220f53c"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-18 22:14:32.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H307) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  It\nassumes any modules that are not found are third-party so it can\nbe run in environments without all of a project\u0027s deps installed.\nThis should be safe because the project and stdlib imports should\nalways be found.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/8c25837ded756e613de7f197cb3990b57e2398bf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/8c25837ded756e613de7f197cb3990b57e2398bf"}]},"branch":"refs/heads/master"},"50643195d0821b2ee31aaf1ce43fb4ae064517fa":{"kind":"REWORK","_number":4,"created":"2013-10-21 16:13:52.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/4"}}},"commit":{"parents":[{"commit":"bf776353b0dd775ef3fce14ee38ea8822220f53c","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bf776353b0dd775ef3fce14ee38ea8822220f53c"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-21 16:13:28.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H307) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  It\nassumes any modules that are not found are third-party so it can\nbe run in environments without all of a project\u0027s deps installed.\nThis should be safe because the project and stdlib imports should\nalways be found.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/50643195d0821b2ee31aaf1ce43fb4ae064517fa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/50643195d0821b2ee31aaf1ce43fb4ae064517fa"}]},"branch":"refs/heads/master"},"7d2c8d8b78525572f981c549b3570d32638321cd":{"kind":"REWORK","_number":5,"created":"2013-10-24 17:33:42.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/5"}}},"commit":{"parents":[{"commit":"bf776353b0dd775ef3fce14ee38ea8822220f53c","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bf776353b0dd775ef3fce14ee38ea8822220f53c"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-24 17:32:25.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  It\nassumes any modules that are not found are third-party so it can\nbe run in environments without all of a project\u0027s deps installed.\nThis should be safe because the project and stdlib imports should\nalways be found.\n\nIt also verifies that import groups follow the proper ordering of\nstdlib, third-party, project.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/7d2c8d8b78525572f981c549b3570d32638321cd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/7d2c8d8b78525572f981c549b3570d32638321cd"}]},"branch":"refs/heads/master"},"22f17cd511f21010f4f5050afef3976b45e89714":{"kind":"REWORK","_number":6,"created":"2013-10-24 17:38:16.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/6"}}},"commit":{"parents":[{"commit":"bf776353b0dd775ef3fce14ee38ea8822220f53c","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bf776353b0dd775ef3fce14ee38ea8822220f53c"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-24 17:37:51.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  It\nassumes any modules that are not found are third-party so it can\nbe run in environments without all of a project\u0027s deps installed.\nThis should be safe because the project and stdlib imports should\nalways be found.\n\nIt also verifies that import groups follow the proper ordering of\nstdlib, third-party, project.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/22f17cd511f21010f4f5050afef3976b45e89714"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/22f17cd511f21010f4f5050afef3976b45e89714"}]},"branch":"refs/heads/master"},"bb3924bed81d761345f4837d5b9ebcd4be062361":{"kind":"REWORK","_number":7,"created":"2013-10-25 16:35:30.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/7"}}},"commit":{"parents":[{"commit":"27cad03fa2a88b65db63938186baba5306dd9aec","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/27cad03fa2a88b65db63938186baba5306dd9aec"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-25 16:33:58.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  It\nassumes any modules that are not found are third-party so it can\nbe run in environments without all of a project\u0027s deps installed.\nThis should be safe because the project and stdlib imports should\nalways be found.\n\nIt also verifies that import groups follow the proper ordering of\nstdlib, third-party, project.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bb3924bed81d761345f4837d5b9ebcd4be062361"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/bb3924bed81d761345f4837d5b9ebcd4be062361"}]},"branch":"refs/heads/master"},"f13bfd8c0ede3e6563bb4527fae4953873a34516":{"kind":"REWORK","_number":8,"created":"2013-10-25 16:49:26.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/8"}}},"commit":{"parents":[{"commit":"27cad03fa2a88b65db63938186baba5306dd9aec","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/27cad03fa2a88b65db63938186baba5306dd9aec"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-25 16:48:16.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) to enforce proper import\ngrouping.  It tries to categorize each import it comes across and\ncompares it with the type of the previous import (if any).  It\nassumes any modules that are not found are third-party so it can\nbe run in environments without all of a project\u0027s deps installed.\nThis should be safe because the project and stdlib imports should\nalways be found.\n\nIt also verifies that import groups follow the proper ordering of\nstdlib, third-party, project.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/f13bfd8c0ede3e6563bb4527fae4953873a34516"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/f13bfd8c0ede3e6563bb4527fae4953873a34516"}]},"branch":"refs/heads/master"},"f78c5c5c26339303c8ae6c685be57198202d9b2c":{"kind":"REWORK","_number":9,"created":"2013-10-29 19:29:04.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/9"}}},"commit":{"parents":[{"commit":"27cad03fa2a88b65db63938186baba5306dd9aec","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/27cad03fa2a88b65db63938186baba5306dd9aec"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-29 19:14:52.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) that enforces the hacking\nguideline about grouping stdlib, third-party, and project\nimports together.  It assumes any imports that are not found are\nthird party so the tool can be run in environments without all of\na project\u0027s deps installed.  This should be safe because stdlib\nand project imports should always be available.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/f78c5c5c26339303c8ae6c685be57198202d9b2c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/f78c5c5c26339303c8ae6c685be57198202d9b2c"}]},"branch":"refs/heads/master"},"eea1b7367ee211fd84e6849a0c49c1ddbc24727d":{"kind":"REWORK","_number":10,"created":"2013-11-20 17:29:31.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/10"}}},"commit":{"parents":[{"commit":"27cad03fa2a88b65db63938186baba5306dd9aec","subject":"Fix import grouping","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/27cad03fa2a88b65db63938186baba5306dd9aec"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-11-20 17:26:37.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) that enforces the hacking\nguideline about grouping stdlib, third-party, and project\nimports together.  It assumes any imports that are not found are\nthird party so the tool can be run in environments without all of\na project\u0027s deps installed.  This should be safe because stdlib\nand project imports should always be available.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/eea1b7367ee211fd84e6849a0c49c1ddbc24727d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/eea1b7367ee211fd84e6849a0c49c1ddbc24727d"}]},"branch":"refs/heads/master"},"b321905608b63c3d8a0f0ea7921c72c479b4f938":{"kind":"TRIVIAL_REBASE","_number":11,"created":"2013-11-20 18:03:54.000000000","uploader":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"ref":"refs/changes/21/52221/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/hacking","ref":"refs/changes/21/52221/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/hacking refs/changes/21/52221/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/hacking refs/changes/21/52221/11"}}},"commit":{"parents":[{"commit":"c8fa7b71411e25413c74c49e0a13467c362d6f4f","subject":"Merge \"Add a check for newline after docstring summary\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/c8fa7b71411e25413c74c49e0a13467c362d6f4f"}]}],"author":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-10-16 20:19:09.000000000","tz":0},"committer":{"name":"Ben Nemec","email":"bnemec@redhat.com","date":"2013-11-20 18:01:43.000000000","tz":0},"subject":"Enforce import grouping","message":"Enforce import grouping\n\nThis is a new hacking rule (H305) that enforces the hacking\nguideline about grouping stdlib, third-party, and project\nimports together.  It assumes any imports that are not found are\nthird party so the tool can be run in environments without all of\na project\u0027s deps installed.  This should be safe because stdlib\nand project imports should always be available.\n\nChange-Id: I1cfa85745e4da3e773296d623ba390c5edd11ef5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/b321905608b63c3d8a0f0ea7921c72c479b4f938"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/hacking/commit/b321905608b63c3d8a0f0ea7921c72c479b4f938"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
