Update mock paths to fix flakey android build Null Pointer Exception#911
Update mock paths to fix flakey android build Null Pointer Exception#911KetanReddy wants to merge 3 commits into
Conversation
Benchmark ResultsComparison against baseline from
|
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.bar |
551.13K ops/s | 498.13K ops/s | +10.6% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets.1.name |
446.29K ops/s | 298.47K ops/s | +49.5% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets.01.name |
497.32K ops/s | 322.55K ops/s | +54.2% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets['01'].name |
460.78K ops/s | 433.46K ops/s | +6.3% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets[01].name |
369.24K ops/s | 433.53K ops/s | -14.8% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets[name = "frodo"].type |
280.37K ops/s | 264.95K ops/s | +5.8% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["name" = "sprinkles"].type |
207.08K ops/s | 224.33K ops/s | -7.7% |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["isDog" = false].type |
290.96K ops/s | 275.54K ops/s | +5.6% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > parser benchmarks > Resolving binding: foo.pets["isDog" = true].type |
295.49K ops/s | 293.98K ops/s | +0.5% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.bar |
576.32K ops/s | 606.45K ops/s | -5.0% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets.1.name |
370.04K ops/s | 397.22K ops/s | -6.8% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets.01.name |
366.57K ops/s | 388.79K ops/s | -5.7% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets['01'].name |
349.86K ops/s | 342.25K ops/s | +2.2% |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets[01].name |
389.35K ops/s | 290.56K ops/s | +34.0% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets[name = "frodo"].type |
245.43K ops/s | 197.83K ops/s | +24.1% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["name" = "sprinkles"].type |
196.71K ops/s | 134.56K ops/s | +46.2% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["isDog" = false].type |
245.85K ops/s | 188.71K ops/s | +30.3% ✅ |
core/player/src/binding/__tests__/parser.bench.ts > binding creation benchmarks > Resolving binding: foo.pets["isDog" = true].type |
251.51K ops/s | 209.10K ops/s | +20.3% ✅ |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = 1 + 3 (sync) |
267.83K ops/s | 360.37K ops/s | -25.7% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = 1 + 3 (async) |
241.47K ops/s | 302.45K ops/s | -20.2% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: conditional(true, true, false) (sync) |
303.78K ops/s | 299.54K ops/s | +1.4% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: conditional(true, true, false) (async) |
271.45K ops/s | 365.52K ops/s | -25.7% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional({{bar}} > 0, true, false) (sync) |
129.54K ops/s | 199.36K ops/s | -35.0% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional({{bar}} > 0, true, false) (async) |
114.58K ops/s | 160.97K ops/s | -28.8% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(conditional(true = false, false, true), conditional(false = false, true, false), conditional(true = true, false, true)) (sync) |
110.00K ops/s | 126.03K ops/s | -12.7% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(conditional(true = false, false, true), conditional(false = false, true, false), conditional(true = true, false, true)) (async) |
96.90K ops/s | 87.18K ops/s | +11.1% ✅ |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = await(asyncTestFunction(1)) (sync) |
N/A | N/A | N/A |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = await(asyncTestFunction(1)) (async) |
188.92K ops/s | 170.69K ops/s | +10.7% ✅ |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = asyncTestFunction(1) (sync) |
247.37K ops/s | 250.80K ops/s | -1.4% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = asyncTestFunction(1) (async) |
196.57K ops/s | 190.72K ops/s | +3.1% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: asyncTestFunction(1) (sync) |
570.64K ops/s | 491.49K ops/s | +16.1% ✅ |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: asyncTestFunction(1) (async) |
466.47K ops/s | 376.51K ops/s | +23.9% ✅ |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(!{{bar}} == false, await(asyncTestFunction(1)), false) (sync) |
119.00K ops/s | 116.36K ops/s | +2.3% |
core/player/src/expressions/__tests__/performance.bench.ts > Expression Parsing/Execution Benchmark > Parsing: {{foo}} = conditional(!{{bar}} == false, await(asyncTestFunction(1)), false) (async) |
113.01K ops/s | 116.39K ops/s | -2.9% |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > initial resolve |
623.63 ops/s | 465.08 ops/s | +34.1% ✅ |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > Resolving from cache |
16.47K ops/s | 15.40K ops/s | +7.0% ✅ |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > data changes |
1.81K ops/s | 2.68K ops/s | -32.4% |
core/player/src/view/resolver/__tests__/index.bench.ts > resolver benchmarks > data changes slow |
163.84 ops/s | 524.50 ops/s | -68.8% |
plugins/async-node/core
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 1 times |
13.32K ops/s | 8.43K ops/s | +58.0% ✅ |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 5 times |
13.75K ops/s | 7.76K ops/s | +77.2% ✅ |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 10 times |
9.60K ops/s | 7.05K ops/s | +36.3% ✅ |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 50 times |
2.98K ops/s | 2.12K ops/s | +41.1% ✅ |
plugins/async-node/core/src/__tests__/index.bench.ts > async node benchmarks > Resolve Async Node 100 times |
1.62K ops/s | 1.21K ops/s | +33.8% ✅ |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 1 times |
5.39K ops/s | 4.53K ops/s | +19.1% ✅ |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 5 times |
6.52K ops/s | 6.37K ops/s | +2.3% |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 10 times |
5.55K ops/s | 4.49K ops/s | +23.7% ✅ |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 50 times |
2.07K ops/s | 1.81K ops/s | +13.9% ✅ |
plugins/async-node/core/src/__tests__/transform.bench.ts > async transform benchmarks > Resolve Async Node 100 times |
1.55K ops/s | 1.12K ops/s | +38.3% ✅ |
react/player
| Benchmark | Current | Baseline | Change |
|---|---|---|---|
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 1 ReactAssets |
602.84 ops/s | 464.64 ops/s | +29.7% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 1 ReactAssets |
892.88 ops/s | 744.86 ops/s | +19.9% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 5 ReactAssets |
564.73 ops/s | 461.46 ops/s | +22.4% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 5 ReactAssets |
969.64 ops/s | 679.18 ops/s | +42.8% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 10 ReactAssets |
618.00 ops/s | 468.50 ops/s | +31.9% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 10 ReactAssets |
856.54 ops/s | 563.74 ops/s | +51.9% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 50 ReactAssets |
498.41 ops/s | 379.43 ops/s | +31.4% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 50 ReactAssets |
256.66 ops/s | 190.07 ops/s | +35.0% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Render asset nested in 100 ReactAssets |
358.28 ops/s | 289.68 ops/s | +23.7% ✅ |
react/player/src/asset/__tests__/index.bench.tsx > ReactAsset benchmarks > Bubble errors nested in 100 ReactAssets |
81.89 ops/s | 80.66 ops/s | +1.5% |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## a2ui-docs #911 +/- ##
================================
================================
☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
| abstract val flow: String | ||
|
|
||
| /** Content format for [flow] (e.g. "a2ui"); null uses the default Player Flow format. */ | ||
| open val format: String? get() = null |
There was a problem hiding this comment.
maybe make this an official enum
There was a problem hiding this comment.
IMO we shouldn't because we don't want to be prescriptive of what content formats we support on the ingestion side. We support A2UI and Player's internal format out of the box but if any consumer wants to add support for their own format we shouldn't have to explicitly support it.
KVSRoyal
left a comment
There was a problem hiding this comment.
Looks good from ios perspective
|
|
||
| // When set (e.g. "a2ui"), flows are started in that content format so the | ||
| // registered content plugin adapts them; null keeps the default Player Flow format. | ||
| override val contentFormat: String? = format |
There was a problem hiding this comment.
I'm trying to understand why we should care about format type when loading mocks, I am seeing the start API cares about contentVersion? So, the idea is that whoever is loading content understands the shape of the content rather than testing for content spec within the adapter plugin itself?
There was a problem hiding this comment.
There was an issue where every mock that was getting loaded went through makeFlow which was causing issues with A2UI content. This was to allow that step to be skipped.
There was a problem hiding this comment.
Ah, fair enough — alternatively, can we just trigger makeFlow as a content transform the same way A2UI content is handled?
We can frame as a follow-up to unblock if necessary
There was a problem hiding this comment.
Yeah I think that would actually be a good follow up ticket. Might make sense to ship that as a default plugin for Player?
Remove
srcfrom A2UI mocks path as it seems to cause an occasional NPE on AndroidChange Type (required)
Indicate the type of change your pull request is:
patchminormajorN/ADoes your PR have any documentation updates?
Stack created with GitHub Stacks CLI • Give Feedback 💬