)]}'
{"metropolis/test/installer/main.go":[{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6b877ee93a49043e55534fc7938b882cdd051259","unresolved":true,"context_lines":[{"line_number":61,"context_line":"// path resolves filesystem paths pointing to both buildsystem dependencies"},{"line_number":62,"context_line":"// and runtime side effects using Bazel. It will panic if a path can\u0027t be"},{"line_number":63,"context_line":"// resolved. It returns an absolute path."},{"line_number":64,"context_line":"func path(p Path) string {"},{"line_number":65,"context_line":"\t// This part resolves buildsystem dependency paths. Paths passed to"},{"line_number":66,"context_line":"\t// bazel.Runfile must be relative to the repository root."},{"line_number":67,"context_line":"\tdeps :\u003d map[Path]string{"}],"source_content_type":"text/x-go","patch_set":1,"id":"ac96e5c3_ffba000a","line":64,"range":{"start_line":64,"start_character":10,"end_line":64,"end_character":16},"updated":"2021-12-02 11:29:37.000000000","message":"I don\u0027t think this indirection is worth it.\n\nFor input runfiles (a.k.a. data entries) just call bazel.Runfile() directly at the point of use (or if that gets unwieldy due to having to use the error or repeatedly referring to the runfile string, initialize some global variables once at startup and use them, eg. in a TestMain or even in init()).\n\nFor temporary files, see comment below.","commit_id":"89e26084630a780956a87c96a66437d543fb9568"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"dabdc46d6b5f4783aa1a2f6790153eba65986467","unresolved":false,"context_lines":[{"line_number":61,"context_line":"// path resolves filesystem paths pointing to both buildsystem dependencies"},{"line_number":62,"context_line":"// and runtime side effects using Bazel. It will panic if a path can\u0027t be"},{"line_number":63,"context_line":"// resolved. It returns an absolute path."},{"line_number":64,"context_line":"func path(p Path) string {"},{"line_number":65,"context_line":"\t// This part resolves buildsystem dependency paths. Paths passed to"},{"line_number":66,"context_line":"\t// bazel.Runfile must be relative to the repository root."},{"line_number":67,"context_line":"\tdeps :\u003d map[Path]string{"}],"source_content_type":"text/x-go","patch_set":1,"id":"5ded2e8a_af411b85","line":64,"range":{"start_line":64,"start_character":10,"end_line":64,"end_character":16},"in_reply_to":"ac96e5c3_ffba000a","updated":"2021-12-03 15:58:11.000000000","message":"Done","commit_id":"89e26084630a780956a87c96a66437d543fb9568"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"6b877ee93a49043e55534fc7938b882cdd051259","unresolved":true,"context_lines":[{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":"\t\treturn r"},{"line_number":77,"context_line":"\t}"},{"line_number":78,"context_line":"\t// This part resolves paths pointing at files generated during test"},{"line_number":79,"context_line":"\t// execution."},{"line_number":80,"context_line":"\touts :\u003d map[Path]string{"},{"line_number":81,"context_line":"\t\tInstallerImage: \"installer.img\","},{"line_number":82,"context_line":"\t\tNodeStorage:    \"stor.img\","}],"source_content_type":"text/x-go","patch_set":1,"id":"ad2d917f_f7d450e5","line":79,"range":{"start_line":78,"start_character":1,"end_line":79,"end_character":14},"updated":"2021-12-02 11:29:37.000000000","message":"For these you can either just use curdir-relative addressing (which is a subdir of the runfile directory), or if you\u0027re feeling fancy and correct, place them in $TEST_TMPDIR (https://docs.bazel.build/versions/main/test-encyclopedia.html#test-interaction-with-the-filesystem).","commit_id":"89e26084630a780956a87c96a66437d543fb9568"},{"author":{"_account_id":1000010,"name":"Mateusz Zalega","display_name":"msgctl","email":"mateusz@monogon.tech","username":"mateusz","avatars":[{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/30cae8ca0782f23ce0a60ac80fda3dd9.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"dabdc46d6b5f4783aa1a2f6790153eba65986467","unresolved":false,"context_lines":[{"line_number":75,"context_line":"\t\t}"},{"line_number":76,"context_line":"\t\treturn r"},{"line_number":77,"context_line":"\t}"},{"line_number":78,"context_line":"\t// This part resolves paths pointing at files generated during test"},{"line_number":79,"context_line":"\t// execution."},{"line_number":80,"context_line":"\touts :\u003d map[Path]string{"},{"line_number":81,"context_line":"\t\tInstallerImage: \"installer.img\","},{"line_number":82,"context_line":"\t\tNodeStorage:    \"stor.img\","}],"source_content_type":"text/x-go","patch_set":1,"id":"e2ec818b_9a1a8ad1","line":79,"range":{"start_line":78,"start_character":1,"end_line":79,"end_character":14},"in_reply_to":"ad2d917f_f7d450e5","updated":"2021-12-03 15:58:11.000000000","message":"Done","commit_id":"89e26084630a780956a87c96a66437d543fb9568"}]}
