)]}'
{"diskimage_builder/disk_image_create.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ffcabb529d0819fdeddb918191ad4e2ee7b457b5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path[:0] \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_2ef0f665","line":46,"updated":"2020-01-28 00:55:39.000000000","message":"This prepends a whole copy of sys.path prefixed with the new path entry to the existing list. Shouldn\u0027t we simply replace sys.path with path_list instead?","commit_id":"8d677d45a20fa1b815d398a93760a93754d7dabc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"504195bbb57b4b4cb7dd7334d88e9c27449e9d90","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path[:0] \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_6ef10e64","line":46,"in_reply_to":"3fa7e38b_2ef0f665","updated":"2020-01-28 00:58:09.000000000","message":"In the case where we aren\u0027t in a venv the file will still not be found. Then we will add eg /usr/local/bin/ or /usr/bin to the sys.path. I\u0027m not sure that is fully correct as there shouldn\u0027t be importable modules in /usr/local/bin/","commit_id":"8d677d45a20fa1b815d398a93760a93754d7dabc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3a5af20c0896b50c15060d44d3b9bbfed3f30143","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path[:0] \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_eee5fea3","line":46,"in_reply_to":"3fa7e38b_2ef0f665","updated":"2020-01-28 00:57:03.000000000","message":"Yeah, we should!","commit_id":"8d677d45a20fa1b815d398a93760a93754d7dabc"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"d43741de7ebd4ed4c1504eb9f2c3ecd7928875db","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path[:0] \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_8e856ab0","line":46,"in_reply_to":"3fa7e38b_6ef10e64","updated":"2020-01-28 00:59:41.000000000","message":"Nevermind running_under_virtualenv() should guard against this non venv case.","commit_id":"8d677d45a20fa1b815d398a93760a93754d7dabc"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"79936046905c67c8402b040be83e5f045136acae","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def activate_venv():"},{"line_number":34,"context_line":"    if running_under_virtualenv():"},{"line_number":35,"context_line":"        activate_this \u003d os.path.join(sys.prefix, \"bin\", \"activate_this.py\")"},{"line_number":36,"context_line":"        try:"},{"line_number":37,"context_line":"            globs \u003d runpy.run_path(activate_this, globals())"},{"line_number":38,"context_line":"            globals().update(globs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_331d7d78","line":35,"updated":"2020-01-31 13:45:59.000000000","message":"this will fail as activate_this.py doesn\u0027t exist in venv\nwhat we could do is instead check if we\u0027re running using venv or virtualenv for example based on the presence of pyvenv.cfg in the virtualenv path, and then act setting what we need to set, or fallback to virtualenv and use activate_this.py","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"0094230622808942259411e647ddf5c7eed6c8a3","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def activate_venv():"},{"line_number":34,"context_line":"    if running_under_virtualenv():"},{"line_number":35,"context_line":"        activate_this \u003d os.path.join(sys.prefix, \"bin\", \"activate_this.py\")"},{"line_number":36,"context_line":"        try:"},{"line_number":37,"context_line":"            globs \u003d runpy.run_path(activate_this, globals())"},{"line_number":38,"context_line":"            globals().update(globs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c91e605d","line":35,"in_reply_to":"3fa7e38b_331d7d78","updated":"2020-02-06 23:30:13.000000000","message":"This... shouldn\u0027t fail. It doesn\u0027t stat it afaik, it just does the string join as a path would be...","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"3eb021478099803d5886aac9c70f5d0dd40db2bc","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def activate_venv():"},{"line_number":34,"context_line":"    if running_under_virtualenv():"},{"line_number":35,"context_line":"        activate_this \u003d os.path.join(sys.prefix, \"bin\", \"activate_this.py\")"},{"line_number":36,"context_line":"        try:"},{"line_number":37,"context_line":"            globs \u003d runpy.run_path(activate_this, globals())"},{"line_number":38,"context_line":"            globals().update(globs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_38f738d4","line":35,"in_reply_to":"3fa7e38b_c91e605d","updated":"2020-02-07 10:20:42.000000000","message":"/facepalm true, sorry, I don\u0027t know why I thought about the call instead of the join :/","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"533ece690cf60a3ffa14143ce9aad3445760858b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"def activate_venv():"},{"line_number":34,"context_line":"    if running_under_virtualenv():"},{"line_number":35,"context_line":"        activate_this \u003d os.path.join(sys.prefix, \"bin\", \"activate_this.py\")"},{"line_number":36,"context_line":"        try:"},{"line_number":37,"context_line":"            globs \u003d runpy.run_path(activate_this, globals())"},{"line_number":38,"context_line":"            globals().update(globs)"},{"line_number":39,"context_line":"            del globs"},{"line_number":40,"context_line":"        except FileNotFoundError:"},{"line_number":41,"context_line":"            # In this case venv is likely in use, so we will instead"},{"line_number":42,"context_line":"            # just directly update the path."},{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_d64b4784","line":40,"range":{"start_line":36,"start_character":0,"end_line":40,"end_character":33},"updated":"2020-05-29 10:19:13.000000000","message":"I\u0027d like to split this part out of the patch since the FileNotFoundError prevents us from even trying workarounds..","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"715564e5e76481d48e1e0a843b1c0670dc7c700f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_24ffb500","line":46,"updated":"2020-01-28 04:18:08.000000000","message":"I\u0027m not 1000% sure this works.\n\n2020-01-28 01:39:54.583670 | ubuntu-bionic |         \"2020-01-28 01:39:53.367 | dib-run-parts Running /tmp/dib_build.OnLLYwG3/hooks/extra-data.d/10-merge-svc-map-files\",\n2020-01-28 01:39:54.583679 | ubuntu-bionic |         \"2020-01-28 01:39:53.390 | Traceback (most recent call last):\",\n2020-01-28 01:39:54.583688 | ubuntu-bionic |         \"2020-01-28 01:39:53.390 |   File \\\"/tmp/dib_build.OnLLYwG3/hooks/extra-data.d/10-merge-svc-map-files\\\", line 18, in \u003cmodule\u003e\",\n2020-01-28 01:39:54.583703 | ubuntu-bionic |         \"2020-01-28 01:39:53.390 |     import yaml\",\n2020-01-28 01:39:54.583720 | ubuntu-bionic |         \"2020-01-28 01:39:53.390 | ModuleNotFoundError: No module named \u0027yaml\u0027\",\n\nAlthough it looks like DIB was trying to use python 2 :(","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"280598e7873b2aa75cffd8beb91b27be1fab6911","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c686e216","line":46,"in_reply_to":"3fa7e38b_2476d5a4","updated":"2020-01-28 12:46:07.000000000","message":"Ah, familiar problem, although I thought it was fixed by https://opendev.org/openstack/diskimage-builder/commit/9c7b8d17144ae04dcd56cd736a8f05c76ec87cc1. This script probably breaks out of the venv.","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"07b36904a21ed661d3cd3ccdd6a5d61492174fa1","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a40ac51a","line":46,"in_reply_to":"3fa7e38b_24ffb500","updated":"2020-01-28 04:18:25.000000000","message":"https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_0b4/704480/2/check/bifrost-integration-dibipa-debian-ubuntu-bionic/0b48a28/job-output.txt","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"3eb021478099803d5886aac9c70f5d0dd40db2bc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b8b24804","line":46,"in_reply_to":"3fa7e38b_74755432","updated":"2020-02-07 10:20:42.000000000","message":"according to this https://docs.python.org/3/library/venv.html#venv-def we should change sys.prefix and sys.exec_prefix to point to the base directory of the virtual environment\nhttps://docs.python.org/3/library/sys.html#sys.prefix\nhttps://docs.python.org/3/library/sys.html#sys.exec_prefix\n\nIdeally we should not need to activate the virtualenv since a PEP-405 compliant Python exec should automatically take such values from pyvenv.cfg and we could leverage that","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"786b76b80f0cd8352dac1e3b3ad3c61b4ce21299","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_2476d5a4","line":46,"in_reply_to":"3fa7e38b_a40ac51a","updated":"2020-01-28 04:34:08.000000000","message":"Hardcoding the version of python bifrost sets for dib to leverage... but it was installed using py3, so unsure of what is really going on there.","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"3e5e0bab113e1cb19658ec79e7d136ab9ab7e243","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff570b3c_76299b99","line":46,"in_reply_to":"3fa7e38b_b8b24804","updated":"2020-05-29 10:28:44.000000000","message":"sys.prefix and exec_prefix seems to be set correctly in a venv (tried locally). I also suspect that sys.path is not what we think it is.","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"ca0ab9df4ab13630ff62a6a9b5ab48a0018d30e2","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            base_path \u003d os.path.dirname(os.path.abspath(sys.executable))"},{"line_number":44,"context_line":"            path_list \u003d list(sys.path)"},{"line_number":45,"context_line":"            path_list.insert(0, base_path)"},{"line_number":46,"context_line":"            sys.path \u003d path_list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_74755432","line":46,"in_reply_to":"3fa7e38b_c686e216","updated":"2020-02-06 23:29:03.000000000","message":"Yeah, it kind of feels slightly redundant...","commit_id":"9b16eff721260c6cc11032a3d9912e7493fcc764"}]}
