)]}'
{"id":"openstack%2Fopenstack-specs~150653","triplet_id":"openstack%2Fopenstack-specs~master~I7a3663a93e9ea0c9adfb443221c2025edb331644","project":"openstack/openstack-specs","branch":"master","topic":"testing_guidelines","hashtags":[],"change_id":"I7a3663a93e9ea0c9adfb443221c2025edb331644","subject":"Testing guidelines","status":"ABANDONED","created":"2015-01-28 02:13:51.000000000","updated":"2015-06-09 13:19:58.000000000","total_comment_count":158,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"54a5af55c2c8070ef4f234dd12d087b6e260cbba","_number":150653,"virtual_id_number":150653,"owner":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"date":"2015-02-12 18:50:50.000000000","_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},{"value":1,"date":"2015-02-09 14:47:42.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"date":"2015-02-10 06:30:58.000000000","_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},{"date":"2015-02-10 09:25:48.000000000","_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"date":"2015-02-10 22:29:51.000000000","_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},{"date":"2015-03-20 14:40:27.000000000","_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},{"date":"2015-02-16 20:05:22.000000000","_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},{"date":"2015-02-10 17:41:33.000000000","_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},{"date":"2015-02-10 00:48:10.000000000","_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},{"date":"2015-02-09 16:48:16.000000000","_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"date":"2015-02-10 17:04:16.000000000","_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},{"_account_id":2807,"name":"Bryan D. Payne","email":"bdpayne@acm.org","username":"bdpayne"},{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"date":"2015-02-09 18:38:28.000000000","_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"recommended":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"disliked":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},{"value":1,"date":"2015-02-11 07:39:54.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},{"value":-1,"date":"2015-02-28 16:21:37.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},{"value":1,"date":"2015-02-10 23:09:29.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},{"value":1,"date":"2015-02-10 01:20:12.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"value":1,"date":"2015-03-02 17:45:46.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},{"value":1,"date":"2015-02-11 10:54:02.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},{"value":1,"date":"2015-02-09 19:19:25.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},{"value":1,"date":"2015-02-18 14:53:27.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},{"value":-1,"date":"2015-02-09 21:53:33.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"value":1,"date":"2015-02-11 00:28:45.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},{"value":1,"date":"2015-02-17 21:10:14.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"value":1,"date":"2015-02-11 14:58:38.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},{"value":1,"date":"2015-02-10 23:00:00.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},{"value":-1,"date":"2015-02-18 18:01:38.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"value":1,"date":"2015-02-10 14:43:36.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2807,"name":"Bryan D. Payne","email":"bdpayne@acm.org","username":"bdpayne"},{"value":1,"date":"2015-02-10 22:39:17.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},{"value":1,"date":"2015-02-11 23:49:28.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"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":{"all":[{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},{"date":"2015-02-12 17:05:13.000000000","_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"date":"2015-02-10 15:38:55.000000000","_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"date":"2015-02-10 15:38:55.000000000","_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},{"date":"2015-02-17 21:21:02.000000000","_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},{"date":"2015-02-10 15:38:55.000000000","_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},{"date":"2015-02-10 15:38:55.000000000","_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"date":"2015-02-10 22:39:29.000000000","_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},{"value":0,"date":"2015-02-10 15:38:55.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},{"date":"2015-02-09 16:42:14.000000000","_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},{"date":"2015-02-17 21:21:09.000000000","_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},{"date":"2015-02-10 15:38:50.000000000","_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},{"date":"2015-02-10 15:38:55.000000000","_account_id":2807,"name":"Bryan D. Payne","email":"bdpayne@acm.org","username":"bdpayne"},{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},{"date":"2015-02-10 01:28:03.000000000","_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"_account_id":2807,"name":"Bryan D. Payne","email":"bdpayne@acm.org","username":"bdpayne"},{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2015-01-28 06:00:22.000000000","updated_by":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"reviewer":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"state":"REVIEWER"},{"updated":"2015-02-09 14:47:42.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2015-02-09 16:42:14.000000000","updated_by":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"reviewer":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"state":"REVIEWER"},{"updated":"2015-02-09 16:48:16.000000000","updated_by":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"reviewer":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"state":"REVIEWER"},{"updated":"2015-02-09 19:19:25.000000000","updated_by":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"reviewer":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"state":"REVIEWER"},{"updated":"2015-02-09 21:53:33.000000000","updated_by":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"reviewer":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"state":"REVIEWER"},{"updated":"2015-02-10 00:48:10.000000000","updated_by":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"reviewer":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"state":"REVIEWER"},{"updated":"2015-02-10 01:20:12.000000000","updated_by":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"reviewer":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"state":"REVIEWER"},{"updated":"2015-02-10 01:28:03.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":"2015-02-10 06:30:58.000000000","updated_by":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"reviewer":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"state":"REVIEWER"},{"updated":"2015-02-10 09:25:48.000000000","updated_by":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"reviewer":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"state":"REVIEWER"},{"updated":"2015-02-10 14:43:36.000000000","updated_by":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"reviewer":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:50.000000000","updated_by":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"reviewer":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:55.000000000","updated_by":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"reviewer":{"_account_id":167,"name":"Christian Berendt","email":"berendt@osism.tech","username":"berendt"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:55.000000000","updated_by":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"reviewer":{"_account_id":964,"name":"Anne Gentle","email":"annegentle@justwriteclick.com","username":"annegentle"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:55.000000000","updated_by":{"_account_id":2807,"name":"Bryan D. Payne","email":"bdpayne@acm.org","username":"bdpayne"},"reviewer":{"_account_id":2807,"name":"Bryan D. Payne","email":"bdpayne@acm.org","username":"bdpayne"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:55.000000000","updated_by":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"reviewer":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:55.000000000","updated_by":{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},"reviewer":{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},"state":"REVIEWER"},{"updated":"2015-02-10 15:38:55.000000000","updated_by":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"reviewer":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"state":"REVIEWER"},{"updated":"2015-02-10 17:04:16.000000000","updated_by":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"reviewer":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"state":"REVIEWER"},{"updated":"2015-02-10 17:41:33.000000000","updated_by":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"reviewer":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"state":"REVIEWER"},{"updated":"2015-02-10 22:29:51.000000000","updated_by":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"reviewer":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"state":"REVIEWER"},{"updated":"2015-02-10 22:39:17.000000000","updated_by":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"reviewer":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"state":"REVIEWER"},{"updated":"2015-02-10 22:39:29.000000000","updated_by":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"reviewer":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"state":"REVIEWER"},{"updated":"2015-02-10 23:09:29.000000000","updated_by":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"reviewer":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"state":"REVIEWER"},{"updated":"2015-02-11 07:39:54.000000000","updated_by":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"reviewer":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"state":"REVIEWER"},{"updated":"2015-02-11 10:54:02.000000000","updated_by":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"reviewer":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"state":"REVIEWER"},{"updated":"2015-02-11 14:58:38.000000000","updated_by":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"reviewer":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"state":"REVIEWER"},{"updated":"2015-02-12 17:05:13.000000000","updated_by":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"reviewer":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"state":"REVIEWER"},{"updated":"2015-02-12 18:50:50.000000000","updated_by":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"reviewer":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"state":"REVIEWER"},{"updated":"2015-02-16 20:05:22.000000000","updated_by":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"reviewer":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"state":"REVIEWER"},{"updated":"2015-02-17 21:10:14.000000000","updated_by":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"reviewer":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"state":"REVIEWER"},{"updated":"2015-02-17 21:21:02.000000000","updated_by":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"reviewer":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"state":"REVIEWER"},{"updated":"2015-02-17 21:21:09.000000000","updated_by":{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},"reviewer":{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},"state":"REVIEWER"},{"updated":"2015-02-28 16:21:37.000000000","updated_by":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"reviewer":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"state":"REVIEWER"},{"updated":"2015-03-02 17:45:46.000000000","updated_by":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"reviewer":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"state":"REVIEWER"},{"updated":"2015-03-20 14:40:27.000000000","updated_by":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"reviewer":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"state":"REVIEWER"}],"messages":[{"id":"dfe484a22bfcda3cbba526b07180eb62838fa58a","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-01-28 02:13:51.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"318abc5b15f1c6eb648518171df00fe5228de25f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-01-28 02:13:52.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- noop http://logs.openstack.org/53/150653/1/check/noop/3eab179/ : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"421464f21952da7d96aa9e346c0a03b3771007fa","author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"date":"2015-01-28 06:00:22.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2f1f8c4534041957de538a3f5b49a3f51a57c0da","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2015-01-28 19:44:04.000000000","message":"Patch Set 1: Code-Review-1\n\n(8 comments)\n\nGood writeup, thanks! I noticed a couple of nits and added comments.","accounts_in_message":[],"_revision_number":1},{"id":"cf153fb8fba2b7dab8502e682afd384bcb223dd8","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-01-28 22:14:56.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"e0ea61961bf27d82e507791ccc220bf0043af0b5","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-01-29 15:23:34.000000000","message":"Patch Set 1:\n\nI\u0027d ask that we don\u0027t -1 for gramar / typos at this point. Content is the key metric and I\u0027m afraid we\u0027ll spin on typos instead of on the meat of things.","accounts_in_message":[],"_revision_number":1},{"id":"9db116ac5e914a0f7727229f64f1d6a38cf47caf","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2015-01-29 15:31:46.000000000","message":"Patch Set 1:\n\nSean, besides the Grammar, there were a few things where I think it\u0027s not fine as is.","accounts_in_message":[],"_revision_number":1},{"id":"11060b3e2e5b96f2735f2e8c3f1a74b03df2ec19","author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"date":"2015-02-04 13:40:50.000000000","message":"Patch Set 1:\n\n(10 comments)\n\nPromising first draft, various nits and comments inline.","accounts_in_message":[],"_revision_number":1},{"id":"307ec864acc4b65424c09f5944c05e6939b47682","author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"date":"2015-02-04 17:17:27.000000000","message":"Patch Set 1:\n\n(7 comments)\n\nLGTM for the most part, just some initial comments.","accounts_in_message":[],"_revision_number":1},{"id":"21f6c905f8feefd7e662952a80eaf61d6fdc1dd2","author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"date":"2015-02-05 07:11:54.000000000","message":"Patch Set 1: -Code-Review","accounts_in_message":[],"_revision_number":1},{"id":"e1b3d51da4d1cb28d57172416e68dd5c783a8f67","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 13:54:19.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"c96f36c760cc7520e1f0a85b0e743b53bfdaff85","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 13:54:52.000000000","message":"Patch Set 2:\n\ndraft 2, I think all comments were responded to","accounts_in_message":[],"_revision_number":2},{"id":"22132b024d6bdf5bdd73b80992e7da6ab1c49e7e","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-02-09 14:03:23.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see http://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n- gate-openstack-specs-docs http://logs.openstack.org/53/150653/2/check/gate-openstack-specs-docs/7c7b60d/ : FAILURE in 1m 36s","accounts_in_message":[],"_revision_number":2},{"id":"3500517207dbb4192038d3321b9bc4a3eb0730bf","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 14:37:37.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"6cc17a39f990d96f9cdd0d5b3013cd8b3771d700","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2015-02-09 14:47:42.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-openstack-specs-docs http://docs-draft.openstack.org/53/150653/3/check/gate-openstack-specs-docs/a4f8cc4//doc/build/html/ : SUCCESS in 1m 48s","accounts_in_message":[],"_revision_number":3},{"id":"2f3b5e1ceea4c4a588ba6f1b4307f6aa7ac4d479","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2015-02-09 16:48:16.000000000","message":"Patch Set 3:\n\n(4 comments)\n\nAwesome, love it. You\u0027re on a roll with this writing stuff, keep it up please.\n\nMinor comments within plus:\n\nIt is probably out of scope for this document but long term we should consider how testing will operate when the projects are operating on different (and hopefully more frequent) release cycles. In that setting it would make sense for a project to test against the most recent release of some other project it uses not master, or perhaps both master and the most recent release. The goal there would be to insure that project X is relying on the (hopefully somewhat stable) contract of project Y but project Y is able to release frequently[1].\n\n[1] Release early and often got lost somewhere in the history of openstack and that\u0027s a damn shame. Just because upstream releases often doesn\u0027t mean downstream has to...","accounts_in_message":[],"_revision_number":3},{"id":"7df6fa8fb3013a54dfba76baf9e722fbba1a01e1","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 18:38:28.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"5d1e31fdc650ff602195eb10cd227896b335ea0f","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 18:40:36.000000000","message":"Patch Set 3:\n\nChris, agreed, as we get OpenStack projects releasing more often it might make more sense to test on released versions of projects instead of on master, for instance. However, that\u0027s far enough down the path that I think we revisit when we realistically see that on the horizon. As I expect what\u0027s in here is a cycle or two to get through it.","accounts_in_message":[],"_revision_number":3},{"id":"bda4231184a5c492d90f9f93ce50297b42675618","author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"date":"2015-02-09 19:19:25.000000000","message":"Patch Set 3: Code-Review+1\n\n(5 comments)","accounts_in_message":[],"_revision_number":3},{"id":"d249a018d1a7229133127738c5805695bd3410b1","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2015-02-09 20:23:53.000000000","message":"Patch Set 3:\n\n(1 comment)\n\nJust a quick semi-supportive response to one of Brant\u0027s comments.","accounts_in_message":[],"_revision_number":3},{"id":"b8e75ec8e66bf305c3d683dfb68ba5574dfbed1d","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2015-02-09 21:53:33.000000000","message":"Patch Set 3: Code-Review-1\n\n(9 comments)\n\nWe have great tool Rally that is well integrated in gate. And can be used for functional testing of OpenStack clients and tests that requires admin. As well as it can generate load it is perfect for catching races in gates.\n\nSo I believe that Rally effort shouldn\u0027t be ignored in this spec.","accounts_in_message":[],"_revision_number":3},{"id":"2b5979341aeb43151a6f5c2ef1dd2fcab0fc63d9","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 22:24:56.000000000","message":"Patch Set 3:\n\n(6 comments)","accounts_in_message":[],"_revision_number":3},{"id":"8d1a491d1a61d9f0834cc0904e2b029bf1fe56ed","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-09 22:30:18.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"1c3781a19773b4874c14d3bfdcecda0db021b1b9","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2015-02-09 22:39:11.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"720c2e407281546f73e31e56b136434710f2052a","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2015-02-09 22:45:03.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"af307261ff94e1e5466235a9349355b8ead0c4a8","author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"date":"2015-02-10 00:48:10.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"ab35ce320b48687641c1c7498389f842b5467fb3","author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"date":"2015-02-10 01:20:12.000000000","message":"Patch Set 3: Code-Review+1\n\n(6 comments)","accounts_in_message":[],"_revision_number":3},{"id":"f204e675ef81a5faacfdaeaee1de873ed61895bf","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2015-02-10 02:10:32.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"481ddeb4a0088af22f91f7af6f6cf2466a9ecca9","author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"date":"2015-02-10 06:30:58.000000000","message":"Patch Set 3:\n\n(3 comments)","accounts_in_message":[],"_revision_number":3},{"id":"1c0a2363f4052664d2ba79d3a6c90b7ea20cd9be","author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"date":"2015-02-10 09:25:48.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"798818f899d6a96640ae06a19e2b937da02cf602","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-10 13:44:56.000000000","message":"Patch Set 3:\n\n(8 comments)","accounts_in_message":[],"_revision_number":3},{"id":"4d9316d4f1331989bdfe738cdd881656f9dffbe8","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2015-02-10 13:51:14.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"7670f8b2946a6c8e107b0605f63697d7dd8ec5d7","author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"date":"2015-02-10 13:52:23.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"0d4e3d253422072a2c5f9ec2a42a1223e9f52e7a","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2015-02-10 14:09:19.000000000","message":"Patch Set 3:\n\n(1 comment)\n\n(DRY in testing)--","accounts_in_message":[],"_revision_number":3},{"id":"1cb87d00bc2762bef01d2977f47e58d436e52cbe","author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"date":"2015-02-10 14:43:36.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"1a42afc1623505f7950591db46d1bb5fea77349b","author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"date":"2015-02-10 16:31:55.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"ce57094ad51f2de5f4814aafd19e58fbbebaf133","author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"date":"2015-02-10 17:04:16.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"0758c964bba35041761ceb442a59acac09971f91","author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"date":"2015-02-10 17:41:33.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"b32ef34d2fcd60b1f5545f84034fe778840b0cf0","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-10 18:57:11.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"5940048e53e33905bb1aa62e671da881d123e5b0","author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"date":"2015-02-10 22:29:51.000000000","message":"Patch Set 3:\n\n(6 comments)\n\nA few thoughts.","accounts_in_message":[],"_revision_number":3},{"id":"59c4d9587d6adc54a914929f03683efe54d97523","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-10 22:36:15.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a2a94c9c0e2829e2d7bdf4db09f3ff2570017bfc","author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"date":"2015-02-10 22:39:17.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"c50b7a7b6e54c4136417d9e51ca1df19f0b08ef5","author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"date":"2015-02-10 23:00:00.000000000","message":"Patch Set 3: Code-Review+1\n\nOverall this is really good! Thanks for taking the time to write this up Sean!","accounts_in_message":[],"_revision_number":3},{"id":"577906ab619ee7049d7897449592aaa2e69cac3b","author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"date":"2015-02-10 23:09:29.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)\n\nStill LGTM, thanks for fixing my earlier comments.","accounts_in_message":[],"_revision_number":3},{"id":"e9270d6df18512d1c139ebbba4a98b4d315fdf85","author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"date":"2015-02-11 00:09:55.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"b2c8e88eec9161a7dd513fd0a61e4006297f3dcb","author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"date":"2015-02-11 00:28:45.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)\n\nI like the direction.","accounts_in_message":[],"_revision_number":3},{"id":"3edb7ef660ce0951ea7df453fa792d31feaced3b","author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"date":"2015-02-11 07:39:54.000000000","message":"Patch Set 3: Code-Review+1\n\n(16 comments)\n\nA bunch of super pedant comments to me.\nI like the direction where this spec is going - it\u0027s mostly ok for me.\nI guess we can then amend it as we make progress digging into actual issues, so I don\u0027t think my comments really need to be addressed in this patch.","accounts_in_message":[],"_revision_number":3},{"id":"550f1ae5b37635876addf03df3357a31e70b4c32","author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"date":"2015-02-11 10:54:02.000000000","message":"Patch Set 3: Code-Review+1\n\n(4 comments)\n\nI like it. LGTM.","accounts_in_message":[],"_revision_number":3},{"id":"4da2d6dd719972f86527e1cfd7cc55538447e3ae","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-11 12:01:22.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"807ccddda16aeac1a2063c584862376da2d9dcc4","author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"date":"2015-02-11 14:58:38.000000000","message":"Patch Set 3: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"a01c1797262197947bd48d04fe886a9e0f0dd755","author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"date":"2015-02-11 23:49:28.000000000","message":"Patch Set 3: Code-Review+1\n\nawesome, everything here aligns with with where we have been trying to going for some time now, and its great to \u0027write it down\u0027.","accounts_in_message":[],"_revision_number":3},{"id":"5e04319dc6e571db1d1c6eceec5b99b848c60c60","author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"date":"2015-02-12 18:50:50.000000000","message":"Patch Set 3:\n\nSince this intends to record lessons learned and reasoning, I\nthink a certain precision of language is in order.  Several\nconcepts that are actually distinct have been confused and it\nwould be good to understand them clearly.  Here are the concepts\nas I understand them:\n\n* Shared change queues -- this is about ordering.  We have a lot\n  of patches being developed simultaneously.  Not all of them\n  will work together in concert, even if they individually pass\n  tests.  When projects share a change queue, it ensures that\n  they merge in an order that will not break tests.\n\n* Integration testing -- this is about making sure that\n  components work with each other.  Any dependency can affect the\n  results of an integration test, whether it\u0027s an OpenStack\n  component, a library on PyPI, or part of the operating system.\n\n* Testing git master -- this is about finding bugs before\n  release.  Testing the branch tip of projects means bugs are\n  visible early, before releases are made.\n\n* Testing released versions -- this is about ensuring that\n  declared dependencies work.  This lets us know that if someone\n  installs a component and uses libraries from PyPI rather than\n  installing everything from git, it will work.\n\nThe definition of \"co-gating\" in the specification combines at\nleast two, perhaps three, of those concepts.  It also suggests\nthat it is \"a simple demonstration that *some* version of\nOpenStack worked when deployed\".  Devstack more closely matches\nthat description.  Until it was created there was no real\nintegration test -- certainly not in the gate.\n\nThe only fool-proof way to prevent breaking changes from merging\nanywhere in the system is to apply all of those strategies\nglobally.  That clearly doesn\u0027t scale to the level of projects we\nwant, and so we are left with the hard task of making\ncompromises.\n\nOf the four, integration testing is what allows changes in a\ngiven project to cause changes in another project to fail.\nPerforming integration testing where not necessary leads to\nannoyance.  However, some projects rely so heavily on others,\nthat any test is an integration test and the potential for\nfailure remains regardless.  Those are situations where it may be\nuseful to have an explicit integration test, and possibly to\nshare that test on both projects so neither breaks the other, and\npossibly for them to share a change queue so that they can\nsequence changes appropriately.\n\nOf the four, testing only released versions is what allows\nreleases in a given project to cause changes in another project\nto fail.  If two projects test git master together in an\nintegration test, then either will know when a change breaks the\nother, and this will be discovered before a release.  On the\nother hand, it could mean that the master branch of a project may\nnot work with released versions of its dependencies.  So thought\nmust be put into which kind of testing is appropriate; perhaps\nboth.\n\nOf the four, sharing a change queue is what causes delays in\nmerging changes.  Sharing a change queue does not cause patches\nto be rejected due to unrelated failures in other components --\nthat only happens when a project exercises the other component as\npart of its tests.  However, having too many projects in a shared\nchange queue will cause the potential queue of merging changes to\nbe deep, and if tests frequently fail, changes further back in\nthe queue will be delayed.","accounts_in_message":[],"_revision_number":3},{"id":"180572a10bc22adb3d9a60a0614fe5b36319ae3b","author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"date":"2015-02-16 20:05:22.000000000","message":"Patch Set 3:\n\n(4 comments)\n\nOverall this looks pretty good. I left a few wording suggestions for clarity inline. I\u0027m interested in seeing a draft that incorporates jeblair\u0027s comments.","accounts_in_message":[],"_revision_number":3},{"id":"838c9d02a823f13b3bceb0847fc11b14b021becb","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-02-17 20:38:39.000000000","message":"Patch Set 3:\n\nok, so there is a lot of good feedback here. I think based on this so far here is the TODO list:\n\n1) Include a more upfront taxonomy of testing types. @jeblair provided a lot of useful material for that. I\u0027m also thinking a picture might be worth a thousand words here. Personally I at least see these better visually.\n\n2) Clean up the things we learned section, good feedback there, both nits and confusion.\n\n3) Possibly include some code examples (though I\u0027m sure we\u0027re going to get a little bike sheddy if we start calling out good/bad code snippets).","accounts_in_message":[],"_revision_number":3},{"id":"1c9a468c190090a92eaaff8ab1b541e459574bb0","author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"date":"2015-02-17 21:10:14.000000000","message":"Patch Set 3: Code-Review+1\n\n(1 comment)\n\nOne note about ironic inline, this lgtm overall","accounts_in_message":[],"_revision_number":3},{"id":"3b10d898015c2a3ca62fc305a1585ac40c47e65a","author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"date":"2015-02-17 23:35:44.000000000","message":"Patch Set 3:\n\n(12 comments)","accounts_in_message":[],"_revision_number":3},{"id":"96a7f2a3809644f14e0b4a04d71c3447710c2bdf","author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"date":"2015-02-17 23:43:20.000000000","message":"Patch Set 3:\n\nI really like that we\u0027re having this conversation.  I don\u0027t think we\u0027ll have turned the corner on ever-increasing complexity and its attendant costs (merge friction and implicit contracts being the most obvious) until we stop co-gating entirely, but that is a separate discussion encompassing more than just testing policy.  I would also hope that we can start thinking of OpenStack quality as being more than test-driven, but that is likely out-of-scope as well.","accounts_in_message":[],"_revision_number":3},{"id":"7b1e21527adf070d72ab03a79ad8ceac4c24eead","author":{"_account_id":7063,"name":"Robert Clark","email":"hyakuhei@gmail.com","username":"hyakuhei"},"date":"2015-02-18 14:53:27.000000000","message":"Patch Set 3: Code-Review+1\n\nVery useful content","accounts_in_message":[],"_revision_number":3},{"id":"c8f4f44340a1f1982e107502bb34d02070b51796","author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"date":"2015-02-18 18:01:38.000000000","message":"Patch Set 3: Code-Review-1\n\nI think the current patchset has one glaring omission: there is no mention of mocking.\n\nMost OpenStack projects make heavy use of mocking.  A common and usually legitimate use case is to mock out interaction with external libraries in unit tests to ensure good coverage.  Less useful are tests that use mock to isolate parts of overly complicated method/methods being targeted.  In many projects, mock has become a crutch to avoid ensuring the testability of code, with consequent increases in the kind of coupling and complexity that both reduce reliability and increase the cost of maintenance.  Given that the culture of many OpenStack projects seems to have accepted this state of affairs, I think it would really help if this document were to make clear the costs and benefits associated with mocking to encourage its use to be more considered.\n\n\nReference: http://nedbatchelder.com/blog/201206/tldw_stop_mocking_start_testing.html","accounts_in_message":[],"_revision_number":3},{"id":"377134c0228544b343df43e2623ebe7f6441cdac","author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"date":"2015-02-19 16:37:36.000000000","message":"Patch Set 3:\n\nMaru: that gets a big +1 from me. Linked article is very good, btw.","accounts_in_message":[],"_revision_number":3},{"id":"65ffaddb898237bffafdeade6eed5307e4a1d7e2","author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"date":"2015-02-28 16:21:37.000000000","message":"Patch Set 3: Code-Review-1\n\n(11 comments)","accounts_in_message":[],"_revision_number":3},{"id":"e5efdc98238c7dbc9410ba948ed6e7f61f86cd88","author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"date":"2015-03-02 17:45:46.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"49355fb7bd0db0546e05a50f949e99c92d028591","author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"date":"2015-03-20 14:40:27.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"35a403de6fe83ebe9dc47efdc79b24db9990c850","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2015-06-09 13:19:58.000000000","message":"Abandoned\n\nWith the number of hard to reconcile points of view here, I think doing this as a cross project spec is probably beyond the scope of work I\u0027m going to get to in any reasonable period of time. Abandoning, and anyone else that is interested in navigating this forward is welcome to.","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"4e6bb1d1eea68735d33db2b75a8fecf5d2719150","revisions":{"e438df731495405d8bf12bfc1ffbc484a2611242":{"kind":"REWORK","_number":1,"created":"2015-01-28 02:13:51.000000000","uploader":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"ref":"refs/changes/53/150653/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-specs","ref":"refs/changes/53/150653/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/1"}}},"commit":{"parents":[{"commit":"c3be753672f4f697fab901302c51a368ff2b737f","subject":"Merge \"Log Guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/c3be753672f4f697fab901302c51a368ff2b737f"}]}],"author":{"name":"Sean Dague","email":"sean@dague.net","date":"2015-01-28 02:11:22.000000000","tz":-480},"committer":{"name":"Sean Dague","email":"sean@dague.net","date":"2015-01-28 02:11:22.000000000","tz":-480},"subject":"First draft testing guidelines","message":"First draft testing guidelines\n\nA complete brain dump of testing theory, guidelines, and partial plan\nto move forward in disagregating the tests for a more stable\nOpenStack.\n\nI am sure this is rough in wording, as my english skills are currently\nexhausted for the day, however it is hopefully a reasonable stab to\nget this ball rolling.\n\nChange-Id: I7a3663a93e9ea0c9adfb443221c2025edb331644\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/e438df731495405d8bf12bfc1ffbc484a2611242"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/e438df731495405d8bf12bfc1ffbc484a2611242"}]},"branch":"refs/heads/master"},"ace6083ff8ee67b6f5ec19035148134b65dda6a7":{"kind":"REWORK","_number":2,"created":"2015-02-09 13:54:19.000000000","uploader":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"ref":"refs/changes/53/150653/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-specs","ref":"refs/changes/53/150653/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/2"}}},"commit":{"parents":[{"commit":"c3be753672f4f697fab901302c51a368ff2b737f","subject":"Merge \"Log Guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/c3be753672f4f697fab901302c51a368ff2b737f"}]}],"author":{"name":"Sean Dague","email":"sean@dague.net","date":"2015-01-28 02:11:22.000000000","tz":-480},"committer":{"name":"Sean Dague","email":"sean@dague.net","date":"2015-02-09 13:53:13.000000000","tz":-300},"subject":"Testing guidelines","message":"Testing guidelines\n\nA guide to the history of testing in OpenStack, things we\u0027ve learned,\nand philosophy moving forward to provide a more stable OpenStack\nexperience for all users of all projects.\n\nChange-Id: I7a3663a93e9ea0c9adfb443221c2025edb331644\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/ace6083ff8ee67b6f5ec19035148134b65dda6a7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/ace6083ff8ee67b6f5ec19035148134b65dda6a7"}]},"branch":"refs/heads/master"},"4e6bb1d1eea68735d33db2b75a8fecf5d2719150":{"kind":"REWORK","_number":3,"created":"2015-02-09 14:37:37.000000000","uploader":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"ref":"refs/changes/53/150653/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/openstack-specs","ref":"refs/changes/53/150653/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/openstack-specs refs/changes/53/150653/3"}}},"commit":{"parents":[{"commit":"c3be753672f4f697fab901302c51a368ff2b737f","subject":"Merge \"Log Guidelines\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/c3be753672f4f697fab901302c51a368ff2b737f"}]}],"author":{"name":"Sean Dague","email":"sean@dague.net","date":"2015-01-28 02:11:22.000000000","tz":-480},"committer":{"name":"Sean Dague","email":"sean@dague.net","date":"2015-02-09 14:37:28.000000000","tz":-300},"subject":"Testing guidelines","message":"Testing guidelines\n\nA guide to the history of testing in OpenStack, things we\u0027ve learned,\nand philosophy moving forward to provide a more stable OpenStack\nexperience for all users of all projects.\n\nChange-Id: I7a3663a93e9ea0c9adfb443221c2025edb331644\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/4e6bb1d1eea68735d33db2b75a8fecf5d2719150"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/openstack-specs/commit/4e6bb1d1eea68735d33db2b75a8fecf5d2719150"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
