)]}'
{"AUTHORS":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"3b5b899274a68a2f29b82ce5a4beb785ba931b02","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Yee (mail.zhang.yee@gmail.com)"},{"line_number":172,"context_line":"Guang Yee (guang.yee@hp.com)"},{"line_number":173,"context_line":"Pete Zaitcev (zaitcev@kotori.zaitcev.us)"},{"line_number":174,"context_line":"niu-zglinux (Niu.ZGlinux@gmail.com)"},{"line_number":175,"context_line":"Jian Zhang (jian.zhang@intel.com)"},{"line_number":176,"context_line":"Ning Zhang (ning@zmanda.com)"},{"line_number":177,"context_line":"Yuan Zhou (yuan.zhou@intel.com)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"1abeadc6_01311b5a","side":"PARENT","line":174,"updated":"2014-08-19 04:54:00.000000000","message":"removed since this was a leftover from a .mailmap entry that merges it with another existing person","commit_id":"75a329c7f54fc3b06e11dea1b395d5e552ce0230"}],"CHANGELOG":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"ea9f6343307fc10b4eab5e5e2d224d0f73366162","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    * Enable object system metadata on PUTs (Note: POST support is ongoing)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    * Various other minor bug fixes and improvements"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"swift (2.0.0)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    * Storage policies"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"1abeadc6_72be84af","line":55,"updated":"2014-08-22 12:58:11.000000000","message":"https://review.openstack.org/#/c/115167/ just got merged - I think this a very useful patch adding much more flexibility managing larger clusters. Not sure how to describe this shortly for the Changelog","commit_id":"c11bc95ab4aa47ce8723bb3bb491e0987fa15066"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"2d7078307890d2183eb385e1746b17ce66800688","unresolved":false,"context_lines":[{"line_number":2,"context_line":""},{"line_number":3,"context_line":"    * swift-ring-builder placement was improved to allow gradual addition"},{"line_number":4,"context_line":"      of new regions without causing a massive migration of data to the new"},{"line_number":5,"context_line":"      region. The change was to prefer device weight first, then looking at"},{"line_number":6,"context_line":"      failure domains."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    * Logging updates"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_b828ec33","line":5,"updated":"2014-08-22 21:53:31.000000000","message":"nit: *look at","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":14,"context_line":"      - Container Auditor now logs a warning if the devices path contains a"},{"line_number":15,"context_line":"        non-directory."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"      - Object daemons now send a user-agent string with their full name"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    * 412 and 416 responses are no longer tracked as errors in the StatsD"},{"line_number":20,"context_line":"      messages from the backend servers."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_d87928c9","line":17,"updated":"2014-08-22 22:25:34.000000000","message":"missing period","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    * 412 and 416 responses are no longer tracked as errors in the StatsD"},{"line_number":20,"context_line":"      messages from the backend servers."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    * Parallel object auditor"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"      The object auditor can now be configured with a \"concurrency\" config"},{"line_number":25,"context_line":"      value that allows multiple auditor processes to run at once. Using"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_387bfcbe","line":22,"updated":"2014-08-22 22:25:34.000000000","message":"auditor is lowercase here but upper case a few lines above (Container Auditor). In general I think Container Auditor seems to be the aberration; I\u0027m seeing more lower case daemon names than uppers.","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    * Parallel object auditor"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"      The object auditor can now be configured with a \"concurrency\" config"},{"line_number":25,"context_line":"      value that allows multiple auditor processes to run at once. Using"},{"line_number":26,"context_line":"      multiple parallel auditor processes can speed up the overall auditor"},{"line_number":27,"context_line":"      cycle time."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_38521c35","line":24,"updated":"2014-08-22 22:25:34.000000000","message":"is this only for object auditor? the rest of this paragraph uses \"auditor\" loosely.\n\nAlso, \"configured with... config value\" is a bit repetitive; maybe \"provided with a \"concurrency\" configuration value\"?","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":30,"context_line":"      in a new greenthread."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    * tempurl updates"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"      - The default allowed methods have changed to also allow POST and"},{"line_number":35,"context_line":"        DELETE. The new default list is \"GET HEAD PUT POST DELETE\"."},{"line_number":36,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_18056013","line":33,"updated":"2014-08-22 22:25:34.000000000","message":"Should tempurl be caps? or even TempURL? From quick googling it looks like the preferred spelling might indeed be TempURL.","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      - Added filename*\u003d support to tempurl Content-Disposition response"},{"line_number":41,"context_line":"        header."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    * X-Delete-At/After can now be used with the FormPost middleware"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    * Make swift-form-signature output a sample form"},{"line_number":46,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_9ba40a09","line":43,"updated":"2014-08-22 22:25:34.000000000","message":"need trailing periods on these three points (or remove them from all; whichever you prefer.)","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    * Add v2 API to list endpoints middleware"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"      The new API adds better support for storage policies and changes the"},{"line_number":50,"context_line":"      response from a list of backend urls to a dictionary with a key"},{"line_number":51,"context_line":"      \"endpoints\" that\u0027s a list of of the backend urls and a new key headers"},{"line_number":52,"context_line":"      that\u0027s a dictionary of headers to send along with the backend request."}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_bb59c636","line":49,"updated":"2014-08-22 22:25:34.000000000","message":"i think (but am not 100%) that you want a comma before this and.","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    * Add v2 API to list endpoints middleware"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"      The new API adds better support for storage policies and changes the"},{"line_number":50,"context_line":"      response from a list of backend urls to a dictionary with a key"},{"line_number":51,"context_line":"      \"endpoints\" that\u0027s a list of of the backend urls and a new key headers"},{"line_number":52,"context_line":"      that\u0027s a dictionary of headers to send along with the backend request."},{"line_number":53,"context_line":"      In the v2 response format for object requests, there the headers key"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_fb37bee0","line":50,"updated":"2014-08-22 22:25:34.000000000","message":"i generally don\u0027t even really agree with this, but in the spirit of pedantry i must point out that URL is probably supposed to be capitalized.","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"      The new API adds better support for storage policies and changes the"},{"line_number":50,"context_line":"      response from a list of backend urls to a dictionary with a key"},{"line_number":51,"context_line":"      \"endpoints\" that\u0027s a list of of the backend urls and a new key headers"},{"line_number":52,"context_line":"      that\u0027s a dictionary of headers to send along with the backend request."},{"line_number":53,"context_line":"      In the v2 response format for object requests, there the headers key"},{"line_number":54,"context_line":"      includes \"X-Backend-Storage-Policy-Index\" which indicates the storage"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_3b2e968c","line":51,"updated":"2014-08-22 22:25:34.000000000","message":"\"of of\" doubled up. \"new key headers\" doesn\u0027t make sense to me, am i just reading it wrong? is it -- new key \"headers\" -- as in that\u0027s the name of the key? This whole sentence just feels very hard to parse, for me at least.","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":50,"context_line":"      response from a list of backend urls to a dictionary with a key"},{"line_number":51,"context_line":"      \"endpoints\" that\u0027s a list of of the backend urls and a new key headers"},{"line_number":52,"context_line":"      that\u0027s a dictionary of headers to send along with the backend request."},{"line_number":53,"context_line":"      In the v2 response format for object requests, there the headers key"},{"line_number":54,"context_line":"      includes \"X-Backend-Storage-Policy-Index\" which indicates the storage"},{"line_number":55,"context_line":"      policy index for the endpoints returned in the response."},{"line_number":56,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_fb65fee0","line":53,"updated":"2014-08-22 22:25:34.000000000","message":"i don\u0027t think \"there\" belongs in this sentence","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"},{"author":{"_account_id":12620,"name":"Alexander Corwin","email":"ancorwin@gmail.com","username":"acorwin"},"change_message_id":"c17ce5096633f4da44d2a09997603cd522ca9a13","unresolved":false,"context_lines":[{"line_number":54,"context_line":"      includes \"X-Backend-Storage-Policy-Index\" which indicates the storage"},{"line_number":55,"context_line":"      policy index for the endpoints returned in the response."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    * Added allow_account_management and account_autocreate values to /info"},{"line_number":58,"context_line":"      responses"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    * Enable object system metadata on PUTs (Note: POST support is ongoing)"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1abeadc6_7ba1eef6","line":57,"updated":"2014-08-22 22:25:34.000000000","message":"need ending periods on these last three points.","commit_id":"bba2641a1cd94c339db725ee6c04d7520ba6da37"}]}
