)]}'
{"doc/source/configuration/index.rst":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e13e48fa5540310b8167c3d6bfd388ef3fc6b478","unresolved":false,"context_lines":[{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"oslo.policy uses oslo.config to define and manage configuration options"},{"line_number":6,"context_line":"that allow the deployer to control where the policy files are located,"},{"line_number":7,"context_line":"the default rule to apply with, etc."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":".. show-options:: oslo.policy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_23c72415","line":6,"updated":"2020-11-01 13:17:10.000000000","message":"Either \"to\" or \"that\" is probably OK here.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e13e48fa5540310b8167c3d6bfd388ef3fc6b478","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"oslo.policy uses oslo.config to define and manage configuration options"},{"line_number":6,"context_line":"that allow the deployer to control where the policy files are located,"},{"line_number":7,"context_line":"the default rule to apply with, etc."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":".. show-options:: oslo.policy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_03cca833","line":7,"updated":"2020-11-01 13:17:10.000000000","message":"I agree the older version of this line didn\u0027t make sense, but I\u0027m not sure the change quite does either. I think removing the \"with\" entirely will make its meaning clear.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"}],"doc/source/user/usage.rst":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"109e59c9ec9404ea094dbfe9f399477bc1d35b3c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        foo \u003d foo.common.policy:get_enforcer"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The ``oslo.policy`` library uses the project namespace to call ``list_rules``,"},{"line_number":42,"context_line":"which should return a list of ``oslo.policy`` objects, instances of either"},{"line_number":43,"context_line":"``RuleDefault`` or ``DocumentedRuleDefault``."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The second entry point allows ``oslo.policy`` to generate complete policy from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_bccf0556","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":74},"updated":"2020-10-28 10:36:41.000000000","message":"The previous sentence LGTM but I\u0027m not a native speaker...","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":32519,"name":"Qi Zhang","email":"qizhangapp@gmail.com","username":"qizhangapp"},"change_message_id":"dfbf25d9980113711c6303b17a9165f3476980bf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        foo \u003d foo.common.policy:get_enforcer"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The ``oslo.policy`` library uses the project namespace to call ``list_rules``,"},{"line_number":42,"context_line":"which should return a list of ``oslo.policy`` objects, instances of either"},{"line_number":43,"context_line":"``RuleDefault`` or ``DocumentedRuleDefault``."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The second entry point allows ``oslo.policy`` to generate complete policy from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_c6f4a7d2","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":74},"in_reply_to":"1f621f24_bccf0556","updated":"2020-10-28 21:46:11.000000000","message":"The reason for the change is that we should use \"either\" with a singular noun. We use \"either of\" with a plural noun. We could rewrite to \"either of instances of\" but I feel it\u0027s not as simple.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"0acf8d6e073f2468cde00d54452f153781601764","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        foo \u003d foo.common.policy:get_enforcer"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The ``oslo.policy`` library uses the project namespace to call ``list_rules``,"},{"line_number":42,"context_line":"which should return a list of ``oslo.policy`` objects, instances of either"},{"line_number":43,"context_line":"``RuleDefault`` or ``DocumentedRuleDefault``."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The second entry point allows ``oslo.policy`` to generate complete policy from"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_6aa8d61e","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":74},"in_reply_to":"1f621f24_c6f4a7d2","updated":"2020-10-30 19:05:46.000000000","message":"(native US English speaker)\n\nI think both old and new are fine here, but the new one is a bit more clear.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"109e59c9ec9404ea094dbfe9f399477bc1d35b3c","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  providing better documentation."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"* A sample policy file can be generated based on the registered policies"},{"line_number":132,"context_line":"  rather than needing to be manually maintained."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* A policy file can be generated which is a merge of registered defaults and"},{"line_number":135,"context_line":"  policies loaded from a file. This shows the effective policy in use."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_fcf21d9a","line":132,"range":{"start_line":132,"start_character":2,"end_line":132,"end_character":48},"updated":"2020-10-28 10:36:41.000000000","message":"the previous sentence LGTM too","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"0acf8d6e073f2468cde00d54452f153781601764","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  providing better documentation."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"* A sample policy file can be generated based on the registered policies"},{"line_number":132,"context_line":"  rather than needing to be manually maintained."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* A policy file can be generated which is a merge of registered defaults and"},{"line_number":135,"context_line":"  policies loaded from a file. This shows the effective policy in use."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_aa678e25","line":132,"range":{"start_line":132,"start_character":2,"end_line":132,"end_character":48},"in_reply_to":"1f621f24_a60d2b92","updated":"2020-10-30 19:05:46.000000000","message":"Same comment here, both old and new were good enough, but the new is a small improvement.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":32519,"name":"Qi Zhang","email":"qizhangapp@gmail.com","username":"qizhangapp"},"change_message_id":"dfbf25d9980113711c6303b17a9165f3476980bf","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  providing better documentation."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"* A sample policy file can be generated based on the registered policies"},{"line_number":132,"context_line":"  rather than needing to be manually maintained."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* A policy file can be generated which is a merge of registered defaults and"},{"line_number":135,"context_line":"  policies loaded from a file. This shows the effective policy in use."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_a60d2b92","line":132,"range":{"start_line":132,"start_character":2,"end_line":132,"end_character":48},"in_reply_to":"1f621f24_fcf21d9a","updated":"2020-10-28 21:46:11.000000000","message":"The reason for the change is that the subject \"A sample policy file\" needs to \"be maintained\". It cannot maintain itself, so, we need a passive voice here. It\u0027s consistent with the \"be generated\" passive voice.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e13e48fa5540310b8167c3d6bfd388ef3fc6b478","unresolved":false,"context_lines":[{"line_number":174,"context_line":"The `DocumentedRuleDefault` class inherits from the `RuleDefault`"},{"line_number":175,"context_line":"implementation, but it must be supplied with the `description` attribute in"},{"line_number":176,"context_line":"order to be used. In addition, the `DocumentedRuleDefault` class requires new"},{"line_number":177,"context_line":"`operations` attributes that are a list of dictionaries. Each dictionary must"},{"line_number":178,"context_line":"have a `path` and a `method` key. The `path` should map to the path used to"},{"line_number":179,"context_line":"interact with the resource the policy protects. The `method` should be the HTTP"},{"line_number":180,"context_line":"verb corresponding to the `path`. The list of `operations` can be supplied with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_63d11cce","line":177,"updated":"2020-11-01 13:17:10.000000000","message":"Is \"operations\" the name of one attribute of the class? If so, even though the word \"operations\" is plural, it represents one thing that is a container of other things, and I would say\n\n  requires a new `operations` attribute that is a list of dictionaries.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"e13e48fa5540310b8167c3d6bfd388ef3fc6b478","unresolved":false,"context_lines":[{"line_number":269,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Now that you know what services types, resources, attributes, and actions are"},{"line_number":272,"context_line":"within the context of policy names, let\u0027s establish the order you should use"},{"line_number":273,"context_line":"them. Policy names should increase in detail as you read it. This results in"},{"line_number":274,"context_line":"the following syntax::"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_c3e1109d","line":272,"updated":"2020-11-01 13:17:10.000000000","message":"\"let\u0027s\" is a contraction of \"let us\" and is less informal than I would expect to see in documentation and possibly harder for non-native speakers to interpret. Changing it to \"we can\" is still fairly informal, but clearer. Using \"it is possible to\" would be a bit more formal.","commit_id":"05fa3f112ba8398cc9b1b121243e16c088b060a1"}]}
