Open
Conversation
0e87a93 to
2619736
Compare
- Add .bazelrc with enable_workspace=true (required for Bazel 8) - Update .bazelversion to 8.0.0 - Replace cfg = "host" with cfg = "exec" (deprecated in Bazel 8) - Remove output_to_genfiles attribute (removed in Bazel 8) - Update rules_python to 1.0.0 (PyInfo provider moved) - Update rules_rust to 0.56.0 - Add rules_cc 0.0.17 dependency - Update rules_jvm_external to 6.6 Note: Build is blocked on Java toolchain compatibility issues. See dependencies/bazel-8-upgrade-plan.md for details.
Switch from WORKSPACE to MODULE.bazel as the primary build configuration. This enables rules_java 8.x which is required for Bazel 8 (rules_java 7.x creates dependency cycles in WORKSPACE mode). - Add MODULE.bazel with BCR dependencies and extension configurations - Remove --enable_workspace=true from .bazelrc (Bzlmod now default) - Add deprecation notices to WORKSPACE and legacy .bzl files - WORKSPACE kept functional for backward compatibility
The doc_hub.bzl loads rules from //docs/doxygen:rules.bzl and //docs/python:rules.bzl which requires these directories to be Bazel packages. Add BUILD files with bzl_library targets and move the sphinx_runner target to the python subpackage.
Note: LLVM toolchain configuration moved to typedb_dependencies repo, which is the root module when building downstream repos.
Configure toolchains_llvm for standalone builds only using dev_dependency. This allows bazel-distribution to build independently while avoiding conflicts when used as a dependency (where the root module must configure its own LLVM toolchain).
Documents current Bzlmod migration state: - 52/53 targets build successfully - Only //:docs targets fail (stardoc/bzl_library issue)
The struct.to_json() method was removed in Bazel 8. Use json.encode() which is the new standard way to encode objects to JSON.
Set TZ=UTC in the sphinx runner environment to fix babel/zoneinfo error in sandboxed Bazel builds where TZ may be set to /UTC.
Bazel 8 requires directory outputs to be declared with declare_directory() rather than attr.output(). Changed to use attr.string + declare_directory, matching the doxygen_docs rule.
Reorganize the flat MODULE.bazel structure into clearly delineated sections so that related bazel_dep, extension, toolchain, and use_repo calls are co-located. No functional changes.
a3d729d to
ebed626
Compare
lolski
commented
Feb 24, 2026
| type: foreground | ||
| command: | | ||
| bazel build //... | ||
| bazel build //... --extra_toolchains=@llvm_toolchain//:all -- -//:docs -//:docs.extract |
Member
Author
There was a problem hiding this comment.
Excluded docs since I can't yet get it to work
Member
dmitrii-ubskii
left a comment
There was a problem hiding this comment.
Mostly questions.
The following files are kept for backwards compatibility [...]
.bazelrc: Created with Bzlmod migration comment
No it wasn't 🤔
But even so, is .bazelrc even deprecated? I see no indication of that in the docs (https://bazel.build/versions/8.5.0/run/bazelrc)
dmitrii-ubskii
approved these changes
Feb 27, 2026
maven/deps.bzl
Outdated
Comment on lines
+20
to
+24
| "com.eclipsesource.minimal-json:minimal-json", | ||
| "com.eclipsesource.minimal-json:minimal-jsonz", |
Use Label() instead of a plain string for the uploader dep in all deploy macros (artifact, maven, pip, apt, helm). Plain string labels in macros are resolved relative to the calling repo, causing 'no such package common/uploader' errors when macros are invoked from external repos. Label() resolves relative to the .bzl file's own repo at load time. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The label `//docs:doxygen/doxyfile.template` references a file across a package boundary. Since `docs/doxygen/` has its own BUILD file, the correct label is `//docs/doxygen:doxyfile.template`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Update Bazel version from 6.2 to 8.5.1.
The upgrade is done in a backwards-compatible way, such that "upstream" repositories that are yet to be upgraded may depend on this repository. This is done by preserving a few Bazel 6 configs (WORKSPACE, etc) alongside the new Bazel 8 ones. Once every repositories have been upgraded to Bazel 8, these files will be removed.
Implementation
Create MODULE.bazel
The new module declaration is organized into these sections:
We've also done syntactic changes to fix broken rules during the upgrade, here's a few examples:
cfg = "host"updated tocfg = "exec"output_to_genfiles = Trueremoved in various places.struct.to_json()tojson.encode()The following files are kept for backwards compatibility, and will be removed when all repos have been