Skip to content

Conversation

@bmd3k
Copy link
Contributor

@bmd3k bmd3k commented Sep 22, 2022

Commits for TensorBoard 2.10.1 patch release to fix #5924 with cherry-pick of #5944.

Note: I will "Rebase and Merge" this PR. Please review each commit separately.

The change to use the esbuild bundler (tensorflow#5829) broke the projector plugin (tensorflow#5924).

The root cause is in the 'numeric' library, which we use for calculating the PCA. The library requires that the symbol 'numeric' is available in the global scope when its operations are executed by other modules. See, for example, how the definition of some of its operations refer to the string 'numeric' in the Function definition, unmodifiable by the
bundler/minification code:

https://github.com/sloisel/numeric/blob/656fa1254be540f428710738ca9c1539625777f1/src/numeric.js#L696

The esbuild bundler does not keep 'numeric' in global scope and instead renames it as part of bundling/minification. We work around this by manually adding it to global scope.

We introduce the wrapper tensorboard/webapp/third_party/numeric.ts to add 'numeric' to the global scope and require that tensorboard code import that wrapper rather than importing numeric directly. We add a CI check to ensure that numeric is not imported directly.
@bmd3k bmd3k requested a review from japie1235813 September 22, 2022 19:10
@bmd3k bmd3k merged commit a74c10d into tensorflow:2.10 Sep 22, 2022
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.

2 participants