From a8be5d55d34f7b10ed8bcf18fc85be69a080036e Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 12:47:06 +0200 Subject: [PATCH 01/10] chore(deps): rules_nipxkgs update --- projects/bzl7/MODULE.bazel | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/bzl7/MODULE.bazel b/projects/bzl7/MODULE.bazel index f0d5987..84b6ea3 100644 --- a/projects/bzl7/MODULE.bazel +++ b/projects/bzl7/MODULE.bazel @@ -2,7 +2,7 @@ module( name = "bzl7", ) -RULES_NIX_PKGS_VERSION = "0.11.1" +RULES_NIX_PKGS_VERSION = "0.12.0" bazel_dep(name = "aspect_rules_py", version = "0.7.1") bazel_dep(name = "gazelle", version = "0.36.0") @@ -23,7 +23,7 @@ archive_override( "https://github.com/tweag/rules_nixpkgs/releases/download/v{0}/rules_nixpkgs-{0}.tar.gz".format(RULES_NIX_PKGS_VERSION), ], strip_prefix = "rules_nixpkgs-{}/toolchains/cc".format(RULES_NIX_PKGS_VERSION), - integrity = "sha256-KlVTSNf4WT/KK/P8bOU8XWKSnegbbCkuI/FsVXwK5Fo=", + integrity = "sha256-GtsE3AQWkV/vQndX9CcsT32s7+zu78UPaDrsf36beHo=", ) nix_repo = use_extension("@rules_nixpkgs_core//extensions:repository.bzl", "nix_repo") From d5c2e27884e17c8a29935646998c619f20e43a4a Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 13:00:22 +0200 Subject: [PATCH 02/10] fix: adding crosstool_top entry --- projects/bzl7/.bazelrc | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/bzl7/.bazelrc b/projects/bzl7/.bazelrc index eb5dbcc..5d49d9c 100644 --- a/projects/bzl7/.bazelrc +++ b/projects/bzl7/.bazelrc @@ -1,3 +1,4 @@ +build --crosstool_top=@gcc12//:toolchain build --incompatible_enable_cc_toolchain_resolution build --incompatible_strict_action_env From 98c5e3cd128292bead3b704837a21c48d1cb6f58 Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 13:45:03 +0200 Subject: [PATCH 03/10] fix: crosstop_tool cc toolchain name fix --- projects/bzl7/.bazelrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/bzl7/.bazelrc b/projects/bzl7/.bazelrc index 5d49d9c..fccfc8d 100644 --- a/projects/bzl7/.bazelrc +++ b/projects/bzl7/.bazelrc @@ -1,4 +1,4 @@ -build --crosstool_top=@gcc12//:toolchain +build --crosstool_top=@gcc_12//:toolchain build --incompatible_enable_cc_toolchain_resolution build --incompatible_strict_action_env From 1678f49d6e29d2daf8aba682d0aa29f8107dfb23 Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 13:46:11 +0200 Subject: [PATCH 04/10] debug: examine CC_TOOLCHAIN_INFO content --- .github/workflows/ci-bzl-projects.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-bzl-projects.yaml b/.github/workflows/ci-bzl-projects.yaml index 7a07fa2..978325a 100644 --- a/.github/workflows/ci-bzl-projects.yaml +++ b/.github/workflows/ci-bzl-projects.yaml @@ -30,4 +30,4 @@ jobs: with: nix_path: nixpkgs=channel:nixos-unstable - name: Build all - run: ./nix-shell.sh -- --run 'cd projects/${{ matrix.project }}; bazel build //...' + run: ./nix-shell.sh -- --run 'cd projects/${{ matrix.project }}; bazel build //...; cat $(bazel info output_base)/external/_main~non_module_deps~gcc_12_info/CC_TOOLCHAIN_INFO' From e9d2ec83cc8e5c34c436619a2a24af0f1058f4bb Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 13:56:16 +0200 Subject: [PATCH 05/10] debug: more debug info --- .github/workflows/ci-bzl-projects.yaml | 2 +- scripts/shell.nix | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-bzl-projects.yaml b/.github/workflows/ci-bzl-projects.yaml index 978325a..6f4d7e0 100644 --- a/.github/workflows/ci-bzl-projects.yaml +++ b/.github/workflows/ci-bzl-projects.yaml @@ -30,4 +30,4 @@ jobs: with: nix_path: nixpkgs=channel:nixos-unstable - name: Build all - run: ./nix-shell.sh -- --run 'cd projects/${{ matrix.project }}; bazel build //...; cat $(bazel info output_base)/external/_main~non_module_deps~gcc_12_info/CC_TOOLCHAIN_INFO' + run: ./nix-shell.sh -- --run 'cd projects/${{ matrix.project }}; bazel build //...; cat $(bazel info output_base)/external/_main~non_module_deps~gcc_12_info/CC_TOOLCHAIN_INFO; bat --paging=never $(bazel info output_base)/external/_main~non_module_deps~gcc_12/BUILD.bazel' diff --git a/scripts/shell.nix b/scripts/shell.nix index 595b828..1439f3e 100644 --- a/scripts/shell.nix +++ b/scripts/shell.nix @@ -49,6 +49,7 @@ pkgs.mkShell { coreutils-full curlFull direnv + bat # Add git client to shell, it reads host configuration git gnutar From 7df8ad50360c108202ce7b3e94f546046049e25c Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 14:01:31 +0200 Subject: [PATCH 06/10] debug: run only for bzl7 --- .github/workflows/ci-bzl-projects.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-bzl-projects.yaml b/.github/workflows/ci-bzl-projects.yaml index 6f4d7e0..d08377d 100644 --- a/.github/workflows/ci-bzl-projects.yaml +++ b/.github/workflows/ci-bzl-projects.yaml @@ -10,7 +10,8 @@ jobs: strategy: matrix: os: [ ubuntu-latest ] - project: [ bzl4, bzl5_bzlmod, bzl7 ] + # project: [ bzl4, bzl5_bzlmod, bzl7 ] + project: [ bzl7 ] runs-on: ${{ matrix.os }} steps: - name: Checkout code From 3921cfb3db5ff2cbb95c85017d0fa0fb329e3ef7 Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 15:26:02 +0200 Subject: [PATCH 07/10] fix: use rules_nixpkgs from trunk --- projects/bzl7/MODULE.bazel | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/projects/bzl7/MODULE.bazel b/projects/bzl7/MODULE.bazel index 84b6ea3..00469c5 100644 --- a/projects/bzl7/MODULE.bazel +++ b/projects/bzl7/MODULE.bazel @@ -2,7 +2,7 @@ module( name = "bzl7", ) -RULES_NIX_PKGS_VERSION = "0.12.0" +RULES_NIX_PKGS_VERSION = "928f28a41218fb81a3043facd7f8b7ce3294997c" bazel_dep(name = "aspect_rules_py", version = "0.7.1") bazel_dep(name = "gazelle", version = "0.36.0") @@ -16,14 +16,24 @@ bazel_dep(name = "rules_python", version = "0.31.0") bazel_dep(name = "platforms", version = "0.0.9") bazel_dep(name = "protobuf", version = "26.0.bcr.1") +# fix for extra_flags_per_feature, not published yet to BCR +# https://github.com/tweag/rules_nixpkgs/commit/2e0ba5493bc07c40b365bd07334a6477754a6062 +archive_override( + module_name = "rules_nixpkgs_core", + urls = ["https://github.com/tweag/rules_nixpkgs/archive/{}.tar.gz".format(RULES_NIX_PKGS_VERSION)], + strip_prefix = "rules_nixpkgs-{}/core".format(RULES_NIX_PKGS_VERSION), + integrity = "sha256-R8WgrdWLsUyVwC/MjV2h86FKPjQ5bbAbOpiD7mQqn8U=" +) + # Not yet available in the bazel central registry. archive_override( module_name = "rules_nixpkgs_cc", urls = [ "https://github.com/tweag/rules_nixpkgs/releases/download/v{0}/rules_nixpkgs-{0}.tar.gz".format(RULES_NIX_PKGS_VERSION), + "https://github.com/tweag/rules_nixpkgs/archive/{}.tar.gz".format(RULES_NIX_PKGS_VERSION) ], strip_prefix = "rules_nixpkgs-{}/toolchains/cc".format(RULES_NIX_PKGS_VERSION), - integrity = "sha256-GtsE3AQWkV/vQndX9CcsT32s7+zu78UPaDrsf36beHo=", + integrity = "sha256-R8WgrdWLsUyVwC/MjV2h86FKPjQ5bbAbOpiD7mQqn8U=" ) nix_repo = use_extension("@rules_nixpkgs_core//extensions:repository.bzl", "nix_repo") From 3018d815855a863fad4f9f6c6f223c124f03faec Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 15:30:28 +0200 Subject: [PATCH 08/10] Revert "debug: examine CC_TOOLCHAIN_INFO content" This reverts commit 1678f49d6e29d2daf8aba682d0aa29f8107dfb23. --- .github/workflows/ci-bzl-projects.yaml | 5 ++--- scripts/shell.nix | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-bzl-projects.yaml b/.github/workflows/ci-bzl-projects.yaml index d08377d..7a07fa2 100644 --- a/.github/workflows/ci-bzl-projects.yaml +++ b/.github/workflows/ci-bzl-projects.yaml @@ -10,8 +10,7 @@ jobs: strategy: matrix: os: [ ubuntu-latest ] - # project: [ bzl4, bzl5_bzlmod, bzl7 ] - project: [ bzl7 ] + project: [ bzl4, bzl5_bzlmod, bzl7 ] runs-on: ${{ matrix.os }} steps: - name: Checkout code @@ -31,4 +30,4 @@ jobs: with: nix_path: nixpkgs=channel:nixos-unstable - name: Build all - run: ./nix-shell.sh -- --run 'cd projects/${{ matrix.project }}; bazel build //...; cat $(bazel info output_base)/external/_main~non_module_deps~gcc_12_info/CC_TOOLCHAIN_INFO; bat --paging=never $(bazel info output_base)/external/_main~non_module_deps~gcc_12/BUILD.bazel' + run: ./nix-shell.sh -- --run 'cd projects/${{ matrix.project }}; bazel build //...' diff --git a/scripts/shell.nix b/scripts/shell.nix index 1439f3e..595b828 100644 --- a/scripts/shell.nix +++ b/scripts/shell.nix @@ -49,7 +49,6 @@ pkgs.mkShell { coreutils-full curlFull direnv - bat # Add git client to shell, it reads host configuration git gnutar From c74e5354f8005ea9d5beae9263b406062fc30b64 Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 15:45:53 +0200 Subject: [PATCH 09/10] fix: use protobuf from nixpkgs to speedup the build --- projects/bzl7/.bazelrc | 3 +-- projects/bzl7/BUILD.bazel | 16 ++++++++++++++++ projects/bzl7/MODULE.bazel | 15 +++++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/projects/bzl7/.bazelrc b/projects/bzl7/.bazelrc index fccfc8d..764dbc9 100644 --- a/projects/bzl7/.bazelrc +++ b/projects/bzl7/.bazelrc @@ -1,9 +1,8 @@ build --crosstool_top=@gcc_12//:toolchain build --incompatible_enable_cc_toolchain_resolution +build --incompatible_enable_proto_toolchain_resolution build --incompatible_strict_action_env - build --host_cxxopt=-std=c++17 - build --host_platform=@rules_nixpkgs_core//platforms:host build:gcc10 --platforms=//platforms:gcc_10 diff --git a/projects/bzl7/BUILD.bazel b/projects/bzl7/BUILD.bazel index ee3d191..1c21e3b 100644 --- a/projects/bzl7/BUILD.bazel +++ b/projects/bzl7/BUILD.bazel @@ -1,4 +1,20 @@ load("@gazelle//:def.bzl", "gazelle") +load("@rules_proto//proto/private/rules:proto_toolchain_rule.bzl", "proto_toolchain") + +proto_toolchain( + name = "nixpkgs_protoc_toolchain", + proto_compiler = "@nixpkgs_protobuf//:bin/protoc", + visibility = ["//visibility:public"], +) + +toolchain( + name = "nixpkgs_protobuf_toolchain", + toolchain_type = "@rules_proto//proto:toolchain_type", + exec_compatible_with = [ + "@rules_nixpkgs_core//constraints:support_nix" + ], + toolchain = ":nixpkgs_protoc_toolchain", +) # gazelle:prefix github.com/Qarik-Group/disruptor/projects/bzl7 gazelle( diff --git a/projects/bzl7/MODULE.bazel b/projects/bzl7/MODULE.bazel index 00469c5..dbecc2d 100644 --- a/projects/bzl7/MODULE.bazel +++ b/projects/bzl7/MODULE.bazel @@ -8,12 +8,12 @@ bazel_dep(name = "aspect_rules_py", version = "0.7.1") bazel_dep(name = "gazelle", version = "0.36.0") bazel_dep(name = "grpc", version = "1.62.1") bazel_dep(name = "rules_cc", version = "0.0.9") -bazel_dep(name = "rules_go", version = "0.46.0") +bazel_dep(name = "rules_go", version = "0.50.1") bazel_dep(name = "rules_nixpkgs_cc") bazel_dep(name = "rules_nixpkgs_core", version = RULES_NIX_PKGS_VERSION) -bazel_dep(name = "rules_proto", version = "6.0.0-rc3") +bazel_dep(name = "rules_proto", version = "6.0.0") bazel_dep(name = "rules_python", version = "0.31.0") -bazel_dep(name = "platforms", version = "0.0.9") +bazel_dep(name = "platforms", version = "0.0.10") bazel_dep(name = "protobuf", version = "26.0.bcr.1") # fix for extra_flags_per_feature, not published yet to BCR @@ -63,7 +63,12 @@ cc_library( ) """, ) -use_repo(nix_pkg, "boost") +nix_pkg.attr( + name = "nixpkgs_protobuf", + attr = "protobuf", + repo = "@nixpkgs", +) +use_repo(nix_pkg, "boost", "nixpkgs_protobuf") non_module_deps = use_extension("//toolchains:defs.bzl", "non_module_deps") use_repo( @@ -124,3 +129,5 @@ use_repo( go_deps, "org_golang_google_grpc", ) + +register_toolchains("//:nixpkgs_protobuf_toolchain") From a9f9326cb4f073ce3ba02e807bc326f5c1d2b498 Mon Sep 17 00:00:00 2001 From: kczulko Date: Tue, 24 Sep 2024 16:08:45 +0200 Subject: [PATCH 10/10] fix: don't use --crosstool_top flag --- projects/bzl7/.bazelrc | 1 - 1 file changed, 1 deletion(-) diff --git a/projects/bzl7/.bazelrc b/projects/bzl7/.bazelrc index 764dbc9..5e45693 100644 --- a/projects/bzl7/.bazelrc +++ b/projects/bzl7/.bazelrc @@ -1,4 +1,3 @@ -build --crosstool_top=@gcc_12//:toolchain build --incompatible_enable_cc_toolchain_resolution build --incompatible_enable_proto_toolchain_resolution build --incompatible_strict_action_env