)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"294e679efc18b035ba82d78c98ab7f05627af46d","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     James E. Blair \u003cjim@acmegating.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-04-13 10:36:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add suuport for Ansible 5"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds support for Ansible 5.  As mentioned in the reno, only"},{"line_number":10,"context_line":"the major version is specified; that corresponds to major.minor in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"326e48fa_c13ec7e0","line":7,"updated":"2022-04-13 18:47:09.000000000","message":"nit: support :)","commit_id":"27fee266a8f78ff6f66ca91a8f0f63c2910c17aa"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"1c228c0e678f5d5b59a5d0d8606e341275e49e60","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     James E. Blair \u003cjim@acmegating.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-04-13 10:36:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add suuport for Ansible 5"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds support for Ansible 5.  As mentioned in the reno, only"},{"line_number":10,"context_line":"the major version is specified; that corresponds to major.minor in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"8dfcf4a2_4ac48c36","line":7,"in_reply_to":"326e48fa_c13ec7e0","updated":"2022-04-20 16:33:17.000000000","message":"Done","commit_id":"27fee266a8f78ff6f66ca91a8f0f63c2910c17aa"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"19f480ffa84c50098863e826bf2ec77bfba1835d","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The command module is updated to be based on the current code in"},{"line_number":14,"context_line":"ansible core 2.12.4 (corresponding to community 5.6.0).  The previous"},{"line_number":15,"context_line":"version is un-symlinked and copied to the 2.8 and 2.8 directories"},{"line_number":16,"context_line":"for easy deletion as they age out."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The new command module has corrected a code path we used to test"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"4c11dd93_dad55449","line":15,"updated":"2022-04-27 12:47:30.000000000","message":"nit: 2.8 and 2.9","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1c00e427_7b53030f","updated":"2022-04-26 21:45:29.000000000","message":"This looks good. I do have some thoughts about making the new command.py easier to diff in the future. I\u0027m fine with addressing that here or in a followup or possibly not at all if others have good reasons for not making the suggested changes.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"}],"playbooks/zuul-stream/fixtures/test-stream-failure.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"      - name: Loop with items on an ansible python exception"},{"line_number":14,"context_line":"        zuul_fail:"},{"line_number":15,"context_line":"          key: fail-loop"},{"line_number":16,"context_line":"        with_items:"},{"line_number":17,"context_line":"          - item1"},{"line_number":18,"context_line":"          - item2"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"fef704b0_49ddaaeb","line":15,"updated":"2022-04-26 21:45:29.000000000","message":"Nit should we pass {{ item }} as part of key? Something like:\n\n  key: \"fail-loop-{{ item }}\"\n\nThen we can be sure that each iteration through failed.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ea47cc8f52f4df1bcf11f73e6a4ed45e92672fae","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"      - name: Loop with items on an ansible python exception"},{"line_number":14,"context_line":"        zuul_fail:"},{"line_number":15,"context_line":"          key: fail-loop"},{"line_number":16,"context_line":"        with_items:"},{"line_number":17,"context_line":"          - item1"},{"line_number":18,"context_line":"          - item2"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"52e6941d_5f9fae7e","line":15,"updated":"2022-04-26 22:01:24.000000000","message":"That seems reasonable, but I agree, probably not worth a respin.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"}],"zuul/ansible/2.9/library/command.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright: (c) 2012, Michael DeHaan \u003cmichael.dehaan@gmail.com\u003e, and others"}],"source_content_type":"text/x-python","patch_set":11,"id":"90471064_39ee9632","line":1,"updated":"2022-04-26 21:45:29.000000000","message":"I don\u0027t know why Gerrit marks this file as \"rewritten\" I copied the old file aside locally and diffed it against this file and the 2.8 file and both diffs are empty. All that to say the files seem to match what the commit message says they have done.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"}],"zuul/ansible/5/library/command.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"../../base/library/command.py"}],"source_content_type":"x-git/symlink","patch_set":11,"id":"b9f206e8_9280a1e9","line":1,"updated":"2022-04-26 21:45:29.000000000","message":"Considering we\u0027re keeping copies of this file now for ease of removal when old versions of ansible go away should we go ahead and just make this the actual content rather than a symlink?","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ea47cc8f52f4df1bcf11f73e6a4ed45e92672fae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"../../base/library/command.py"}],"source_content_type":"x-git/symlink","patch_set":11,"id":"81a22648_9faf3dbb","line":1,"updated":"2022-04-26 22:01:24.000000000","message":"Maybe -- maybe let\u0027s do that if it starts to change more than it has historically?","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ca1f250d308d095cbae00a5761c3e940367a32c3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"../../base/library/command.py"}],"source_content_type":"x-git/symlink","patch_set":11,"id":"5a721ad1_6e67dd89","line":1,"in_reply_to":"81a22648_9faf3dbb","updated":"2022-04-26 22:26:24.000000000","message":"Works for me.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"}],"zuul/ansible/base/library/command.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ea47cc8f52f4df1bcf11f73e6a4ed45e92672fae","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright: (c) 2012, Michael DeHaan \u003cmichael.dehaan@gmail.com\u003e, and others"},{"line_number":5,"context_line":"# Copyright: (c) 2016, Toshio Kuratomi \u003ctkuratomi@ansible.com\u003e"},{"line_number":6,"context_line":"# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"from __future__ import absolute_import, division, print_function"},{"line_number":9,"context_line":"__metaclass__ \u003d type"}],"source_content_type":"text/x-python","patch_set":11,"id":"49badc0b_ebcfc24f","line":6,"updated":"2022-04-26 22:01:24.000000000","message":"++","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright: (c) 2012, Michael DeHaan \u003cmichael.dehaan@gmail.com\u003e, and others"},{"line_number":5,"context_line":"# Copyright: (c) 2016, Toshio Kuratomi \u003ctkuratomi@ansible.com\u003e"},{"line_number":6,"context_line":"# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"from __future__ import absolute_import, division, print_function"},{"line_number":9,"context_line":"__metaclass__ \u003d type"}],"source_content_type":"text/x-python","patch_set":11,"id":"0ffb86d6_325934b1","line":6,"updated":"2022-04-26 21:45:29.000000000","message":"I\u0027m looking for the source of this file to run a diff between the zuul copy and upstream and not finding it easily particularly now that ansible has split itself in a bunch of pieces. Might be a good idea to link to it here?\n\nhttps://github.com/ansible/ansible/blob/v2.12.5/lib/ansible/modules/command.py appears to be the source.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"19f480ffa84c50098863e826bf2ec77bfba1835d","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"# Copyright: (c) 2012, Michael DeHaan \u003cmichael.dehaan@gmail.com\u003e, and others"},{"line_number":5,"context_line":"# Copyright: (c) 2016, Toshio Kuratomi \u003ctkuratomi@ansible.com\u003e"},{"line_number":6,"context_line":"# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"from __future__ import absolute_import, division, print_function"},{"line_number":9,"context_line":"__metaclass__ \u003d type"}],"source_content_type":"text/x-python","patch_set":11,"id":"a8d4b432_d3766e8c","line":6,"in_reply_to":"49badc0b_ebcfc24f","updated":"2022-04-27 12:47:30.000000000","message":"Yeah I think this makes sense. Do you want to respin or add this in a followup?","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ea47cc8f52f4df1bcf11f73e6a4ed45e92672fae","unresolved":false,"context_lines":[{"line_number":303,"context_line":"            console.addLine(\u0027[Zuul] No trailing newline\\n\u0027)"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"# Taken from ansible/module_utils/basic.py ... forking the method for now"},{"line_number":307,"context_line":"# so that we can dive in and figure out how to make appropriate hook points"},{"line_number":308,"context_line":"def zuul_run_command(self, args, zuul_log_id, check_rc\u003dFalse, close_fds\u003dTrue, executable\u003dNone, data\u003dNone, binary_data\u003dFalse, path_prefix\u003dNone, cwd\u003dNone,"},{"line_number":309,"context_line":"                use_unsafe_shell\u003dFalse, prompt_regex\u003dNone, environ_update\u003dNone, umask\u003dNone, encoding\u003d\u0027utf-8\u0027, errors\u003d\u0027surrogate_or_strict\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"45fa9a21_53761d27","line":306,"updated":"2022-04-26 22:01:24.000000000","message":"++","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":303,"context_line":"            console.addLine(\u0027[Zuul] No trailing newline\\n\u0027)"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"# Taken from ansible/module_utils/basic.py ... forking the method for now"},{"line_number":307,"context_line":"# so that we can dive in and figure out how to make appropriate hook points"},{"line_number":308,"context_line":"def zuul_run_command(self, args, zuul_log_id, check_rc\u003dFalse, close_fds\u003dTrue, executable\u003dNone, data\u003dNone, binary_data\u003dFalse, path_prefix\u003dNone, cwd\u003dNone,"},{"line_number":309,"context_line":"                use_unsafe_shell\u003dFalse, prompt_regex\u003dNone, environ_update\u003dNone, umask\u003dNone, encoding\u003d\u0027utf-8\u0027, errors\u003d\u0027surrogate_or_strict\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"21fef896_df88a18e","line":306,"updated":"2022-04-26 21:45:29.000000000","message":"https://github.com/ansible/ansible/blob/v2.12.5/lib/ansible/module_utils/basic.py#L1846-L2104 appears to be the source for this function.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":488,"context_line":"        if self._debug:"},{"line_number":489,"context_line":"            self.log(\u0027Executing: \u0027 + self._clean_args(args))"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        # ZUUL: Replaced the execution loop with the zuul_runner run function"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        cmd \u003d subprocess.Popen(args, **kwargs)"},{"line_number":494,"context_line":"        if before_communicate_callback:"}],"source_content_type":"text/x-python","patch_set":11,"id":"195f61a3_67890853","line":491,"range":{"start_line":491,"start_character":65,"end_line":491,"end_character":68},"updated":"2022-04-26 21:45:29.000000000","message":"Nit we\u0027ve replaced it with the follow function and the thread management below. If we want to make this a bit more clear doing so in a followup is fine as this was how the old code described it too.\n\nAnother thought for the code that is replaced here it might make diffing clearer to keep the upstream code but comment it out? We do that in opendev to make diffing between upstream gitea content a bit easier. It looks like the old code did that and I personally find it helpful when doing these diffs and reviews.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ea47cc8f52f4df1bcf11f73e6a4ed45e92672fae","unresolved":false,"context_lines":[{"line_number":488,"context_line":"        if self._debug:"},{"line_number":489,"context_line":"            self.log(\u0027Executing: \u0027 + self._clean_args(args))"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        # ZUUL: Replaced the execution loop with the zuul_runner run function"},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"        cmd \u003d subprocess.Popen(args, **kwargs)"},{"line_number":494,"context_line":"        if before_communicate_callback:"}],"source_content_type":"text/x-python","patch_set":11,"id":"fca1afe1_c6db832c","line":491,"updated":"2022-04-26 22:01:24.000000000","message":"That\u0027s fair.  I\u0027ll try to keep that in mind next time.  I did find it easier to apply the result of the diff between the two ansible versions without the commented code.  That\u0027s probably why I removed it.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"ea47cc8f52f4df1bcf11f73e6a4ed45e92672fae","unresolved":false,"context_lines":[{"line_number":719,"context_line":"        # this is partial check_mode support, since we end up skipping if we get here"},{"line_number":720,"context_line":"        r[\u0027rc\u0027] \u003d 0"},{"line_number":721,"context_line":"        r[\u0027msg\u0027] \u003d \"Command would have run if not in check mode\""},{"line_number":722,"context_line":"        r[\u0027skipped\u0027] \u003d True"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    r[\u0027changed\u0027] \u003d True"},{"line_number":725,"context_line":"    r[\u0027zuul_log_id\u0027] \u003d zuul_log_id"}],"source_content_type":"text/x-python","patch_set":11,"id":"7564c5f0_43f7ad58","line":722,"updated":"2022-04-26 22:01:24.000000000","message":"Seems like we could probably keep this as-is, then do another reconciliation with the next point release.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"00473799bc0a4cd0f5f28db21ebc4a45ab49812c","unresolved":true,"context_lines":[{"line_number":719,"context_line":"        # this is partial check_mode support, since we end up skipping if we get here"},{"line_number":720,"context_line":"        r[\u0027rc\u0027] \u003d 0"},{"line_number":721,"context_line":"        r[\u0027msg\u0027] \u003d \"Command would have run if not in check mode\""},{"line_number":722,"context_line":"        r[\u0027skipped\u0027] \u003d True"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"    r[\u0027changed\u0027] \u003d True"},{"line_number":725,"context_line":"    r[\u0027zuul_log_id\u0027] \u003d zuul_log_id"}],"source_content_type":"text/x-python","patch_set":11,"id":"c231450c_817d17de","line":722,"range":{"start_line":722,"start_character":8,"end_line":722,"end_character":27},"updated":"2022-04-26 21:45:29.000000000","message":"The upstream code guards this line with this conditional:\n\n  if creates is None and removes is None:\n    r[\u0027skipped\u0027] \u003d True\n\nMight be good to reduce the delta? Also possible I\u0027m looking at a slightly newer version of the upstream file than what was adapted. If that is the case a followon change to reduce the delta seems fine to me.","commit_id":"ebf5c96d577ee769e825760f5a0b88623b26f510"}]}
