* update py import for auto tracking
* [e2e] Use ios12 and report karma seed (#7984)
* [e2e] Use ios12 and report karma seed
* Update karma.conf.js
---------
Co-authored-by: Matthew Soulanille <msoulanille@google.com>
* Disable firefox browserstack tests temporarily
* Remove unused WebGL scripts
* Update test-ci.sh
* Always use port 9876 for karma
* Always use port 9200 for karma
Browserstack supports ports 9200-9400 for safari
testing (https://www.browserstack.com/question/39572), and when karma launches
and its port is in use, it automatically increments the port. Starting at 9200
ensures the port is always supported by BrowserStack.
* Fix bash npm-run-all script
* Fix tfjs-vis test script
* Update karma.conf.js
* Update automl macos test version
---------
Co-authored-by: Ping Yu <4018+pyu10055@users.noreply.github.com>
Some TFJS packages, like wasm, have examples or demos in them. These usually depend on the parent package, but the parent package is not marked as to be updated when updating the subpackage dependency versions. For an example of this, see #7547.
Update the TFJS dependencies of these subpackages to the release version if they are `link:` dependencies.
Replace e2e's custom local publishing logic with the publish-npm script. This more accurately represents how we release TFJS.
Fix publish-npm not waiting for Verdaccio to start before pushing packages.
Avoid testing WebGPU on platforms other than Chrome MacOS (for now).
---------
Co-authored-by: Linchenn <40653845+Linchenn@users.noreply.github.com>
Golden e2e model tests were not waiting for the asynchronous `tensor.data()` function to finish when checking results, making it hard to tell which test is failing. This PR fixes that.
After this fix, golden model tests are consistently timing out on BrowserStack Mac
Chrome. They work locally when tested on an M1 mac. Disable them on BrowserStack
for now.
FEATURE
For most tfjs app, URL parameter like tfjsflags=WEBGPU_PRINT_SHADER:binary
will be recognized as setting tfjs environment flag value (If it has been
registered). For e2e, this logic has been broken due to setEnvFlags will
override values for all existing flags.
This change supports setting environment flag values from URL parameters
in e2e, example: tfjsflags=WEBGPU_PRINT_SHADER:binary. When a flag is
set in both GUI(tunable flag) and URL parameter, URL parameter will
override flag from GUI.
Co-authored-by: Yang Gu <yang.gu@intel.com>
Co-authored-by: Matthew Soulanille <msoulanille@google.com>
Co-authored-by: Linchenn <40653845+Linchenn@users.noreply.github.com>
release-tfjs updated only the root package.json of each package, but e2e tests
have some other package.json files that must be updated as well. Fix this by
updating all package.json files in each package so that they use the npm release
versions instead of `link:` dependencies.
Use `.toEqual(jasmine.anything())` instead of `.not.toEqual(null)` to catch both
`null` and `undefined`.
Use `model.outputs.map(output => output.name)` instead of `model.outputNodes` to
get the output node name without the numerical index.
Fix an intermittent bug in the npm publishing script that causes the script to depend on the network configuration of the host. I think what's happening is that when ipv6 is available, sometimes Verdaccio binds [::1]:5783 instead of 127.0.0.1:5783, but npm tries to publish to 127.0.0.1:5783. Explicitly specifying the loopback address 127.0.0.1 fixes this.
This PR moves all operations of tflite backend to worker thread
in order to make preparation for WebNN external delegate integration
because the WebNN spec restricts its Sync API in the worker thread.
Besides, this PR also fixes some minor issues.
The current npm publishing infra is more manual than necessary. This PR makes the following improvements:
1. Publish all packages in a release unit with one command. Publishing no longer involves running yarn publish-npm multiple times.
2. Stage all packages to a local verdaccio repository before publishing. This catches any compatibility issues that may appear when publishing to npm and allows us to build all packages before publishing any to npm.
3. Publish with a single OTP. The previous infra required an OTP per package to publish to npm. This new infra publishes all packages sequentially after they're built, so it can use a single OTP for all of them. If another OTP is required due to the first one timing out, it asks for another.
A future PR will move our nightly verdaccio e2e tests to use this infra, which will allow us to avoid setting the npm registry globally. This will let us run verdaccio tests in parallel with the rest of nightly tests, which should reduce the time taken.