Sync upstream tensorflow/tensorboard master (3 commits)#73
Conversation
Automated: Migrate {target_path} from gsutil to gcloud storage
This CL is part of the on going effort to migrate from the legacy
`gsutil` tool to the new and improved `gcloud storage` command-line
interface.
`gcloud storage` is the recommended and modern tool for interacting with
Google Cloud Storage, offering better performance, unified
authentication, and a more consistent command structure with other
`gcloud` components. 🚀
### Automation Details
This change was **generated automatically** by an agent that targets
users of `gsutil`.
The transformations applied are based on the [gsutil to gcloud storage
migration guide](http://go/gsutil-gcloud-storage-migration-guide).
### ⚠️ Action Required: Please Review and Test Carefully
While we have based the automation on the migration guide, every use
case is unique.
**It is crucial that you thoroughly test these changes in environments
appropriate to your use-case before merging.**
Be aware of potential differences between `gsutil` and `gcloud storage`
that could impact your workflows.
For instance, the structure of command output may have changed,
requiring updates to any scripts that parse it. Similarly, command
behavior can differ subtly; the `gcloud storage rsync` command has a
different file deletion logic than `gsutil rsync`, which could lead to
unintended file deletions.
Our migration guides can help guide you through a list of mappings and
some notable differences between the two tools.
Standard presubmit tests are run as part of this CL's workflow. **If you
need to target an additional test workflow or require assistance with
testing, please let us know.**
Please verify that all your Cloud Storage operations continue to work as
expected to avoid any potential disruptions in production.
### Support and Collaboration
The `GCS CLI` team is here to help! If you encounter any issues, have a
complex use case that this automated change doesn't cover, or face any
other blockers, please don't hesitate to reach out.
We are happy to work with you to test and adjust these changes as
needed.
**Contact:** `gcs-cli-hyd@google.com`
We appreciate your partnership in this important migration effort!
#gsutil-migration
Co-authored-by: gurusai-voleti <gvoleti@google.com>
## Motivation for features / changes This PR is the second step in a planned major Angular upgrade cycle, where each major version will be delivered in a separate PR, incrementally progressing until the project reaches Angular 21. This specific PR upgrades TensorBoard from Angular 16 to Angular 17 ## Technical description of changes - Upgrade Angular, NgRx, and Material from v16 to v17 - Upgrade TypeScript to 5.2.2 and zone.js to 0.14 - Use Node.js 18 in Bazel and CI (required by Angular 17) - Update build-tooling patch to match Angular 17 version - Fix Bazel TypeScript compiler crash caused by TypeScript 5.x - Fix 3 snackbar tests that broke due to Material 17 behavior change - Remove deprecated Material legacy theme APIs ## Screenshots of UI changes (or N/A) ## Detailed steps to verify changes work correctly (as executed by you) - All 2022 webapp tests pass - yarn lint passes with Node 18 - App builds and runs locally ## Alternate designs / implementations considered (or N/A)
## Motivation for features / changes Unblock internal LSC intended to remove workarounds for Sass and bad practices. Internal issue: b/508363660. This PR removes the wrappers for Sass build rules. Sass rules must directly declare their dependencies. Per Sass build rules guidelines, wrapper macros are discouraged, and tf_external_sass_libray was relying on a loophole (passing a sass_library to another sass_library's srcs) that is being closed. ## Technical description of changes - Replace `tf_sass_binary`,`tf_sass_library`, and `tf_external_sass_libray` wrappers with direct calls to `sass_binary`, `sass_library`, and `npm_sass_library` from `@io_bazel_rules_sass`. - Updated hash version rules_sass from 1.55.0 to 1.69.5 - Replaces the angular_material_sass_deps target with a direct npm_sass_library call. This produces a SassInfo provider consumed via deps, complying with the rule that sass libraries must declare deps directly rather than passing one library to another's srcs. - Added `include_paths = ["external/npm/node_modules"]` to each sass_binary so dart-sass can resolve `@use '@angular/material'`. The old wrapper set this automatically, now it has to be set per target. ## Detailed steps to verify changes work correctly (as executed by you) - BUILD - Standalone running - No console errors
Automated sync from https://github.com/tensorflow/tensorboard Upstream commits (3): - 2e19048 refactor: remove deprecated Sass wrapper macros (tensorflow#7103) - af354e9 Angular upgrade from version 16 to 17 (tensorflow#7085) - 1dd4570 chore: Migrate gsutil usage to gcloud storage (tensorflow#7063) Conflict resolution: - Resolved modify/delete conflicts for tensorboard/ paths (fork uses tensorbored/) - Resolved Sass macro migration: tf_sass_binary -> sass_binary, tf_sass_library -> sass_library, tf_external_sass_libray -> npm_sass_library - Added include_paths to all sass_binary targets - Created tensorbored/webapp/angular_components/BUILD (new upstream target) - Updated angular_material_sass_deps refs to angular_components:material_sass - Kept tensorbored path naming throughout - Applied gsutil -> gcloud storage migration to DEVELOPMENT.md - Accepted Angular patch file whitespace exception Co-authored-by: Samuel <samuel@knutsen.co>
Co-authored-by: Samuel <samuel@knutsen.co>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ff40f7d. Configure here.
| ], | ||
| ) | ||
|
|
||
| def tf_sass_binary(deps = [], include_paths = [], strict_deps = True, **kwargs): |
There was a problem hiding this comment.
Missing sourcemap = False in migrated sass_binary calls
Low Severity
The removed tf_sass_binary wrapper explicitly set sourcemap = False when calling sass_binary. All replacement sass_binary calls across ~30 BUILD files omit this setting. Since sass_binary in @io_bazel_rules_sass defaults sourcemap to True, all Sass targets now generate .css.map source map files that were previously suppressed. This silently changes build output and could expose source file structure in production.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit ff40f7d. Configure here.
Preview Deployment
Details
|


Motivation for features / changes
Sync the fork with the latest upstream
tensorflow/tensorboardmaster branch. Three new upstream commits are merged:2e19048d9—refactor: remove deprecated Sass wrapper macros (#7103)tf_sass_binary,tf_sass_library, andtf_external_sass_libraywrappers with directsass_binary,sass_library, andnpm_sass_librarycalls from@io_bazel_rules_sassrules_sassfrom 1.55.0 to 1.69.5include_paths = ["external/npm/node_modules"]to eachsass_binaryfor dart-sass resolutionaf354e988—Angular upgrade from version 16 to 17 (#7085)1dd45704a—chore: Migrate gsutil usage to gcloud storage (#7063)gsutilCLI usage togcloud storageCLITechnical description of changes
Merge conflicts resolved:
tensorboard/modify/delete conflicts (15 BUILD files): The fork renamedtensorboard/totensorbored/, so upstream-modifiedtensorboard/BUILD files were correctly deleted (they don't belong in this fork).Sass macro migration for
tensorbored/BUILD files (18 files): Since git couldn't track the directory rename, the upstream's Sass macro removal was not auto-applied to thetensorbored/copies. Manually applied the same migration:tf_sass_binary(→sass_binary(withinclude_pathstf_sass_library(→sass_library(tf_external_sass_libray(→npm_sass_library(@io_bazel_rules_sassdirectlyNew
tensorbored/webapp/angular_components/BUILD: Created the fork-equivalent of the new upstreamnpm_sass_librarytargetmaterial_sass, and updated all 9 BUILD files that referenced the old//tensorbored/webapp:angular_material_sass_depstarget to use//tensorbored/webapp/angular_components:material_sass..github/workflows/ci.yml: Merged the fork'stensorboredpaths with upstream's newangular_componentsexclusion.tensorbored/data/server/DEVELOPMENT.md: Kept fork'stensorbored-bench-logsbucket name, applied upstream'sgsutil→gcloud storagemigration.tensorbored/tools/whitespace_hygiene_test.py: Accepted upstream's new exception for the Angular build-tooling patch file.Screenshots of UI changes (or N/A)
N/A — no UI changes, build system and dependency updates only.
Detailed steps to verify changes work correctly (as executed by you)
tf_sass_binary/tf_sass_library/tf_external_sass_librayreferences are removedsass_binarytargets haveinclude_paths = ["external/npm/node_modules"]angular_material_sass_depsreferences updated toangular_components:material_sass@io_bazel_rules_sasstensorboard/directory files remainAlternate designs / implementations considered (or N/A)
N/A — standard upstream sync following the existing
upstream-sync.ymlpattern.