)]}'
{"doc/documentation.php":[{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"95afa470093f0d6a13cfa49cee771da4c832c8a7","unresolved":false,"context_lines":[{"line_number":84,"context_line":" * ObjectStorage service without using any fancy API at all. Use the"},{"line_number":85,"context_line":" * normal file methods like this:"},{"line_number":86,"context_line":" *"},{"line_number":87,"context_line":" *- fopen()/fclose()"},{"line_number":88,"context_line":" *- fread()/fwrite()"},{"line_number":89,"context_line":" *- file_get_contents(), stream_get_contents()"},{"line_number":90,"context_line":" *- stat()/fstat()"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7bo%3D","line":87,"updated":"2014-04-25 08:39:42.000000000","message":"Could we rename the \"doc\" directory to \"docs\"? The majority of software projects use this convention.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"7188c6d48ee895181db7b8048ccccc7049f188e3","unresolved":false,"context_lines":[{"line_number":84,"context_line":" * ObjectStorage service without using any fancy API at all. Use the"},{"line_number":85,"context_line":" * normal file methods like this:"},{"line_number":86,"context_line":" *"},{"line_number":87,"context_line":" *- fopen()/fclose()"},{"line_number":88,"context_line":" *- fread()/fwrite()"},{"line_number":89,"context_line":" *- file_get_contents(), stream_get_contents()"},{"line_number":90,"context_line":" *- stat()/fstat()"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1OA%3D","line":87,"in_reply_to":"AAAAXX%2F%2F5jA%3D","updated":"2014-04-28 09:08:47.000000000","message":"Sure, I understand. I\u0027m happy to wait for Shaunak\u0027s patch covering this.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":84,"context_line":" * ObjectStorage service without using any fancy API at all. Use the"},{"line_number":85,"context_line":" * normal file methods like this:"},{"line_number":86,"context_line":" *"},{"line_number":87,"context_line":" *- fopen()/fclose()"},{"line_number":88,"context_line":" *- fread()/fwrite()"},{"line_number":89,"context_line":" *- file_get_contents(), stream_get_contents()"},{"line_number":90,"context_line":" *- stat()/fstat()"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F5jA%3D","line":87,"in_reply_to":"AAAAXX%2F%2F7bo%3D","updated":"2014-04-25 21:23:00.000000000","message":"OpenStack uses the name \"doc\" in the projects and the source of the docs is in the \"source\" directory. Any changes to this structure I\u0027d prefer to see done as part of https://blueprints.launchpad.net/openstack-sdk-php/+spec/sphinx-docs where Shaunak is investigating how to handle this.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"}],"doc/oo-tutorial-code.php":[{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"use \\OpenStack\\Autoloader;"},{"line_number":5,"context_line":"use \\OpenStack\\Identity\\v2\\IdentityService;"},{"line_number":6,"context_line":"use \\OpenStack\\ObjectStore\\v1\\ObjectStorage;"},{"line_number":7,"context_line":"use \\OpenStack\\ObjectStore\\v1\\ObjectStorage\\Object;"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Autoloader::useAutoloader();"}],"source_content_type":"text/x-php","patch_set":3,"id":"dacfb570_21e9ee1a","line":6,"updated":"2014-04-29 00:23:08.000000000","message":"Perhaps this belongs in a separate review but should the ObjectStorage class be renamed to ObjectStoreService to be consistent with IdentityService?","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"use \\OpenStack\\Autoloader;"},{"line_number":5,"context_line":"use \\OpenStack\\Identity\\v2\\IdentityService;"},{"line_number":6,"context_line":"use \\OpenStack\\ObjectStore\\v1\\ObjectStorage;"},{"line_number":7,"context_line":"use \\OpenStack\\ObjectStore\\v1\\ObjectStorage\\Object;"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Autoloader::useAutoloader();"}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_185b6b55","line":6,"in_reply_to":"dacfb570_21e9ee1a","updated":"2014-04-29 15:42:33.000000000","message":"This change is scoped to multiple api version support. Other changes should be in different requests. I expect each of the services will get a bit of clean-up and change. We still need to discuss that.","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"622478b184db30ceca912a6265f90e1f9de319fb","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"use \\OpenStack\\Autoloader;"},{"line_number":5,"context_line":"use \\OpenStack\\Identity\\v2\\IdentityService;"},{"line_number":6,"context_line":"use \\OpenStack\\ObjectStore\\v1\\ObjectStorage;"},{"line_number":7,"context_line":"use \\OpenStack\\ObjectStore\\v1\\ObjectStorage\\Object;"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Autoloader::useAutoloader();"}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_9572eee3","line":6,"in_reply_to":"dacfb570_21e9ee1a","updated":"2014-04-29 08:52:00.000000000","message":"Yeah, in a separate patch - it\u0027s a big job and not strictly within the remit of this patch.","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"}],"doc/oo-tutorial.md":[{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"### IdentityService in a Nutshell"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Instances of `OpenStack\\Identity\\v1\\IdentityService` are responsible for:"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"- Authentication"},{"line_number":223,"context_line":"- Accessing the service catalog"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"dacfb570_a14a5e25","line":220,"updated":"2014-04-29 00:23:08.000000000","message":"Should this say v2 instead of v1 since there is no src/OpenStack/Identity/v1/IdentityService.php AFAICT.","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"### IdentityService in a Nutshell"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Instances of `OpenStack\\Identity\\v1\\IdentityService` are responsible for:"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"- Authentication"},{"line_number":223,"context_line":"- Accessing the service catalog"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"bad4c104_b8127f60","line":220,"in_reply_to":"dacfb570_a14a5e25","updated":"2014-04-29 15:42:33.000000000","message":"Great catch. Thanks for paying attention.","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"}],"src/OpenStack/Bootstrap.php":[{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"95afa470093f0d6a13cfa49cee771da4c832c8a7","unresolved":false,"context_lines":[{"line_number":20,"context_line":" * It also automatically register the OpenStack stream wrappers."},{"line_number":21,"context_line":" */"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"namespace OpenStack;"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"use OpenStack\\Identity\\v2\\IdentityService;"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7bA%3D","line":23,"updated":"2014-04-25 08:39:42.000000000","message":"Could we perhaps move this file to the `OpenStack\\Common` namespace? It is a common file after all, and I don\u0027t like to see stray files in a root namespace (just my opinion)","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"7188c6d48ee895181db7b8048ccccc7049f188e3","unresolved":false,"context_lines":[{"line_number":20,"context_line":" * It also automatically register the OpenStack stream wrappers."},{"line_number":21,"context_line":" */"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"namespace OpenStack;"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"use OpenStack\\Identity\\v2\\IdentityService;"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1VE%3D","line":23,"in_reply_to":"AAAAXX%2F%2F5do%3D","updated":"2014-04-28 09:08:47.000000000","message":"Okay, I\u0027m willing to wait for a separate patch dealing with how a \"bootstrap\" or \"service discovery\" feature will work. Until that point it makes sense to leave this file here (since its current functionality is, as you say, an entry point).\n\nI\u0027m not sure whether a global scope or context is best - we definitely need to think about it. An alternative is use ephemeral factory classes in charge of service creation. Context variables can be injected into each service class without a global context.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":20,"context_line":" * It also automatically register the OpenStack stream wrappers."},{"line_number":21,"context_line":" */"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"namespace OpenStack;"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"use OpenStack\\Identity\\v2\\IdentityService;"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F5do%3D","line":23,"in_reply_to":"AAAAXX%2F%2F7bA%3D","updated":"2014-04-25 21:23:00.000000000","message":"My current thinking was that Bootstrap.php will transform into the OpenStack base class as part of the blueprint https://blueprints.launchpad.net/openstack-sdk-php/+spec/remove-openstack-singleton. When someone enters the codebase this is the top level item they are most likely going to work with which will include elements like service discovery.\n\nFrom a developer experience standpoint of those who will consume this SDK, having a top level class that get\u0027s folks going makes it easier to get into use the code. I reached out to some others to get their opinion and they like that idea rather than putting it in the Common namespace.\n\nNote, I\u0027ll move the autoloader into the common namespace until which time as we transition to something else.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"fbc478eb6b78d2097bedac2dc00853b2a9a91283","unresolved":false,"context_lines":[{"line_number":144,"context_line":"     * Common configuration directives:"},{"line_number":145,"context_line":"     *"},{"line_number":146,"context_line":"     * - \u0027transport\u0027: The namespaced classname for the transport that"},{"line_number":147,"context_line":"     *   should be used. Example: @code \\OpenStack\\Common\\Transport\\GuzzleClient"},{"line_number":148,"context_line":"     * - \u0027transport.debug\u0027: The integer 1 for enabling debug, 0 for"},{"line_number":149,"context_line":"     *   disabling. Enabling will turn on verbose debugging output"},{"line_number":150,"context_line":"     *   for any transport that supports it."}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F9aI%3D","line":147,"updated":"2014-04-25 08:20:39.000000000","message":"We have a stray @code here that needs to be removed.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":144,"context_line":"     * Common configuration directives:"},{"line_number":145,"context_line":"     *"},{"line_number":146,"context_line":"     * - \u0027transport\u0027: The namespaced classname for the transport that"},{"line_number":147,"context_line":"     *   should be used. Example: @code \\OpenStack\\Common\\Transport\\GuzzleClient"},{"line_number":148,"context_line":"     * - \u0027transport.debug\u0027: The integer 1 for enabling debug, 0 for"},{"line_number":149,"context_line":"     *   disabling. Enabling will turn on verbose debugging output"},{"line_number":150,"context_line":"     *   for any transport that supports it."}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F5ak%3D","line":147,"in_reply_to":"AAAAXX%2F%2F9aI%3D","updated":"2014-04-25 21:23:00.000000000","message":"Done","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"}],"src/OpenStack/Common/Transport/AuthorizationException.php":[{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"95afa470093f0d6a13cfa49cee771da4c832c8a7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * The authorization exception."},{"line_number":19,"context_line":" */"},{"line_number":20,"context_line":"namespace OpenStack\\Common\\Transport;"},{"line_number":21,"context_line":"/**"},{"line_number":22,"context_line":" * Thrown when an access constraint is not met."},{"line_number":23,"context_line":" *"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7Zw%3D","line":20,"updated":"2014-04-25 08:39:42.000000000","message":"Could we move all Common exceptions to a separate namespace like:\n\nOpenStack\\Common\\Exception;\n\nI don\u0027t think we should mingle exception classes and normal functional source files. Most other PHP project have this separation.\n\nSo Common would have an Exception directory, as would each of the service directories.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"7188c6d48ee895181db7b8048ccccc7049f188e3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * The authorization exception."},{"line_number":19,"context_line":" */"},{"line_number":20,"context_line":"namespace OpenStack\\Common\\Transport;"},{"line_number":21,"context_line":"/**"},{"line_number":22,"context_line":" * Thrown when an access constraint is not met."},{"line_number":23,"context_line":" *"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2Fv8M%3D","line":20,"in_reply_to":"AAAAXX%2F%2F1pg%3D","updated":"2014-04-28 09:08:47.000000000","message":"Sounds good","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * The authorization exception."},{"line_number":19,"context_line":" */"},{"line_number":20,"context_line":"namespace OpenStack\\Common\\Transport;"},{"line_number":21,"context_line":"/**"},{"line_number":22,"context_line":" * Thrown when an access constraint is not met."},{"line_number":23,"context_line":" *"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1pg%3D","line":20,"in_reply_to":"AAAAXX%2F%2F7Zw%3D","updated":"2014-04-25 21:23:00.000000000","message":"The transport exceptions are not common exceptions. They should only be used in the context of the transport layer. Putting them in a Common\\Exception namespace would give a different idea.\n\nThere is a difference between catching and debugging a transport exception and a different type of exception.\n\nThat being said, reading through the transport namespace can be a bit of a pain. I\u0027ll move the transport exceptions to Common\\Transport\\Exception.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"}],"src/OpenStack/Identity/v2/IdentityService.php":[{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    /**"},{"line_number":615,"context_line":"     * @see \\OpenStack\\Identity\\v2\\IdentityService::rescopeUsingTenantId()"},{"line_number":616,"context_line":"     * @deprecated"},{"line_number":617,"context_line":"     */"},{"line_number":618,"context_line":"    public function rescope($tenantId)"},{"line_number":619,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":3,"id":"dacfb570_81147af6","line":616,"updated":"2014-04-29 00:23:08.000000000","message":"Perhaps this belongs in a separate review but should we be simply removing @deprecated methods since this is a new SDK and all?","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    /**"},{"line_number":615,"context_line":"     * @see \\OpenStack\\Identity\\v2\\IdentityService::rescopeUsingTenantId()"},{"line_number":616,"context_line":"     * @deprecated"},{"line_number":617,"context_line":"     */"},{"line_number":618,"context_line":"    public function rescope($tenantId)"},{"line_number":619,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_7b2631bc","line":616,"in_reply_to":"dacfb570_81147af6","updated":"2014-04-29 15:42:33.000000000","message":"Good idea. I added https://blueprints.launchpad.net/openstack-sdk-php/+spec/remove-deprecated to do just that.","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"622478b184db30ceca912a6265f90e1f9de319fb","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    /**"},{"line_number":615,"context_line":"     * @see \\OpenStack\\Identity\\v2\\IdentityService::rescopeUsingTenantId()"},{"line_number":616,"context_line":"     * @deprecated"},{"line_number":617,"context_line":"     */"},{"line_number":618,"context_line":"    public function rescope($tenantId)"},{"line_number":619,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_354a0284","line":616,"in_reply_to":"dacfb570_81147af6","updated":"2014-04-29 08:52:00.000000000","message":"I agree. We should put this work in a separate patch though.","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"}],"src/OpenStack/ObjectStore/v1/ObjectStorage.php":[{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"95afa470093f0d6a13cfa49cee771da4c832c8a7","unresolved":false,"context_lines":[{"line_number":59,"context_line":" * @todo ObjectStorage is not yet constrained to a particular version"},{"line_number":60,"context_line":" * of the API. It attempts to use whatever version is passed in to the"},{"line_number":61,"context_line":" * URL. This is different than IdentityServices, which used a fixed version."},{"line_number":62,"context_line":" */"},{"line_number":63,"context_line":"class ObjectStorage"},{"line_number":64,"context_line":"{"},{"line_number":65,"context_line":"    /**"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7XE%3D","line":62,"updated":"2014-04-25 08:39:42.000000000","message":"Could we rename this to ObjectStorageService to be consistent with Identity?","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":59,"context_line":" * @todo ObjectStorage is not yet constrained to a particular version"},{"line_number":60,"context_line":" * of the API. It attempts to use whatever version is passed in to the"},{"line_number":61,"context_line":" * URL. This is different than IdentityServices, which used a fixed version."},{"line_number":62,"context_line":" */"},{"line_number":63,"context_line":"class ObjectStorage"},{"line_number":64,"context_line":"{"},{"line_number":65,"context_line":"    /**"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1pE%3D","line":62,"in_reply_to":"AAAAXX%2F%2F5%2F0%3D","updated":"2014-04-25 21:23:00.000000000","message":"Before making any changes to the actual service I was going to wait until we know how we\u0027ll make the code more reusable (e.g., json schema). This was definitely on my mind when doing the refactor.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"17c9b5158a7262c4f6ea0a9a24f05281624ba50b","unresolved":false,"context_lines":[{"line_number":59,"context_line":" * @todo ObjectStorage is not yet constrained to a particular version"},{"line_number":60,"context_line":" * of the API. It attempts to use whatever version is passed in to the"},{"line_number":61,"context_line":" * URL. This is different than IdentityServices, which used a fixed version."},{"line_number":62,"context_line":" */"},{"line_number":63,"context_line":"class ObjectStorage"},{"line_number":64,"context_line":"{"},{"line_number":65,"context_line":"    /**"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F5%2F0%3D","line":62,"in_reply_to":"AAAAXX%2F%2F7XE%3D","updated":"2014-04-25 11:53:49.000000000","message":"Actually, scrap this idea. Changing this class name is a big task and will require a separate patch. This is fine for now.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":47,"context_line":" * perform this type of authentication."},{"line_number":48,"context_line":" *"},{"line_number":49,"context_line":" * Newer versions use the IdentityServices authentication mechanism (@see"},{"line_number":50,"context_line":" * \\OpenStack\\Identity\\v2\\IdentityServices). That method is the preferred"},{"line_number":51,"context_line":" * method."},{"line_number":52,"context_line":" *"},{"line_number":53,"context_line":" * Common Tasks"}],"source_content_type":"text/x-php","patch_set":3,"id":"dacfb570_212c8e4a","line":50,"updated":"2014-04-29 00:23:08.000000000","message":"Should this (and the previous) line say IdentityService (singular) instead of IdentityServices (plural)?","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":47,"context_line":" * perform this type of authentication."},{"line_number":48,"context_line":" *"},{"line_number":49,"context_line":" * Newer versions use the IdentityServices authentication mechanism (@see"},{"line_number":50,"context_line":" * \\OpenStack\\Identity\\v2\\IdentityServices). That method is the preferred"},{"line_number":51,"context_line":" * method."},{"line_number":52,"context_line":" *"},{"line_number":53,"context_line":" * Common Tasks"}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_fb67a1e8","line":50,"in_reply_to":"dacfb570_212c8e4a","updated":"2014-04-29 15:42:33.000000000","message":"Done","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":91,"context_line":"     * Create a new instance after getting an authenitcation token."},{"line_number":92,"context_line":"     *"},{"line_number":93,"context_line":"     * THIS METHOD IS DEPRECATED. OpenStack now uses Keyston to authenticate."},{"line_number":94,"context_line":"     * You should use \\OpenStack\\Identity\\v2\\IdentityServices to authenticate."},{"line_number":95,"context_line":"     * Then use this class\u0027s constructor to create an object."},{"line_number":96,"context_line":"     *"},{"line_number":97,"context_line":"     * This uses the legacy Swift authentication facility to authenticate"}],"source_content_type":"text/x-php","patch_set":3,"id":"dacfb570_6126966a","line":94,"updated":"2014-04-29 00:23:08.000000000","message":"Should this line say IdentityService (singular) instead of IdentityServices (plural)?","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"     * Create a new instance after getting an authenitcation token."},{"line_number":92,"context_line":"     *"},{"line_number":93,"context_line":"     * THIS METHOD IS DEPRECATED. OpenStack now uses Keyston to authenticate."},{"line_number":94,"context_line":"     * You should use \\OpenStack\\Identity\\v2\\IdentityServices to authenticate."},{"line_number":95,"context_line":"     * Then use this class\u0027s constructor to create an object."},{"line_number":96,"context_line":"     *"},{"line_number":97,"context_line":"     * This uses the legacy Swift authentication facility to authenticate"}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_1b6525e1","line":94,"in_reply_to":"dacfb570_6126966a","updated":"2014-04-29 15:42:33.000000000","message":"Done","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":153,"context_line":"     * This constructs a new ObjectStorage from an authenticated instance"},{"line_number":154,"context_line":"     * of an \\OpenStack\\Identity\\v2\\IdentityServices object."},{"line_number":155,"context_line":"     *"},{"line_number":156,"context_line":"     * @param \\OpenStack\\Identity\\v2\\IdentityServices $identity An identity services object that already"},{"line_number":157,"context_line":"     *                                                          has a valid token and a service catalog."},{"line_number":158,"context_line":"     *"},{"line_number":159,"context_line":"     * @return \\OpenStack\\ObjectStore\\v1\\ObjectStorage A new ObjectStorage instance."}],"source_content_type":"text/x-php","patch_set":3,"id":"dacfb570_812b9a2f","line":156,"updated":"2014-04-29 00:23:08.000000000","message":"Should this (and the previous) line say IdentityService (singular) instead of IdentityServices (plural)?","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"     * This constructs a new ObjectStorage from an authenticated instance"},{"line_number":154,"context_line":"     * of an \\OpenStack\\Identity\\v2\\IdentityServices object."},{"line_number":155,"context_line":"     *"},{"line_number":156,"context_line":"     * @param \\OpenStack\\Identity\\v2\\IdentityServices $identity An identity services object that already"},{"line_number":157,"context_line":"     *                                                          has a valid token and a service catalog."},{"line_number":158,"context_line":"     *"},{"line_number":159,"context_line":"     * @return \\OpenStack\\ObjectStore\\v1\\ObjectStorage A new ObjectStorage instance."}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_bb6ef9c7","line":156,"in_reply_to":"dacfb570_812b9a2f","updated":"2014-04-29 15:42:33.000000000","message":"Done","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"}],"src/OpenStack/ObjectStore/v1/Resource/ACL.php":[{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"fbc478eb6b78d2097bedac2dc00853b2a9a91283","unresolved":false,"context_lines":[{"line_number":159,"context_line":"     * with no permissions as a private object."},{"line_number":160,"context_line":"     *"},{"line_number":161,"context_line":"     * @return \\OpenStack\\ObjectStore\\v1\\Resource\\ACL an ACL object with the"},{"line_number":162,"context_line":"     *                                                     appopriate permissions set."},{"line_number":163,"context_line":"     */"},{"line_number":164,"context_line":"    public static function makeNonPublic()"},{"line_number":165,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7xc%3D","line":162,"updated":"2014-04-25 08:20:39.000000000","message":"It looks like the indentation got moved too far to the right.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"     * with no permissions as a private object."},{"line_number":160,"context_line":"     *"},{"line_number":161,"context_line":"     * @return \\OpenStack\\ObjectStore\\v1\\Resource\\ACL an ACL object with the"},{"line_number":162,"context_line":"     *                                                     appopriate permissions set."},{"line_number":163,"context_line":"     */"},{"line_number":164,"context_line":"    public static function makeNonPublic()"},{"line_number":165,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1oQ%3D","line":162,"in_reply_to":"AAAAXX%2F%2F7xc%3D","updated":"2014-04-25 21:23:00.000000000","message":"Done","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"}],"src/OpenStack/ObjectStore/v1/Resource/Container.php":[{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"fbc478eb6b78d2097bedac2dc00853b2a9a91283","unresolved":false,"context_lines":[{"line_number":391,"context_line":"     * seems to be preferred."},{"line_number":392,"context_line":"     *"},{"line_number":393,"context_line":"     * @return \\OpenStack\\ObjectStore\\v1\\Resource\\Container $this so the method can"},{"line_number":394,"context_line":"     *                                                    be used in chaining."},{"line_number":395,"context_line":"     */"},{"line_number":396,"context_line":"    public function setMetadata($metadata)"},{"line_number":397,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7vc%3D","line":394,"updated":"2014-04-25 08:20:39.000000000","message":"Indentation seems to have moved to the left.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":391,"context_line":"     * seems to be preferred."},{"line_number":392,"context_line":"     *"},{"line_number":393,"context_line":"     * @return \\OpenStack\\ObjectStore\\v1\\Resource\\Container $this so the method can"},{"line_number":394,"context_line":"     *                                                    be used in chaining."},{"line_number":395,"context_line":"     */"},{"line_number":396,"context_line":"    public function setMetadata($metadata)"},{"line_number":397,"context_line":"    {"}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1n0%3D","line":394,"in_reply_to":"AAAAXX%2F%2F7vc%3D","updated":"2014-04-25 21:23:00.000000000","message":"Done","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":9700,"name":"Sam Choi","email":"sam.choi@hp.com","username":"samuelchoi"},"change_message_id":"fbc478eb6b78d2097bedac2dc00853b2a9a91283","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        // created with Container::createContainer(). We treat"},{"line_number":930,"context_line":"        // this as an error condition."},{"line_number":931,"context_line":"        if (empty($this-\u003eurl) || empty($this-\u003etoken)) {"},{"line_number":932,"context_line":"            throw new \\OpenStack\\Common\\Exception(\u0027Remote data cannot be fetched. Tokena and endpoint URL are required.\u0027);"},{"line_number":933,"context_line":"        }"},{"line_number":934,"context_line":"        // Do a GET on $url to fetch headers."},{"line_number":935,"context_line":"        $headers \u003d array("}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7r0%3D","line":932,"updated":"2014-04-25 08:20:39.000000000","message":"I\u0027m guessing the second sentence should read \u0027A token and endpoint URL are required.\u0027","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":929,"context_line":"        // created with Container::createContainer(). We treat"},{"line_number":930,"context_line":"        // this as an error condition."},{"line_number":931,"context_line":"        if (empty($this-\u003eurl) || empty($this-\u003etoken)) {"},{"line_number":932,"context_line":"            throw new \\OpenStack\\Common\\Exception(\u0027Remote data cannot be fetched. Tokena and endpoint URL are required.\u0027);"},{"line_number":933,"context_line":"        }"},{"line_number":934,"context_line":"        // Do a GET on $url to fetch headers."},{"line_number":935,"context_line":"        $headers \u003d array("}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1oE%3D","line":932,"in_reply_to":"AAAAXX%2F%2F7r0%3D","updated":"2014-04-25 21:23:00.000000000","message":"Done","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"}],"test/AuthTest.php":[{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"95afa470093f0d6a13cfa49cee771da4c832c8a7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    See the License for the specific language governing permissions and"},{"line_number":15,"context_line":"    limitations under the License."},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d */"},{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * This is a simple command-line test for authentication."},{"line_number":19,"context_line":" *"},{"line_number":20,"context_line":" * You can run the test with `php test/AuthTest.php username key`."}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F7WE%3D","line":17,"updated":"2014-04-25 08:39:42.000000000","message":"Could we rename the \"test\" directory to \"tests\"? That seems to be the convention with most software projects.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"7188c6d48ee895181db7b8048ccccc7049f188e3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    See the License for the specific language governing permissions and"},{"line_number":15,"context_line":"    limitations under the License."},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d */"},{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * This is a simple command-line test for authentication."},{"line_number":19,"context_line":" *"},{"line_number":20,"context_line":" * You can run the test with `php test/AuthTest.php username key`."}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2Fv7k%3D","line":17,"in_reply_to":"AAAAXX%2F%2F1ms%3D","updated":"2014-04-28 09:08:47.000000000","message":"Although there might be a convention with Python projects to use singular throughout, almost 100% of PHP projects use \"tests\". We have to remember we\u0027re targeting this at PHP devs who are used to a way of doing things - I think it\u0027s best to stay with their expectations.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"28fb489cbac66dd378e7dd2868dcf3e80ca2012e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    See the License for the specific language governing permissions and"},{"line_number":15,"context_line":"    limitations under the License."},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d */"},{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * This is a simple command-line test for authentication."},{"line_number":19,"context_line":" *"},{"line_number":20,"context_line":" * You can run the test with `php test/AuthTest.php username key`."}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2F1ms%3D","line":17,"in_reply_to":"AAAAXX%2F%2F7WE%3D","updated":"2014-04-25 21:23:00.000000000","message":"Before I push up the next patch set I\u0027ll dig into this further and look at the conventions used.\n\nNames like doc (openstack convention) and src are singular. I\u0027m curious about conventions used and consistency in the codebase. I\u0027ll do more research.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"4818e78a4e60818d3f108a64384414056a3fcf2c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    See the License for the specific language governing permissions and"},{"line_number":15,"context_line":"    limitations under the License."},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d */"},{"line_number":17,"context_line":"/**"},{"line_number":18,"context_line":" * This is a simple command-line test for authentication."},{"line_number":19,"context_line":" *"},{"line_number":20,"context_line":" * You can run the test with `php test/AuthTest.php username key`."}],"source_content_type":"text/x-php","patch_set":1,"id":"AAAAXX%2F%2FsyU%3D","line":17,"in_reply_to":"AAAAXX%2F%2Fv7k%3D","updated":"2014-04-28 15:51:24.000000000","message":"I did a little digging to see what the observed pattern is in practice. Around 80% of projects are using tests compared to about 20% using test. It seems both are in use but the more common one is tests.\n\nIt\u0027s interesting that doc was more popular than docs. This was even the case for when tests was use. There was an inconsistent use of the plural or singular form.","commit_id":"7f16bfdde572ad360902b85e0995d617f41808b0"}],"tests/Tests/AutoloaderTest.php":[{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"require_once \u0027src/OpenStack/Autoloader.php\u0027;"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class AutoloaderTest extends \\OpenStack\\Tests\\TestCase"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    /**"},{"line_number":28,"context_line":"     * Test the BaseDir."}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_4087ce61","line":25,"updated":"2014-04-29 00:23:08.000000000","message":"For consistency with other class declarations, consider not using a fully-qualified namespace since the class being extended (TestCase) is in the same namespace (\\OpenStack\\Tests) as the class being declared (AutoloaderTest).","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"require_once \u0027src/OpenStack/Autoloader.php\u0027;"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class AutoloaderTest extends \\OpenStack\\Tests\\TestCase"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    /**"},{"line_number":28,"context_line":"     * Test the BaseDir."}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_3be589a8","line":25,"in_reply_to":"bad4c104_4087ce61","updated":"2014-04-29 15:42:33.000000000","message":"Done","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":10517,"name":"Jamie Hannaford","email":"jamie.hannaford@rackspace.com","username":"jamiehannaford"},"change_message_id":"622478b184db30ceca912a6265f90e1f9de319fb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"require_once \u0027src/OpenStack/Autoloader.php\u0027;"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class AutoloaderTest extends \\OpenStack\\Tests\\TestCase"},{"line_number":26,"context_line":"{"},{"line_number":27,"context_line":"    /**"},{"line_number":28,"context_line":"     * Test the BaseDir."}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_1555fe1c","line":25,"in_reply_to":"bad4c104_4087ce61","updated":"2014-04-29 08:52:00.000000000","message":"I agree -- I deal with this on another patch :)","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"}],"tests/Tests/BootstrapTest.php":[{"author":{"_account_id":10161,"name":"Shaunak Kashyap","email":"shaunak.kashyap@rackspace.com","username":"ycombinator"},"change_message_id":"ba6efd67ac29948573f0e39b4367a52532d11157","unresolved":false,"context_lines":[{"line_number":19,"context_line":" */"},{"line_number":20,"context_line":"namespace OpenStack\\Tests;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class BootstrapTest extends \\OpenStack\\Tests\\TestCase"},{"line_number":23,"context_line":"{"},{"line_number":24,"context_line":"    /**"},{"line_number":25,"context_line":"     * Canary test."}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_8081d64c","line":22,"updated":"2014-04-29 00:23:08.000000000","message":"For consistency with other class declarations, consider not using a fully-qualified namespace since the class being extended (TestCase) is in the same namespace (\\OpenStack\\Tests) as the class being declared (BootstrapTest).","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"},{"author":{"_account_id":8512,"name":"Matt Farina","email":"matt@mattfarina.com","username":"mattfarina"},"change_message_id":"47bb6661bd146a0b9b86588bd7d809c1072bcc1b","unresolved":false,"context_lines":[{"line_number":19,"context_line":" */"},{"line_number":20,"context_line":"namespace OpenStack\\Tests;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class BootstrapTest extends \\OpenStack\\Tests\\TestCase"},{"line_number":23,"context_line":"{"},{"line_number":24,"context_line":"    /**"},{"line_number":25,"context_line":"     * Canary test."}],"source_content_type":"text/x-php","patch_set":3,"id":"bad4c104_7bee318d","line":22,"in_reply_to":"bad4c104_8081d64c","updated":"2014-04-29 15:42:33.000000000","message":"Done","commit_id":"2fce47a7f1671e34eae221ca7a086f8baa45e58f"}]}
