)]}'
{"kolla/common/config.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"07302e6d6a0f5555cb589621ff5e6f951d4791e1","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"def gen_all_source_opts():"},{"line_number":646,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":647,"context_line":"    for name, params in yaml.load(open(sources, \u0027r\u0027),"},{"line_number":648,"context_line":"                                  Loader\u003dyaml.SafeLoader).items():"},{"line_number":649,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":650,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027, TARBALLS_BASE)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_0e07f3cb","line":647,"range":{"start_line":647,"start_character":29,"end_line":647,"end_character":33},"updated":"2019-11-07 18:00:13.000000000","message":"nit: safe_load?","commit_id":"75ea684cf1d8b78b9ff6c3ec8808bc2e4ae4c5f1"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"a49da2c08f57adf53629f40958d178b9a68f2363","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"def gen_all_source_opts():"},{"line_number":646,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":647,"context_line":"    for name, params in yaml.load(open(sources, \u0027r\u0027),"},{"line_number":648,"context_line":"                                  Loader\u003dyaml.SafeLoader).items():"},{"line_number":649,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":650,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027, TARBALLS_BASE)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_a3958d34","line":647,"range":{"start_line":647,"start_character":29,"end_line":647,"end_character":33},"in_reply_to":"3fa7e38b_0e07f3cb","updated":"2019-11-08 11:03:36.000000000","message":"Done","commit_id":"75ea684cf1d8b78b9ff6c3ec8808bc2e4ae4c5f1"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"22a006b992c38b9f3408a72c3f14a04db8eff065","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"def gen_all_source_opts():"},{"line_number":646,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":647,"context_line":"    for name, params in yaml.load(open(sources, \u0027r\u0027),"},{"line_number":648,"context_line":"                                  Loader\u003dyaml.SafeLoader).items():"},{"line_number":649,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":650,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027, TARBALLS_BASE)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_2e18af1c","line":647,"range":{"start_line":647,"start_character":29,"end_line":647,"end_character":33},"in_reply_to":"3fa7e38b_0e07f3cb","updated":"2019-11-07 18:03:34.000000000","message":"SafeLoader used, will check safe_load()","commit_id":"75ea684cf1d8b78b9ff6c3ec8808bc2e4ae4c5f1"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"07302e6d6a0f5555cb589621ff5e6f951d4791e1","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    for name, params in yaml.load(open(sources, \u0027r\u0027),"},{"line_number":648,"context_line":"                                  Loader\u003dyaml.SafeLoader).items():"},{"line_number":649,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":650,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027, TARBALLS_BASE)"},{"line_number":651,"context_line":"        reference \u003d params.get(\u0027reference\u0027)"},{"line_number":652,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ee0137b7","line":650,"range":{"start_line":650,"start_character":63,"end_line":650,"end_character":76},"updated":"2019-11-07 18:00:13.000000000","message":"This prevents you from setting tarballs_base in kolla-build.conf to override for all.","commit_id":"75ea684cf1d8b78b9ff6c3ec8808bc2e4ae4c5f1"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"a49da2c08f57adf53629f40958d178b9a68f2363","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    for name, params in yaml.load(open(sources, \u0027r\u0027),"},{"line_number":648,"context_line":"                                  Loader\u003dyaml.SafeLoader).items():"},{"line_number":649,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":650,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027, TARBALLS_BASE)"},{"line_number":651,"context_line":"        reference \u003d params.get(\u0027reference\u0027)"},{"line_number":652,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_c39a0961","line":650,"range":{"start_line":650,"start_character":63,"end_line":650,"end_character":76},"in_reply_to":"3fa7e38b_ee0137b7","updated":"2019-11-08 11:03:36.000000000","message":"Done","commit_id":"75ea684cf1d8b78b9ff6c3ec8808bc2e4ae4c5f1"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"22a006b992c38b9f3408a72c3f14a04db8eff065","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    for name, params in yaml.load(open(sources, \u0027r\u0027),"},{"line_number":648,"context_line":"                                  Loader\u003dyaml.SafeLoader).items():"},{"line_number":649,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":650,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027, TARBALLS_BASE)"},{"line_number":651,"context_line":"        reference \u003d params.get(\u0027reference\u0027)"},{"line_number":652,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_4e15ebe4","line":650,"range":{"start_line":650,"start_character":63,"end_line":650,"end_character":76},"in_reply_to":"3fa7e38b_ee0137b7","updated":"2019-11-07 18:03:34.000000000","message":"noted, will fix tomorrow.","commit_id":"75ea684cf1d8b78b9ff6c3ec8808bc2e4ae4c5f1"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"d91bd2812331a99ce17ab5ba3348a8e22ef4afac","unresolved":false,"context_lines":[{"line_number":653,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"def list_opts():"},{"line_number":657,"context_line":"    return itertools.chain([(None, _CLI_OPTS),"},{"line_number":658,"context_line":"                            (None, _BASE_OPTS),"},{"line_number":659,"context_line":"                            (\u0027profiles\u0027, _PROFILE_OPTS)],"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_0874c035","line":656,"range":{"start_line":656,"start_character":0,"end_line":656,"end_character":16},"updated":"2019-11-08 09:28:08.000000000","message":"I do wonder when and how it is called.\n\nThe only place is in setup.cfg (via kolla.opts.list_opts() call).","commit_id":"dd0e3ad19db52a3f13e77de7c6151d767b6698fc"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"60e592700d6dc353d81227a1ab5d4b31e6cb7226","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"def gen_all_source_opts(conf):"},{"line_number":646,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":647,"context_line":"    for name, params in yaml.safe_load(open(sources, \u0027r\u0027)).items():"},{"line_number":648,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":649,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027,"},{"line_number":650,"context_line":"                                              conf.tarballs_base)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_de2ade2d","line":647,"range":{"start_line":647,"start_character":39,"end_line":647,"end_character":57},"updated":"2019-11-08 12:44:26.000000000","message":"may never fully close","commit_id":"c625493819f9a0b633f75823f60a77da7015d5f2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f43b61150569cbba00b8bdf2c003ec436b0af838","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"def gen_all_source_opts(conf):"},{"line_number":646,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":647,"context_line":"    for name, params in yaml.safe_load(open(sources, \u0027r\u0027)).items():"},{"line_number":648,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":649,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027,"},{"line_number":650,"context_line":"                                              conf.tarballs_base)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_5eccae89","line":647,"range":{"start_line":647,"start_character":39,"end_line":647,"end_character":57},"in_reply_to":"3fa7e38b_de2ade2d","updated":"2019-11-08 12:45:43.000000000","message":"+1, was going to mention","commit_id":"c625493819f9a0b633f75823f60a77da7015d5f2"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"be21b33c4aa6d0ada0616f5b06d6436db2f498b5","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":"def gen_all_source_opts(conf):"},{"line_number":646,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":647,"context_line":"    for name, params in yaml.safe_load(open(sources, \u0027r\u0027)).items():"},{"line_number":648,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":649,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027,"},{"line_number":650,"context_line":"                                              conf.tarballs_base)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_7e1e4a75","line":647,"range":{"start_line":647,"start_character":39,"end_line":647,"end_character":57},"in_reply_to":"3fa7e38b_de2ade2d","updated":"2019-11-08 13:48:08.000000000","message":"Done","commit_id":"c625493819f9a0b633f75823f60a77da7015d5f2"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"60e592700d6dc353d81227a1ab5d4b31e6cb7226","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    for name, params in yaml.safe_load(open(sources, \u0027r\u0027)).items():"},{"line_number":648,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":649,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027,"},{"line_number":650,"context_line":"                                              conf.tarballs_base)"},{"line_number":651,"context_line":"        reference \u003d params.get(\u0027reference\u0027)"},{"line_number":652,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_be292238","line":650,"updated":"2019-11-08 12:44:26.000000000","message":"I have a strong feeling you should just leave the $... part where it was and config would replace it as it is called with get_source_opts below","commit_id":"c625493819f9a0b633f75823f60a77da7015d5f2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"f43b61150569cbba00b8bdf2c003ec436b0af838","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    for name, params in yaml.safe_load(open(sources, \u0027r\u0027)).items():"},{"line_number":648,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":649,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027,"},{"line_number":650,"context_line":"                                              conf.tarballs_base)"},{"line_number":651,"context_line":"        reference \u003d params.get(\u0027reference\u0027)"},{"line_number":652,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_9eb22606","line":650,"in_reply_to":"3fa7e38b_be292238","updated":"2019-11-08 12:45:43.000000000","message":"+1","commit_id":"c625493819f9a0b633f75823f60a77da7015d5f2"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"be21b33c4aa6d0ada0616f5b06d6436db2f498b5","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    for name, params in yaml.safe_load(open(sources, \u0027r\u0027)).items():"},{"line_number":648,"context_line":"        type_ \u003d params[\u0027type\u0027]"},{"line_number":649,"context_line":"        location \u003d params[\u0027location\u0027].replace(\u0027TARBALLS_BASE\u0027,"},{"line_number":650,"context_line":"                                              conf.tarballs_base)"},{"line_number":651,"context_line":"        reference \u003d params.get(\u0027reference\u0027)"},{"line_number":652,"context_line":"        yield name, get_source_opts(type_, location, reference)"},{"line_number":653,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_1e2b9695","line":650,"in_reply_to":"3fa7e38b_be292238","updated":"2019-11-08 13:48:08.000000000","message":"Done","commit_id":"c625493819f9a0b633f75823f60a77da7015d5f2"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"9a4137c7b73484a8b4eac2ddfd7beb5a73c1ab2d","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"def gen_all_source_opts():"},{"line_number":645,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":646,"context_line":"    with open(sources, \u0027r\u0027) as sources_file:"},{"line_number":647,"context_line":"        for name, params in yaml.safe_load(sources_file).items():"},{"line_number":648,"context_line":"            type_ \u003d params[\u0027type\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_a75f1de3","line":645,"range":{"start_line":645,"start_character":4,"end_line":645,"end_character":75},"updated":"2019-11-23 09:20:48.000000000","message":"just an idea:\nhow about if we put this at /etc/kolla and load it with oslo.config as default or with a cli parameter. This will make the file more configurable without actually touching the source code of the project in $Python_path/kolla","commit_id":"aec1718ce9402c3affd8c95ce9af7dbdbf2c844e"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"2a51dfc77de76a27ce9967fd054bf0a6bcf789d3","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"def gen_all_source_opts():"},{"line_number":645,"context_line":"    sources \u003d os.path.dirname(os.path.realpath(__file__)) + \u0027/sources.yaml\u0027"},{"line_number":646,"context_line":"    with open(sources, \u0027r\u0027) as sources_file:"},{"line_number":647,"context_line":"        for name, params in yaml.safe_load(sources_file).items():"},{"line_number":648,"context_line":"            type_ \u003d params[\u0027type\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_27f80dc2","line":645,"range":{"start_line":645,"start_character":4,"end_line":645,"end_character":75},"in_reply_to":"3fa7e38b_a75f1de3","updated":"2019-11-23 09:28:50.000000000","message":"I do not want to keep files used by kolla outside of it\u0027s git checkout as it breaks my build environments.\n\nBut kollaroot/etc/ sounds good for me. In other patch I have repo.yaml file which would go there as well.","commit_id":"aec1718ce9402c3affd8c95ce9af7dbdbf2c844e"}],"kolla/common/sources.yaml":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ed949db31d3647e06f0fbef5edd3eebb490f066","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"almanach-base:"},{"line_number":3,"context_line":"  location: $tarballs_base/almanach/almanach-4.1.0.tar.gz"},{"line_number":4,"context_line":"  type: url"},{"line_number":5,"context_line":"aodh-base:"},{"line_number":6,"context_line":"  location: $tarballs_base/aodh/aodh-9.0.0.tar.gz"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3fa7e38b_c407651d","line":3,"updated":"2019-11-11 10:14:35.000000000","message":"We should wait for the revert to master before merging this.","commit_id":"5766fdd476390e8bcb3e3d2e181d148065e4acd6"}],"tools/version-check.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ed949db31d3647e06f0fbef5edd3eebb490f066","unresolved":false,"context_lines":[{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS,"},{"line_number":11,"context_line":"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_7716614c","line":11,"updated":"2019-11-11 10:14:35.000000000","message":"Hold up, what\u0027s going on here? All we\u0027re doing is changing the format to YAML. Let\u0027s not confuse it with other changes.","commit_id":"5766fdd476390e8bcb3e3d2e181d148065e4acd6"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"a4c562c959bc648397ff1fc87e82970269a06a59","unresolved":false,"context_lines":[{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"# Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS,"},{"line_number":11,"context_line":"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied."},{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_95d755c1","line":11,"in_reply_to":"3fa7e38b_7716614c","updated":"2019-11-11 15:06:32.000000000","message":"+1","commit_id":"5766fdd476390e8bcb3e3d2e181d148065e4acd6"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ed949db31d3647e06f0fbef5edd3eebb490f066","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    independents_projects \u003d load_all_info(openstack_release\u003d\u0027_independent\u0027)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    sources_file \u003d os.path.join(PROJECT_ROOT, \u0027kolla/common/sources.yaml\u0027)"},{"line_number":132,"context_line":"    config_sources \u003d yaml.safe_load(open(sources_file))"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    for key in sorted(config_sources):"},{"line_number":135,"context_line":"        independent_project \u003d False"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_d71e355e","line":132,"range":{"start_line":132,"start_character":36,"end_line":132,"end_character":40},"updated":"2019-11-11 10:14:35.000000000","message":"with open()","commit_id":"5766fdd476390e8bcb3e3d2e181d148065e4acd6"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f9ef15cd37a3c3d6fba81be624228841326adfb2","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            raise ValueError(\u0027Can not parse \"%s\"\u0027 % filename)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        # NOTE(hrw) requirements-stable-train.tar.gz went to \u0027else\u0027 block"},{"line_number":150,"context_line":"        if project_name.startswith(\"requirements\"):"},{"line_number":151,"context_line":"            # Use the stable branch for requirements."},{"line_number":152,"context_line":"            if project_name.endswith(\u0027-stable\u0027):"},{"line_number":153,"context_line":"                latest_tag \u003d \"{}\".format(conf.openstack_release)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_94d43eeb","line":150,"updated":"2019-11-10 18:50:48.000000000","message":"what about master here?","commit_id":"5766fdd476390e8bcb3e3d2e181d148065e4acd6"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"6ed949db31d3647e06f0fbef5edd3eebb490f066","unresolved":false,"context_lines":[{"line_number":174,"context_line":"                continue"},{"line_number":175,"context_line":"            LOG.info(\u0027Update %s from %s to %s\u0027, project_name, old_tag,"},{"line_number":176,"context_line":"                     latest_tag)"},{"line_number":177,"context_line":"            config_sources[key][\u0027location\u0027] \u003d location.replace(old_tag,"},{"line_number":178,"context_line":"                                                               latest_tag)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    if not conf.check:"},{"line_number":181,"context_line":"        with open(os.path.join(PROJECT_ROOT, \u0027kolla/common/sources.yaml\u0027),"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_9738bdd4","line":178,"range":{"start_line":177,"start_character":0,"end_line":178,"end_character":74},"updated":"2019-11-11 10:14:35.000000000","message":"This should be the main part that needs to change IIUC, other than reading/writing the file.","commit_id":"5766fdd476390e8bcb3e3d2e181d148065e4acd6"},{"author":{"_account_id":19316,"name":"Eduardo Gonzalez","email":"dabarren@gmail.com","username":"egonzalez90"},"change_message_id":"9a4137c7b73484a8b4eac2ddfd7beb5a73c1ab2d","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        with open(os.path.join(PROJECT_ROOT, \u0027kolla/common/sources.yaml\u0027),"},{"line_number":182,"context_line":"                  \u0027w\u0027) as f:"},{"line_number":183,"context_line":"            f.write(\u0027---\\n\u0027)"},{"line_number":184,"context_line":"            f.write(yaml.dump(config_sources))"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_274a4d26","line":184,"range":{"start_line":184,"start_character":25,"end_line":184,"end_character":29},"updated":"2019-11-23 09:20:48.000000000","message":"safe_dump better?","commit_id":"aec1718ce9402c3affd8c95ce9af7dbdbf2c844e"}]}
