)]}'
{"build-tools/build-docker-images/update-stx-image.sh":[{"author":{"_account_id":28410,"name":"Scott Little","email":"scott.little@windriver.com","username":"slittle1"},"change_message_id":"56735b8630babd79ab52e6d0d8ba9a14a44a87d1","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Options:"},{"line_number":51,"context_line":"    --version:    Image update version"},{"line_number":52,"context_line":"    --file:       Read update directives from a file instead of args (ignores options)"},{"line_number":53,"context_line":"    --from:       Specify image to update"},{"line_number":54,"context_line":"    --wheel:      Specify python wheel file"},{"line_number":55,"context_line":"    --module-src: Specify path to module source to install/update (dir or git repo)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bfb3d3c7_bb068dcd","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":86},"updated":"2019-05-28 21:14:15.000000000","message":"is this true?\n\nLooks like it overrides variables set by prior options, but subsequent options can override those set by --file.","commit_id":"aaf75f1bc86f8f96b3acb5704c5729f274510c1f"},{"author":{"_account_id":28431,"name":"Don Penney","email":"dpenney@redhat.com","username":"dpenney"},"change_message_id":"f427a78ea6e3328e113b8e321d9649d616158115","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Options:"},{"line_number":51,"context_line":"    --version:    Image update version"},{"line_number":52,"context_line":"    --file:       Read update directives from a file instead of args (ignores options)"},{"line_number":53,"context_line":"    --from:       Specify image to update"},{"line_number":54,"context_line":"    --wheel:      Specify python wheel file"},{"line_number":55,"context_line":"    --module-src: Specify path to module source to install/update (dir or git repo)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bfb3d3c7_1bd559e5","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":86},"in_reply_to":"bfb3d3c7_bb068dcd","updated":"2019-05-28 21:16:32.000000000","message":"That was originally how I wrote it, but didn\u0027t update the help text when I changed it to allow the user to add options.","commit_id":"aaf75f1bc86f8f96b3acb5704c5729f274510c1f"},{"author":{"_account_id":28410,"name":"Scott Little","email":"scott.little@windriver.com","username":"slittle1"},"change_message_id":"56735b8630babd79ab52e6d0d8ba9a14a44a87d1","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            shift 2"},{"line_number":205,"context_line":"            ;;"},{"line_number":206,"context_line":"        --file)"},{"line_number":207,"context_line":"            read_params_from_file $2"},{"line_number":208,"context_line":"            shift 2"},{"line_number":209,"context_line":"            ;;"},{"line_number":210,"context_line":"        --from)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bfb3d3c7_9b2aa929","line":207,"range":{"start_line":207,"start_character":0,"end_line":207,"end_character":36},"updated":"2019-05-28 21:14:15.000000000","message":"If you want --file to override command line options, save the file name and run read_params_from_file once you fall out of this loop.","commit_id":"aaf75f1bc86f8f96b3acb5704c5729f274510c1f"},{"author":{"_account_id":28410,"name":"Scott Little","email":"scott.little@windriver.com","username":"slittle1"},"change_message_id":"56735b8630babd79ab52e6d0d8ba9a14a44a87d1","unresolved":false,"context_lines":[{"line_number":295,"context_line":"    UPDATED_IMAGE\u003d\"${FROM}.${IMAGE_UPDATE_VER}\""},{"line_number":296,"context_line":"else"},{"line_number":297,"context_line":"    # Replace the .VER in the original image tag with .IMAGE_UPDATE_VER"},{"line_number":298,"context_line":"    UPDATED_IMAGE\u003d$(echo ${FROM} | sed \"s/\\.[0-9][0-9]*$/\\.${IMAGE_UPDATE_VER}/\")"},{"line_number":299,"context_line":"fi"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"UPDATED_IMAGE_TAG\u003d$(echo \"${UPDATED_IMAGE}\" | sed \u0027s/.*://\u0027)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bfb3d3c7_1ba799a9","line":298,"range":{"start_line":298,"start_character":0,"end_line":298,"end_character":81},"updated":"2019-05-28 21:14:15.000000000","message":"Should there not be a ...\n    ${IMAGE_UPDATE_VER} -gt ${CUR_IMAGE_UPDATE_VER} \ntest?","commit_id":"aaf75f1bc86f8f96b3acb5704c5729f274510c1f"},{"author":{"_account_id":28431,"name":"Don Penney","email":"dpenney@redhat.com","username":"dpenney"},"change_message_id":"f427a78ea6e3328e113b8e321d9649d616158115","unresolved":false,"context_lines":[{"line_number":295,"context_line":"    UPDATED_IMAGE\u003d\"${FROM}.${IMAGE_UPDATE_VER}\""},{"line_number":296,"context_line":"else"},{"line_number":297,"context_line":"    # Replace the .VER in the original image tag with .IMAGE_UPDATE_VER"},{"line_number":298,"context_line":"    UPDATED_IMAGE\u003d$(echo ${FROM} | sed \"s/\\.[0-9][0-9]*$/\\.${IMAGE_UPDATE_VER}/\")"},{"line_number":299,"context_line":"fi"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"UPDATED_IMAGE_TAG\u003d$(echo \"${UPDATED_IMAGE}\" | sed \u0027s/.*://\u0027)"}],"source_content_type":"text/x-sh","patch_set":2,"id":"bfb3d3c7_3bfb7d79","line":298,"range":{"start_line":298,"start_character":0,"end_line":298,"end_character":81},"in_reply_to":"bfb3d3c7_1ba799a9","updated":"2019-05-28 21:16:32.000000000","message":"I don\u0027t think it\u0027s really necessary. If someone wants to build an update with a lower version, so be it.","commit_id":"aaf75f1bc86f8f96b3acb5704c5729f274510c1f"},{"author":{"_account_id":28410,"name":"Scott Little","email":"scott.little@windriver.com","username":"slittle1"},"change_message_id":"adad477b3f451cc199008a29f820396d99874938","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    fi"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"    for module_src in ${MODULE_SRC[@]}; do"},{"line_number":350,"context_line":"        src_location\u003d$(echo \"${module_src}\" | awk -F\u0027|\u0027 \u0027{print $1}\u0027)"},{"line_number":351,"context_line":"        module\u003d$(basename ${src_location} | sed \u0027s/\\.git$//\u0027)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        if [ -d \"${src_location}\" ]; then"},{"line_number":354,"context_line":"            # Module source is a directory, so copy it to the workspace"},{"line_number":355,"context_line":"            cp --recursive --dereference ${src_location} ${MODULES_DIR}"},{"line_number":356,"context_line":"            if [ $? -ne 0 ]; then"},{"line_number":357,"context_line":"                echo \"Failed to copy dir: ${src_location}\" \u003e\u00262"},{"line_number":358,"context_line":"                exit 1"},{"line_number":359,"context_line":"            fi"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"            module_ver\u003d$(echo \"${module_src}\" | awk -F\u0027|\u0027 \u0027{print $2}\u0027)"},{"line_number":362,"context_line":"            hardcode_python_module_version ${MODULES_DIR}/${module} ${module_ver}"},{"line_number":363,"context_line":"        elif [[ ${src_location} \u003d~ ^(http|https|git): ]]; then"},{"line_number":364,"context_line":"            # Module source is a URL, so use git to clone it."},{"line_number":365,"context_line":"            # For a git repo, the module_src is specified as:"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_8c01fcb1","line":362,"range":{"start_line":350,"start_character":0,"end_line":362,"end_character":81},"updated":"2019-05-29 21:17:50.000000000","message":"Looks like you might recursive copy foo.git to ${MODULES_DIR}, but then only pass ${MODULES_DIR}/foo to the function.","commit_id":"d52303ad06c650103bb8b9b5c655280992072715"},{"author":{"_account_id":28431,"name":"Don Penney","email":"dpenney@redhat.com","username":"dpenney"},"change_message_id":"0508e9c645c743255b85c1eaf3fec1da9eff24d9","unresolved":false,"context_lines":[{"line_number":347,"context_line":"    fi"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"    for module_src in ${MODULE_SRC[@]}; do"},{"line_number":350,"context_line":"        src_location\u003d$(echo \"${module_src}\" | awk -F\u0027|\u0027 \u0027{print $1}\u0027)"},{"line_number":351,"context_line":"        module\u003d$(basename ${src_location} | sed \u0027s/\\.git$//\u0027)"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        if [ -d \"${src_location}\" ]; then"},{"line_number":354,"context_line":"            # Module source is a directory, so copy it to the workspace"},{"line_number":355,"context_line":"            cp --recursive --dereference ${src_location} ${MODULES_DIR}"},{"line_number":356,"context_line":"            if [ $? -ne 0 ]; then"},{"line_number":357,"context_line":"                echo \"Failed to copy dir: ${src_location}\" \u003e\u00262"},{"line_number":358,"context_line":"                exit 1"},{"line_number":359,"context_line":"            fi"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"            module_ver\u003d$(echo \"${module_src}\" | awk -F\u0027|\u0027 \u0027{print $2}\u0027)"},{"line_number":362,"context_line":"            hardcode_python_module_version ${MODULES_DIR}/${module} ${module_ver}"},{"line_number":363,"context_line":"        elif [[ ${src_location} \u003d~ ^(http|https|git): ]]; then"},{"line_number":364,"context_line":"            # Module source is a URL, so use git to clone it."},{"line_number":365,"context_line":"            # For a git repo, the module_src is specified as:"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_998cc036","line":362,"range":{"start_line":350,"start_character":0,"end_line":362,"end_character":81},"in_reply_to":"bfb3d3c7_8c01fcb1","updated":"2019-05-31 02:01:56.000000000","message":"True, but someone using this option would never have a .git extension on the directory. I can move this inside the git clone section","commit_id":"d52303ad06c650103bb8b9b5c655280992072715"},{"author":{"_account_id":28410,"name":"Scott Little","email":"scott.little@windriver.com","username":"slittle1"},"change_message_id":"adad477b3f451cc199008a29f820396d99874938","unresolved":false,"context_lines":[{"line_number":387,"context_line":"            if [ -n \"${module_ref}\" ]; then"},{"line_number":388,"context_line":"                pushd ${MODULES_DIR}/${module}"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"                git fetch ${src_location} ${module_ref}"},{"line_number":391,"context_line":"                if [ $? -ne 0 ]; then"},{"line_number":392,"context_line":"                    echo \"Failed to fetch repo branch: ${module} ${module_ref}\" \u003e\u00262"},{"line_number":393,"context_line":"                    exit 1"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_ece4380f","line":390,"range":{"start_line":390,"start_character":0,"end_line":390,"end_character":55},"updated":"2019-05-29 21:17:50.000000000","message":"\u0027with_retries\u0027 probably a good idea for network accesses.","commit_id":"d52303ad06c650103bb8b9b5c655280992072715"},{"author":{"_account_id":28431,"name":"Don Penney","email":"dpenney@redhat.com","username":"dpenney"},"change_message_id":"4e6fc3578c9553adadd7121b1cb6cca00aa41080","unresolved":false,"context_lines":[{"line_number":387,"context_line":"            if [ -n \"${module_ref}\" ]; then"},{"line_number":388,"context_line":"                pushd ${MODULES_DIR}/${module}"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"                git fetch ${src_location} ${module_ref}"},{"line_number":391,"context_line":"                if [ $? -ne 0 ]; then"},{"line_number":392,"context_line":"                    echo \"Failed to fetch repo branch: ${module} ${module_ref}\" \u003e\u00262"},{"line_number":393,"context_line":"                    exit 1"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_b967444d","line":390,"range":{"start_line":390,"start_character":0,"end_line":390,"end_character":55},"in_reply_to":"bfb3d3c7_79ac6c9e","updated":"2019-05-31 02:21:44.000000000","message":"Additionally, we don\u0027t have retries around any other git network access calls.","commit_id":"d52303ad06c650103bb8b9b5c655280992072715"},{"author":{"_account_id":28431,"name":"Don Penney","email":"dpenney@redhat.com","username":"dpenney"},"change_message_id":"0508e9c645c743255b85c1eaf3fec1da9eff24d9","unresolved":false,"context_lines":[{"line_number":387,"context_line":"            if [ -n \"${module_ref}\" ]; then"},{"line_number":388,"context_line":"                pushd ${MODULES_DIR}/${module}"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"                git fetch ${src_location} ${module_ref}"},{"line_number":391,"context_line":"                if [ $? -ne 0 ]; then"},{"line_number":392,"context_line":"                    echo \"Failed to fetch repo branch: ${module} ${module_ref}\" \u003e\u00262"},{"line_number":393,"context_line":"                    exit 1"}],"source_content_type":"text/x-sh","patch_set":3,"id":"bfb3d3c7_79ac6c9e","line":390,"range":{"start_line":390,"start_character":0,"end_line":390,"end_character":55},"in_reply_to":"bfb3d3c7_ece4380f","updated":"2019-05-31 02:01:56.000000000","message":"My assumption was that git had its own retries in case of networking issues, doesn\u0027t it?","commit_id":"d52303ad06c650103bb8b9b5c655280992072715"},{"author":{"_account_id":28607,"name":"Saul Wold","email":"saul.wold@windriver.com","username":"sgw-starlingx"},"change_message_id":"e66a12097c0cf9f7c01a68201401d76f7c097779","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            CLEAN\u003dyes"},{"line_number":253,"context_line":"            shift"},{"line_number":254,"context_line":"            ;;"},{"line_number":255,"context_line":"        --attempts)"},{"line_number":256,"context_line":"            MAX_ATTEMPTS\u003d$2"},{"line_number":257,"context_line":"            shift 2"},{"line_number":258,"context_line":"            ;;"},{"line_number":259,"context_line":"        --update-id)"},{"line_number":260,"context_line":"            UPDATE_ID\u003d$2"},{"line_number":261,"context_line":"            shift 2"},{"line_number":262,"context_line":"            ;;"},{"line_number":263,"context_line":"        -h | --help )"}],"source_content_type":"text/x-sh","patch_set":5,"id":"9fb8cfa7_66e75d14","line":260,"range":{"start_line":255,"start_character":8,"end_line":260,"end_character":24},"updated":"2019-06-07 17:00:45.000000000","message":"Any reason to not have these items included in the input file alternative?","commit_id":"6810ca2dfab7757ac3addfe5e85ff24687248ac8"},{"author":{"_account_id":28431,"name":"Don Penney","email":"dpenney@redhat.com","username":"dpenney"},"change_message_id":"65561558e6984ed411117c680377c5411654cda9","unresolved":false,"context_lines":[{"line_number":252,"context_line":"            CLEAN\u003dyes"},{"line_number":253,"context_line":"            shift"},{"line_number":254,"context_line":"            ;;"},{"line_number":255,"context_line":"        --attempts)"},{"line_number":256,"context_line":"            MAX_ATTEMPTS\u003d$2"},{"line_number":257,"context_line":"            shift 2"},{"line_number":258,"context_line":"            ;;"},{"line_number":259,"context_line":"        --update-id)"},{"line_number":260,"context_line":"            UPDATE_ID\u003d$2"},{"line_number":261,"context_line":"            shift 2"},{"line_number":262,"context_line":"            ;;"},{"line_number":263,"context_line":"        -h | --help )"}],"source_content_type":"text/x-sh","patch_set":5,"id":"9fb8cfa7_e9e9de19","line":260,"range":{"start_line":255,"start_character":8,"end_line":260,"end_character":24},"in_reply_to":"9fb8cfa7_66e75d14","updated":"2019-06-07 17:07:13.000000000","message":"These would be just runtime options, whereas the directives file defines what gets built. The intent here is that you could have a repo or branch where you\u0027d push/commit an update directives file to be used to build an image update. These options, however, would be environmental, for the build itself - ie. if you were setting up an automated build of image updates, like CENGN, you may want an increased number of retries.","commit_id":"6810ca2dfab7757ac3addfe5e85ff24687248ac8"}]}
