)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8a43a6738408fd2a45c7fa6211602a3e4e72e623","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8faf9ba9_921f07f3","updated":"2023-01-16 21:08:03.000000000","message":"Overall I\u0027m very happy with how this looks using platforms, this is pretty cool!","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"}],"build/ci/jenkins-presubmit.groovy":[{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ff40dfd1bbee4910bb692d2eb5aaa92953d710fd","unresolved":false,"context_lines":[{"line_number":3,"context_line":"// open Gerrit change request."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"// TODO(leo): remove once CI image has been updated."},{"line_number":6,"context_line":"def gazelle_build \u003d \"curl -o ~/bazelisk https://storage.googleapis.com/monogon-infra-public/bazelisk-v1.15.0 \u0026\u0026 chmod +x ~/bazelisk\""},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"pipeline {"},{"line_number":9,"context_line":"    agent none"}],"source_content_type":"text/x-groovy","patch_set":7,"id":"fa9aed3b_0f062a31","line":6,"updated":"2023-01-16 00:50:47.000000000","message":"(there\u0027s a chicken-and-eggs issue here - Bazel will refuse to build Bazelisk since it reads `.bazelversion` - just use a prebuilt bazelisk instead)","commit_id":"e5bf2a68f7ead606ac05ca8b59dabff249a5578f"}],"build/toolchain/BUILD":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8a43a6738408fd2a45c7fa6211602a3e4e72e623","unresolved":true,"context_lines":[{"line_number":7,"context_line":"#  - //build/toolchain:host_cc_toolchain , which points to our hermetic sandbox"},{"line_number":8,"context_line":"#    sysroot default compiler toolchain. It is mainly used to target the execution platform"},{"line_number":9,"context_line":"#    inside the sandbox (i.e. build tooling)."},{"line_number":10,"context_line":"#  - //build/toolchain/musl-host-gcc:musl_host_toolchain , which combines the host\u0027s"},{"line_number":11,"context_line":"#    gcc compiler with a sysroot tarball that targets the Metropolis node"},{"line_number":12,"context_line":"#    runtime. This can be used to build C libraries/tools running within the"},{"line_number":13,"context_line":"#    Metropolis node image or on the (unknown) host operating system outside the sandbox."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"7889e853_e62d0568","line":11,"range":{"start_line":10,"start_character":78,"end_line":11,"end_character":8},"updated":"2023-01-16 21:08:03.000000000","message":"Uses the \"outer\" sysroot hermetic gcc, right?","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"08f5c818a311915e74ea8caaddce2ab324ee9fe3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"#  - //build/toolchain:host_cc_toolchain , which points to our hermetic sandbox"},{"line_number":8,"context_line":"#    sysroot default compiler toolchain. It is mainly used to target the execution platform"},{"line_number":9,"context_line":"#    inside the sandbox (i.e. build tooling)."},{"line_number":10,"context_line":"#  - //build/toolchain/musl-host-gcc:musl_host_toolchain , which combines the host\u0027s"},{"line_number":11,"context_line":"#    gcc compiler with a sysroot tarball that targets the Metropolis node"},{"line_number":12,"context_line":"#    runtime. This can be used to build C libraries/tools running within the"},{"line_number":13,"context_line":"#    Metropolis node image or on the (unknown) host operating system outside the sandbox."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9ca1772d_fc202538","line":11,"range":{"start_line":10,"start_character":78,"end_line":11,"end_character":8},"in_reply_to":"7889e853_e62d0568","updated":"2023-01-16 22:08:36.000000000","message":"Done","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8a43a6738408fd2a45c7fa6211602a3e4e72e623","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# This file defines //build/toolchain:host_cc_toolchain."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# This is a C++ toolchain that uses GCC from the host at hardcoded paths. We"},{"line_number":18,"context_line":"# can get away with this, as currently the entire build is performed in a hermetic"},{"line_number":19,"context_line":"# sandbox sysroot (see: //third_party/sandboxroot). We define this toolchain so"},{"line_number":20,"context_line":"# that we have full control over all configuration of it, which we need as we"}],"source_content_type":"text/x-python","patch_set":9,"id":"08ee2a33_b5575dce","line":17,"range":{"start_line":17,"start_character":49,"end_line":17,"end_character":53},"updated":"2023-01-16 21:08:03.000000000","message":"sandbox sysroot","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e4ccddfd97a53d622fef557df92a320669877dc0","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# This file defines //build/toolchain:host_cc_toolchain."},{"line_number":16,"context_line":"#"},{"line_number":17,"context_line":"# This is a C++ toolchain that uses GCC from the host at hardcoded paths. We"},{"line_number":18,"context_line":"# can get away with this, as currently the entire build is performed in a hermetic"},{"line_number":19,"context_line":"# sandbox sysroot (see: //third_party/sandboxroot). We define this toolchain so"},{"line_number":20,"context_line":"# that we have full control over all configuration of it, which we need as we"}],"source_content_type":"text/x-python","patch_set":9,"id":"fe0ce108_6ae48b59","line":17,"range":{"start_line":17,"start_character":49,"end_line":17,"end_character":53},"in_reply_to":"08ee2a33_b5575dce","updated":"2023-01-16 22:34:56.000000000","message":"Done","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"}],"metropolis/node/build/efi.bzl":[{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"8a43a6738408fd2a45c7fa6211602a3e4e72e623","unresolved":true,"context_lines":[{"line_number":134,"context_line":"        ),"},{"line_number":135,"context_line":"    },"},{"line_number":136,"context_line":"    toolchains \u003d ["},{"line_number":137,"context_line":"        \"@bazel_tools//tools/cpp:toolchain_type\""},{"line_number":138,"context_line":"    ],"},{"line_number":139,"context_line":")"}],"source_content_type":"text/x-python","patch_set":9,"id":"ae4df7d2_4c6b2e71","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":48},"updated":"2023-01-16 21:08:03.000000000","message":"There is a silent behavior change here: previously this used the llvm-efi toolchain, now this uses the default cc toolchain as there is no transition on the output of this anymore. As objcopy is relatively basic I don\u0027t think this immediately matters (that\u0027s probably why it\u0027s still working), but if it turns out to be hard to fix at least put a comment there saying that objcopy comes from the wrong toolchain.","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e3054ad1e2f1dd43dc79c443c6da7a1cf05b1a98","unresolved":true,"context_lines":[{"line_number":134,"context_line":"        ),"},{"line_number":135,"context_line":"    },"},{"line_number":136,"context_line":"    toolchains \u003d ["},{"line_number":137,"context_line":"        \"@bazel_tools//tools/cpp:toolchain_type\""},{"line_number":138,"context_line":"    ],"},{"line_number":139,"context_line":")"}],"source_content_type":"text/x-python","patch_set":9,"id":"0d5263d7_a930f20a","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":48},"in_reply_to":"0d18c56f_eef84200","updated":"2023-01-18 18:01:53.000000000","message":"It\u0027s currently pointing to binutils objcopy though: https://github.com/monogon-dev/monogon/blob/605efbe76a4317b50bc5499041784f303a9bdc37/build/toolchain/llvm-efi/cc_toolchain_config.bzl#L182-L183\n\nHence, the change is a no-op.","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"4c107c71d901af0f398de8c6fafadf9e2935d55b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        ),"},{"line_number":135,"context_line":"    },"},{"line_number":136,"context_line":"    toolchains \u003d ["},{"line_number":137,"context_line":"        \"@bazel_tools//tools/cpp:toolchain_type\""},{"line_number":138,"context_line":"    ],"},{"line_number":139,"context_line":")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3e9ceee0_5abc3b7e","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":48},"in_reply_to":"0d5263d7_a930f20a","updated":"2023-01-18 18:46:13.000000000","message":"Ack","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000001,"name":"Lorenz Brun","display_name":"Lorenz","email":"lorenz@monogon.tech","username":"lorenz","avatars":[{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/75c04f6e9881c24ee621fba80667eed8.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bd002fe0112ca736311527c0fe3c76b4a2306af9","unresolved":true,"context_lines":[{"line_number":134,"context_line":"        ),"},{"line_number":135,"context_line":"    },"},{"line_number":136,"context_line":"    toolchains \u003d ["},{"line_number":137,"context_line":"        \"@bazel_tools//tools/cpp:toolchain_type\""},{"line_number":138,"context_line":"    ],"},{"line_number":139,"context_line":")"}],"source_content_type":"text/x-python","patch_set":9,"id":"0d18c56f_eef84200","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":48},"in_reply_to":"3abcd9d7_bcc733b8","updated":"2023-01-18 14:07:40.000000000","message":"It\u0027s not the same binary AFAIK. One is from LLVM, the other from GCC. But they conform to approximately the same interface. I\u0027d prefer depending on the toolchain directly until we start having to target multiple architectures at which point we\u0027d need to figure out a bunch of transition-related things anyways.","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"08f5c818a311915e74ea8caaddce2ab324ee9fe3","unresolved":true,"context_lines":[{"line_number":134,"context_line":"        ),"},{"line_number":135,"context_line":"    },"},{"line_number":136,"context_line":"    toolchains \u003d ["},{"line_number":137,"context_line":"        \"@bazel_tools//tools/cpp:toolchain_type\""},{"line_number":138,"context_line":"    ],"},{"line_number":139,"context_line":")"}],"source_content_type":"text/x-python","patch_set":9,"id":"3abcd9d7_bcc733b8","line":137,"range":{"start_line":137,"start_character":8,"end_line":137,"end_character":48},"in_reply_to":"ae4df7d2_4c6b2e71","updated":"2023-01-16 22:08:36.000000000","message":"Apologies, should\u0027ve mentioned this in the commit message: I figured it was the same binary anyways (is it?), so no behavior change.\n\nIIRC, we could still depend on the toolchain directly, or attach a transition, if it matters.","commit_id":"e7dd9ed31f7e8381018e68116181000e2d144100"}]}
