From f8ee961180310364cc6fb53124a53f039ff446b9 Mon Sep 17 00:00:00 2001 From: Maxwell Elliott Date: Thu, 19 Feb 2026 11:04:10 -0500 Subject: [PATCH 1/3] More fixes for BCR Fixes for E2e tests for the BCR --- .bcr/presubmit.yml | 26 ++- MODULE.bazel.lock | 2 +- .../test/kotlin/com/bazel_diff/e2e/E2ETest.kt | 4 +- .../cquery-test-android-code-change.zip | Bin 9826 -> 9834 bytes .../resources/fixture/cquery-test-base.zip | Bin 9814 -> 9822 bytes .../fixture/cquery-test-guava-upgrade.zip | Bin 9819 -> 9827 bytes .../workspaces/distance_metrics/A/BUILD | 2 + .../workspaces/distance_metrics/BUILD | 1 + .../workspaces/distance_metrics/MODULE.bazel | 7 + .../distance_metrics/MODULE.bazel.lock | 193 ++++++++++++++++++ 10 files changed, 226 insertions(+), 9 deletions(-) create mode 100644 cli/src/test/resources/workspaces/distance_metrics/MODULE.bazel create mode 100644 cli/src/test/resources/workspaces/distance_metrics/MODULE.bazel.lock diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml index 38d0eff9..666ce3b0 100644 --- a/.bcr/presubmit.yml +++ b/.bcr/presubmit.yml @@ -8,30 +8,36 @@ tasks: name: Verify build targets (Debian 10) platform: debian10 bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' build_targets: - '@bazel-diff//:bazel-diff' verify_targets_ubuntu2004: name: Verify build targets (Ubuntu 20.04) platform: ubuntu2004 bazel: ${{ bazel }} - build_targets: - - '@bazel-diff//:bazel-diff' - verify_targets_macos: - name: Verify build targets (macOS) - platform: macos - bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' build_targets: - '@bazel-diff//:bazel-diff' verify_targets_macos_arm64: name: Verify build targets (macOS ARM64) platform: macos_arm64 bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' build_targets: - '@bazel-diff//:bazel-diff' verify_targets_windows_7x: name: Verify build targets (Windows, Bazel 7.x) platform: windows bazel: "7.x" + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' build_targets: - '@bazel-diff//:bazel-diff' verify_targets_windows_8x: @@ -40,6 +46,8 @@ tasks: bazel: "8.x" build_flags: - '--legacy_external_runfiles' + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' build_targets: - '@bazel-diff//:bazel-diff' verify_targets_windows_9x: @@ -48,6 +56,8 @@ tasks: bazel: "9.x" build_flags: - '--legacy_external_runfiles' + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' build_targets: - '@bazel-diff//:bazel-diff' bcr_test_module: @@ -55,7 +65,6 @@ bcr_test_module: matrix: platform: - ubuntu2004 - - macos - macos_arm64 bazel: - 8.x @@ -65,5 +74,8 @@ bcr_test_module: name: Run test platform: ${{ platform }} bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++17' + - '--host_cxxopt=-std=c++17' test_targets: - '//cli/...' \ No newline at end of file diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index fbd6f422..b170f1d8 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -477,7 +477,7 @@ "//:extensions.bzl%non_module_repositories": { "general": { "bzlTransitiveDigest": "+11C3Nl1PrqDZuEZBkWEY/1862q4s4Wb0bsOaKjAMhk=", - "usagesDigest": "p85yVaVQuE93QwO5LhDv/rb0pKov2MxNiuqVIAOFvjY=", + "usagesDigest": "kmdMPJAv+MdBe06gMQYvgoPevgzubgjzWh0pu4oZ9GM=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, diff --git a/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt b/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt index a7759be3..88436c1e 100644 --- a/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt +++ b/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt @@ -22,6 +22,7 @@ class E2ETest { return targets.filter { target -> // Filter out bazel-diff's own internal test targets !target.contains("bazel-diff-integration-tests") && + !target.contains("@@//:BUILD") && !target.contains("bazel_diff_maven") // Filter out bazel-diff's maven dependencies }.toSet() } @@ -705,7 +706,8 @@ class E2ETest { mapOf("label" to "//A:two.sh", "targetDistance" to 2.0, "packageDistance" to 0.0), mapOf("label" to "//A:two", "targetDistance" to 3.0, "packageDistance" to 0.0), mapOf("label" to "//A:three", "targetDistance" to 4.0, "packageDistance" to 0.0), - mapOf("label" to "//:lib", "targetDistance" to 5.0, "packageDistance" to 1.0)) + mapOf("label" to "//:lib", "targetDistance" to 5.0, "packageDistance" to 1.0), + mapOf("label" to "//bazel-distance_metrics:lib", "targetDistance" to 5.0, "packageDistance" to 1.0)) assertThat(actual.size).isEqualTo(expected.size) diff --git a/cli/src/test/resources/fixture/cquery-test-android-code-change.zip b/cli/src/test/resources/fixture/cquery-test-android-code-change.zip index df225cf65429585043309ab4de139bd553d52f5a..3e2a911f91e16b2138a7abe379668fa25bb9f837 100644 GIT binary patch delta 1975 zcmaFl^U8-Oz?+$civa{e=1t@=7Xz^@^i1^(xezk7GbTpr3xH%$#AcXairulm5Sy&R z=mHlM0UE-=P&;FC1!D{&!{n=sw-{$k-oWGuWdCCN3}nA!HfChlti&>j5y;ufY66sa z#cBp*E3!EN*-311_13jPG2%Xl_b&ySwSb9%ft5jq!70?!$0am`lYv=KWm@JFrD>U^ z72FJrEZ-Oz7+63q-#XzSSF-_6+xuFsmzm59%M&+zmoUmY8{?L{w6iIH|1HBg#T?c% zocTR}eEMpBPmsO0Z#~PI7qgmABw5~dDm$g}`hvrp-Xj-I*_^FsQ(1FCslV{C($rbf zuGhoGdUc8mMGl?$;CNeZTE^Q~4>rbaI(sTTz1zLvF0a++F7c)1>ES&aK*%?bB}xgTfaQL>g5=F&&;8Uhn}uupH<~ z9-t?E{ar$RT@DNJ9xqf};t!ua5tt_75Y4qOqS*ll=dtk^7_erG^`&yQWpSk8$-ge|+$E^a@ zyTx3Z0bYELJCk2HF3^lJ+obzcvi^nSCHE;CwLhc9B@632J^3BIbPCB5z;s$KY>X**NEk~p=Mu5O zR2e4X0T+a){dFRdKo@X`HUTZ|77fBw@K!V&sK8ZhCQ!kBu>>I7K|B@6UM3F8G|Uq1 zAdM2SK=wx4~simV@!Fx+!rWYe$-=g0+P6TT>Ci%nQT9@!;uvkTwdx z1Z{@Nr3wN(?>HD3AO;jAPyQ$`VhFMU*%h@j++!RJyL2XTGBErMWnd6vKz2nmC&T0d zPRYsd6@>H=I$`nW9s?4C0T!rE1_l9!w~n@x4HTu3f)u7_a;%~ZWA)@JMFnh<4zeQ;$ZimQPD5}1uS}0OV5vVmx6Amji>q>l`U2LQrS437W+ delta 1904 zcmaFm^T>xMz?+$civa{e+9vXti-`bP7J8<7hFl1l+J=dd`T`&s6tNj5m|}MC{v*+9VcyJc(2 z)usu1176s6ose+1R#ltS)3n`ut4Ox4lX%)p$$Rymw{C8;KW5141jUC-DswLE0)&8o-6 z8;%}+{E%%flgGm#MGE`sSC0kOa|0T^lV=KeitJ9f^=aDNwS}+pA0B15 zT+L{;)T;4@%ZL~Pon#BEmo*SLp zx9;AZ@2g5zz5o4w5kGPgocxQ!2$(2zIW2(+B%KqOKsK-7T)+wBcna&m(;Osu1Jhi) zura3KDPb&0R!GDKQ)Qfp2V4-Ij<<HGl2@8izNWr z9^$D$_BwG;2H=)x2Wgau1+qU%Oaii7B*TF0+miEu>?$c=pqEZaO=M(jn;a$MCF3kU?yQ$(m0=;fx*|`CDg}N zFDbDqH77KLm4O*cRzeHLLIoMdXOsIBWuRiF*v#eNciE>Rbi}0fx7Z#SoqPxrv#1Ann*}@Q{^Z+&1~5qAE5?4ka0; zf5Ma1lr*r(CMd};dQE<)q&Rt=l88RSX^8N?S12V_0(9C;Al63-$wfeYZrBX9RF+|` z7iE~7FCss=Tv^T#o3W?LeYbQ2jXVy-x+umzgz9{%tc+wh%t4c-RAiVhi$M&JP|?9^ zIFA%>U?tGt^+0TdV)!g^hROTIO(zG)31KswPZj8L35el7s+w30m)E%zGXZGuVIbB) oF}y$$rjv8>IaNt)7W@QSkR}CDwoXnGn3Dt5gxOqVfMziO02d|n`v3p{ diff --git a/cli/src/test/resources/fixture/cquery-test-base.zip b/cli/src/test/resources/fixture/cquery-test-base.zip index 8df8926382164320e9ce1041b1b9927dee3a73fb..2f1d4098e498aa95616cd37c4d0f592c2c4040bb 100644 GIT binary patch delta 2049 zcmccSbI*q-z?+$civa{e=1t@=7Xz^@^i1^(xezk7GbTpr3xH%$#AcXairulm5Sy&R z=mHlM0UE-=P&;FC1!D{&!{n=sw-{$k-oWGuWdCCN3}nA!HfChlti&>j5y;ufY66sa z#cBp*E3!EN*-311_13jPG2%Xl_b&ySwSb9%ft5jq!70?!$0am`lYv=KWm@JFrD>U^ z72FJrEZ-Oz7+63q-#XzSSF-_6+xuFsmzm59%M&+zmoUmY8{?L{w6iIH|1HBg#T?c% zocTR}eEMpBPmsO0Z#~PI7qgmABw5~dDm$g}`hvrp-Xj-I*_^FsQ(1FCslV{C($rbf zuGhoGdUc8mMGl?$;CNeZTE^Q~4>rbaI(sTTz1zLvF0a++F7c)1>ES&aK*%?bB}xgTfaQL>g5=F&&;8Uhn}uupH<~ z9-t?E{ar$RT@DNJ9xqf};t!ua5tt_75Y4qOqS*ll=dtk^7_erG^`&yQWpSk8$-ge|+$E^a@ zyTx3Z0bYELJCk2HF3^lJ+obzcvi^nSCHE;CwLhc9B@632J^3BIbPCB5z;s$KY>X**NEk~p=Mu5O zR2e4X0T+a){dFRdKo@X`HUTZ|77fBw@K!V&sK8ZhCQ!kBu>>I7K|B@6UM3F8G|Uq1 zAdM2SK=w&QnytCJBs6#(k6bDykZQ%*JP@5Q?2_B9k{N zi%eEi62WGwkCF^i5J-i>|~oQoMncKuzm`*a$`AB5|<)52$D$g%Hff$-h)&nA#=4{&!SW!0Hcqol7wjfW{sM zVjUEtb0$wvb;jzPuobV@HUd2x1gzqeQS>B9ft@o;PErbJ9x$d^*+8^35OM&Mih~S@ F2LKXM6D$A# delta 1914 zcmccTbIpe*z?+$civa{e+9vXti-`bP7J8<7hFl1l+J=dd`T`&s6tNj5m|}MC{v*+9VcyJc(2 z)usu1176s6ose+1R#ltS)3n`ut4Ox4lX%)p$$Rymw{C8;KW5141jUC-DswLE0)&8o-6 z8;%}+{E%%flgGm#MGE`sSC0kOa|0T^lV=KeitJ9f^=aDNwS}+pA0B15 zT+L{;)T;4@%ZL~Pon#BEmo*SLp zx9;AZ@2g5zz5o4w5kGPgocxQ!2$(2zIW2(+B%KqOKsK-7T)+wBcna&m(;Osu1Jhi) zura3KDPb&0R!GDKQ)Qfp2V4-Ij<<HGl2@8izNWr z9^$D$_BwG;2H=)x2Wgau1+qU%v;o-_l3_shdC7S|cAk_k&`W!yCNeU%P4<&<6arZr z;LXS+#|-z>LK#bJ!f#~kunF79I$;x@AnS)D4ENjz*)(jz8FIncgwM*^ViT5;M|KI^ z>>PP7BZPNg!st0$0_b4|24M1MSkkzSje%jZwwk0qx;B*T11u1D7?8EipKPEY;)x|Q zp$4RT%-{G!Iod#*K$ru?h-VxO40=h4RjD~e$&(G#L@-bLM^>Y(5^Ck<( zN?}v?M^T39pYUV_RguYhO33bpxxqaK=vz3DgSwl6L4e_{qu1m@B~v6*VUaX>hms8A zBA}$=WCvBw$^VsPkQBiTo~)}Z!&EN{v|3@Zj|$i1Qe_b&RdAzb164glsL~f>pZrQ$ z2%Abi6&a?>Vo>vRu&L+*s+c7XR&h^UZ1O!7A*>Pg=V6^+1<=cLf!G)&qUtBht9oHG zxms0*DMb=!vgYJNs*>1LyalR=k^n5y;ueY66sa z$7%*-tFk!&*=cNX_13jPG2%Xl_b&ySwSb9%ft5jq!70?!$0am`lYv=KWm@J%qv@HY z72FJrEZ-Oz7+63q-#XzSSF-_6+xuFsmzm59%M&+zmoUmY8{?L{w6iIH|1HBg#T?c% zocTR}eEMpBPmsO0Z#~PI7qgmABw5~dDm$g}`hvrp-Xj-I*_^FsQ(1FCslV{C($rbf zuGhoGdUc8mMGl?$;CNeZTE^Q~4>rbaI(sTTz1zLvF0a++F7c)1>ES&aK*%?bB}xgTfaQL}B5Iz_aJGsD^sjEz=EaR&lKi`oDP9 zgh(D16|Ro`BFGi_P=rEn#`U($J>Hx{b*JVZplPCU|gsC~j$rrfn9={F2zJf+ty z;Z~pEFl&=@z&nX5fs`&W_d7xF>J|4oe3DLm!&S9)iE5YbSH4Z1;w2W7tohq)0(R9L zk^BC|;@o{kwo|h&C(pBc`9pMviCAk#Q-RTyY1b>ZrUli15=?)y$|_?@7K@{?5AV~> z=g+PC9lW|z*7iqboXOWy1*=V#>pSUR`=-{P-0qR6=kQYP+wRZpr?wwmyS`=9rLJ&$ z?qBVbZaWsuKL3v?lWp~{`Mj#j-?IL{F-3ZYv#VVx&vf|%uXjbH@A65XuRU#*-TniL z70k%#cJg-)BVbC>;P133LIkXcN%V38F!m3O*iVB9;JTyNag**{j7txrRfc z9i&kr7RY`l(FSCfN`?X1XC&tV+1XOQKrii-n#jmFZ?dQ$w zn0!HAz8+KrpyddN{~;PMvz7$NOa@?1V_4ESkDURU(O~(Em4O*c9zzXL_n5!&hjO%m zCTKGVf{Hj~BR@~BSCGf%%MA)Lj0uy^D(E6f!sCcXQHI?~n1P|VD0y@@*BY?)VS1q(=he8#9mv*xXT}D#KhT2~wgldA}-F jr@jIzNtc3HHeXIs3g{AGXtJ__XlWqi045Sw84wQuP1geG delta 1930 zcmaFtbK8d}z?+$civa{e+9vXti-`bP7J8<7hFl1l+J=dd`T`&s6tNj5m|}M+A3B@13iA_{^VI8voUQ?7Z3Nep>(9RSVu_9ge1^M{j$seDjX! z{j6hsWxDoOHn$3xK!FJfk28zBVhqc2=P@xdFq8v*!~^t^ufI#EkE>o%VpVERXb2|* z^MB@^Ob{-u;AUWC`36)9*1b09U|zEU&)(0X^?`mNi`cwOeLW_BlMilnGStyf(coP1 z>bgGXhPAI(#Xf7EeB=Gz8--bAu7Rc&$0qT5#Bp4m>=67lC(T6BIP37#FCWuS^iQ}L z8)CocjB~4aca%|~cWu+5kBb`5zBoVmAj1?p`ODXg$URyPHHKa#RoG(YT1^Q7ONMbUcyI4T)u|C-O6`ujHb zzm1yq2K`;mT8gjvALK^o8pkd#p1=Cqs(t$p=>38wOEzHigOb*N4kKVnG2*lYrkWg1 zV5-@?mU96okmDz;2TzEQG!InWBW#Q*cwQJwIu;kP!Bm+n;sF$5^X?stz;OGeMNE} zkX~oRX72CioaS! zfyQf1u2RNo`~qbere_cpFO(&bf(+&W_n7YQb8d$NgRBsU&7ej@BJsv#0~KE+Z^86T z?pKjvnlBFa)>#z|BnQJ(xX1i?Sm##(G;uBv8>5)oA_3M2@~xjLa-hRBPi|0^Vak+* zs#3ygeAtTDYa4;C3}RtmP)0F6UJ9(yKuuB#WMF_dE4Y}FW{_s!0LHnk3{a2(0DP Date: Thu, 19 Feb 2026 12:53:52 -0500 Subject: [PATCH 2/3] updates --- cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt b/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt index 88436c1e..b9418743 100644 --- a/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt +++ b/cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt @@ -696,9 +696,13 @@ class E2ETest { val gson = Gson() val shape = object : TypeToken>>() {}.type val actual = - gson.fromJson>>(impactedTargetsOutput.readText(), shape).sortedBy { - it["label"] as String - } + gson.fromJson>>(impactedTargetsOutput.readText(), shape) + .filter { target -> + // Filter out Bazel convenience symlink targets (bazel-*) as they're not reliably + // present across all environments + !(target["label"] as String).contains("//bazel-") + } + .sortedBy { it["label"] as String } val expected: List> = listOf( mapOf("label" to "//A:one", "targetDistance" to 0.0, "packageDistance" to 0.0), @@ -706,8 +710,7 @@ class E2ETest { mapOf("label" to "//A:two.sh", "targetDistance" to 2.0, "packageDistance" to 0.0), mapOf("label" to "//A:two", "targetDistance" to 3.0, "packageDistance" to 0.0), mapOf("label" to "//A:three", "targetDistance" to 4.0, "packageDistance" to 0.0), - mapOf("label" to "//:lib", "targetDistance" to 5.0, "packageDistance" to 1.0), - mapOf("label" to "//bazel-distance_metrics:lib", "targetDistance" to 5.0, "packageDistance" to 1.0)) + mapOf("label" to "//:lib", "targetDistance" to 5.0, "packageDistance" to 1.0)) assertThat(actual.size).isEqualTo(expected.size) From 48c6bc5e67de6eaefe544c296bb0194989b1ea21 Mon Sep 17 00:00:00 2001 From: Maxwell Elliott Date: Thu, 19 Feb 2026 13:27:44 -0500 Subject: [PATCH 3/3] version --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 05d1f69f..efcc831b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "bazel-diff", - version = "15.0.1", + version = "15.0.2", compatibility_level = 0, )