Skip to content

Conversation

shs96c
Copy link
Member

@shs96c shs96c commented Aug 24, 2025

User description

Except contrib_rules_jvm, which has a changed parameter I've not yet investigated.


PR Type

Other


Description

  • Update Bazel rulesets to latest versions

  • Bump 15+ dependencies including aspect_bazel_lib, rules_dotnet

  • Modernize build system dependencies

  • Skip contrib_rules_jvm due to parameter changes


Diagram Walkthrough

flowchart LR
  A["MODULE.bazel"] --> B["Update 15+ Bazel dependencies"]
  B --> C["Latest ruleset versions"]
  B --> D["Skip contrib_rules_jvm"]
Loading

File Walkthrough

Relevant files
Dependencies
MODULE.bazel
Bump Bazel rulesets to latest versions                                     

MODULE.bazel

  • Update 15+ Bazel ruleset dependencies to latest versions
  • Major version bumps for buildifier_prebuilt, rules_oci, platforms
  • Minor version updates for aspect rules and other build tools
  • Keep contrib_rules_jvm unchanged due to parameter investigation needed
+16/-16 

Except `contrib_rules_jvm`, which has a changed parameter I've not
yet investigated.
@selenium-ci selenium-ci added the B-build Includes scripting, bazel and CI integrations label Aug 24, 2025
Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Compatibility Risk

Multiple major/minor version bumps (e.g., buildifier_prebuilt 6.x→8.x, platforms 0.0.x→1.0.0, rules_oci 1.x→2.x) may introduce breaking changes or require new module tags/flags. Verify downstream usages, tool versions, and any migration notes for these rulesets.

bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
bazel_dep(name = "contrib_rules_jvm", version = "0.27.0")
bazel_dep(name = "platforms", version = "1.0.0")

# Required for the closure rules
bazel_dep(name = "protobuf", version = "29.2", dev_dependency = True, repo_name = "com_google_protobuf")

# Required for rules_rust to import the crates properly
bazel_dep(name = "rules_cc", version = "0.2.0", dev_dependency = True)

bazel_dep(name = "rules_dotnet", version = "0.19.2")
bazel_dep(name = "rules_java", version = "8.7.1")
bazel_dep(name = "rules_jvm_external", version = "6.8")
bazel_dep(name = "rules_multitool", version = "1.9.0")
bazel_dep(name = "rules_nodejs", version = "6.5.0")
bazel_dep(name = "rules_oci", version = "2.2.6")
bazel_dep(name = "rules_pkg", version = "1.1.0")
bazel_dep(name = "rules_python", version = "1.5.3")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "rules_ruby", version = "0.20.1")
Ordering/Resolution

Adding new bazel_dep entries and changing versions may affect module resolution order. Ensure no duplicate or conflicting versions are pulled via transitive deps, and validate that the single_version_override for rules_jvm_external still pins as intended with the updated graph.

bazel_dep(name = "apple_rules_lint", version = "0.4.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.21.1")
bazel_dep(name = "aspect_rules_esbuild", version = "0.22.1")
bazel_dep(name = "aspect_rules_js", version = "2.4.2")
bazel_dep(name = "aspect_rules_ts", version = "3.7.0")
bazel_dep(name = "bazel_features", version = "1.35.0")
bazel_dep(name = "bazel_skylib", version = "1.8.1")
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
bazel_dep(name = "contrib_rules_jvm", version = "0.27.0")
bazel_dep(name = "platforms", version = "1.0.0")

# Required for the closure rules
bazel_dep(name = "protobuf", version = "29.2", dev_dependency = True, repo_name = "com_google_protobuf")

# Required for rules_rust to import the crates properly
bazel_dep(name = "rules_cc", version = "0.2.0", dev_dependency = True)

bazel_dep(name = "rules_dotnet", version = "0.19.2")
bazel_dep(name = "rules_java", version = "8.7.1")
bazel_dep(name = "rules_jvm_external", version = "6.8")
bazel_dep(name = "rules_multitool", version = "1.9.0")
bazel_dep(name = "rules_nodejs", version = "6.5.0")
bazel_dep(name = "rules_oci", version = "2.2.6")
bazel_dep(name = "rules_pkg", version = "1.1.0")
bazel_dep(name = "rules_python", version = "1.5.3")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "rules_ruby", version = "0.20.1")

# Until `rules_jvm_external` 6.8 ships
single_version_override(
    module_name = "rules_jvm_external",
Skipped JVM Rules

contrib_rules_jvm remains at 0.27.0 due to parameter changes; confirm builds/tests for JVM targets still pass and document any follow-up migration steps required before bumping it.

bazel_dep(name = "contrib_rules_jvm", version = "0.27.0")
bazel_dep(name = "platforms", version = "1.0.0")

Copy link
Contributor

qodo-merge-pro bot commented Aug 24, 2025

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Guard platforms major upgrade

Major bump of platforms can change constraint labels and transitions,
potentially breaking toolchains. Gate this update behind a module override or
add a compatibility note to ensure all toolchains and platform selectors are
updated before merging.

MODULE.bazel [12]

-bazel_dep(name = "platforms", version = "1.0.0")
+single_version_override(
+    module_name = "platforms",
+    version = "0.0.11",
+)
+# TODO: audit toolchains and constraints, then remove override to use 1.0.0
  • Apply / Chat
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies a high-risk major version upgrade of platforms from 0.0.11 to 1.0.0, which could introduce breaking changes and cause build failures.

Medium
Mitigate rules_oci v2 breakages

rules_oci v2 introduces breaking changes to repository and rule names; without
corresponding WORKSPACE/MODULE and BUILD updates, fetch or build may fail. Add a
temporary compatibility override or include a migration comment to ensure
consuming targets are updated.

MODULE.bazel [25]

-bazel_dep(name = "rules_oci", version = "2.2.6")
+# If repository rule usages aren't migrated yet, pin temporarily:
+# bazel_dep(name = "rules_oci", version = "1.8.0")
+# TODO: migrate to v2 rule/repo names and then remove this pin.
  • Apply / Chat
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies that upgrading rules_oci from version 1.x to 2.x involves breaking changes, which could cause build failures if not handled throughout the codebase.

Medium
General
Align buildifier versioning stability

Verify that the selected buildifier version is compatible with your Bazel
version and CI formatting checks. If your workflows or pre-commit hooks expect a
different major format behavior, pin to a stable minor or align tooling configs
to avoid formatting diffs and CI breakage.

MODULE.bazel [10]

-bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
+bazel_dep(name = "buildifier_prebuilt", version = "8.2.0")
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies a potential CI breakage issue due to a major version bump of the buildifier_prebuilt formatting tool, which is a valid and helpful observation.

Low
  • Update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B-build Includes scripting, bazel and CI integrations Review effort 2/5
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants