Skip to content

Upgrade Bzlmod dependencies and improve NumPy 2.0 casting compatibility#342

Open
copybara-service[bot] wants to merge 1 commit into
mainfrom
cl/919044946
Open

Upgrade Bzlmod dependencies and improve NumPy 2.0 casting compatibility#342
copybara-service[bot] wants to merge 1 commit into
mainfrom
cl/919044946

Conversation

@copybara-service
Copy link
Copy Markdown

Upgrade Bzlmod dependencies and improve NumPy 2.0 casting compatibility

This CL introduces several Bzlmod dependency upgrades and core runtime/toolchain improvements:

  1. Bzlmod Dependency Alignments:

    • Upgrade @rules_python from 1.0.0 to 2.0.1 and @rules_cc from 0.0.9 to 0.2.17 in both MODULE.bazel and examples/MODULE.bazel to align toolchains across common packages.
    • Declare aspect-based dependencies (rules_cc and grpc) in MODULE.bazel to support standard Bzlmod proto loaders.
  2. Robust, re-free NumPy 2.0 Casting Checks:

    • Upstream standard warnings context manager and ValueError/TypeError exceptions catching inside dtype_utils.py to handle NumPy 2.0 casting overflow check differences (adopting NEP 50).
    • Integrate a robust, re-free string version parser (_parse_version_string) using basic string splitting (split('.')) and digit extraction. This completely removes the regex import re dependency and safely handles pre-releases (e.g. '2.0rc1'), dev builds (e.g. '2.0.0.dev0'), and incomplete version strings without runtime crashes.
    • Expose structure target visibility directly as public inside common_libs/BUILD to satisfy Bazel's strict dependencies checks for downstream consumers.
  3. Encapsulate Dev Requirements Tooling:

    • Move toolchain-dependent compile_pip_requirements targets and @python loads out of the root workspace.BUILD.bazel to a dedicated subpackage tools/requirements/BUILD.
    • This completely prevents Bzlmod transitive loading and analysis failures for external downstream consumers, while fully preserving lock-file regeneration capabilities for developers.
    • Export requirements lock files in workspace.BUILD.bazel via exports_files to resolve subpackage visibility rules.

This CL introduces several Bzlmod dependency upgrades and core runtime/toolchain improvements:

1. Bzlmod Dependency Alignments:
   - Upgrade `@rules_python` from `1.0.0` to `2.0.1` and `@rules_cc` from `0.0.9` to `0.2.17` in both `MODULE.bazel` and `examples/MODULE.bazel` to align toolchains across common packages.
   - Declare aspect-based dependencies (`rules_cc` and `grpc`) in `MODULE.bazel` to support standard Bzlmod proto loaders.

2. Robust, re-free NumPy 2.0 Casting Checks:
   - Upstream standard warnings context manager and ValueError/TypeError exceptions catching inside `dtype_utils.py` to handle NumPy 2.0 casting overflow check differences (adopting NEP 50).
   - Integrate a robust, `re`-free string version parser (`_parse_version_string`) using basic string splitting (`split('.')`) and digit extraction. This completely removes the regex `import re` dependency and safely handles pre-releases (e.g. `'2.0rc1'`), dev builds (e.g. `'2.0.0.dev0'`), and incomplete version strings without runtime crashes.
   - Expose `structure` target visibility directly as public inside `common_libs/BUILD` to satisfy Bazel's strict dependencies checks for downstream consumers.

3. Encapsulate Dev Requirements Tooling:
   - Move toolchain-dependent `compile_pip_requirements` targets and `@python` loads out of the root `workspace.BUILD.bazel` to a dedicated subpackage `tools/requirements/BUILD`.
   - This completely prevents Bzlmod transitive loading and analysis failures for external downstream consumers, while fully preserving lock-file regeneration capabilities for developers.
   - Export requirements lock files in `workspace.BUILD.bazel` via `exports_files` to resolve subpackage visibility rules.

PiperOrigin-RevId: 919044946
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant