Releases: player-ui/player
0.9.1
π Bug Fix
- Release main #518 (@intuit-svc)
- hermes_jni linkopt select #517 (@brocollie08)
- Remove FBJNI local binaries #516 (@brocollie08)
- revert async node flatten #512 (@cehan-Chloe)
- Hermes support Android 15 #509 (@brocollie08)
- Fix js Package Releases #507 (@KetanReddy)
- Update Custom Asset doc page with use cases on asset registering #348 ([email protected] @nancywu1)
- iOS: move HeadlessPlayerImpl from PlayerUIInternalTestUtilities to PlayerUITestUtilitiesCore #500 (@nancywu1)
Authors: 6
- @brocollie08
- @intuit-svc
- @nancywu1
- Chloeeeeeee (@cehan-Chloe)
- Ketan Reddy (@KetanReddy)
- nancywu1 ([email protected])
0.9.1-next.3
0.9.0
Release Notes
Update Rules Versions (#496)
Update JS Rules to latest Aspect major
Android/JVM - expose constantController (#489)
Expose the core Player constantsController to Android/JVM consumers
AndroidPlayer provides top-level api and plugins access including constantsController
with AssetContext
Sample usage:
assetContext.player.constantsController.getConstants(key, namespace)
Storybook Addon Fixes (#449)
- Re-adds the ability to render Asset properties as a tab in storybook
- Re-adds the flow-refresh addon
- Fixes the dependencies & package layout for the storybook addon
- Fix dark-mode support
[Hermes] Android integration (#410)
Initial integration with the Hermes JavaScript runtime. This shows a tremendous size improvement over the existing J2V8 integration of ~70% (7.6 MB -> 2.3 MB, architecture dependent).
Opt-in
For now, the default runtime integration provided by the Android Player will still be com.intuit.playerui:j2v8-android
, but Hermes can be opted in manually by excluding the J2V8 transitive dependency and including the Hermes artifact:
dependencies {
// Android Player dependency
implementation("com.intuit.playerui", "android", PLAYER_VERSION) {
// J2V8 included for release versions
exclude(group = "com.intuit.playerui", module = "j2v8-android")
// Debuggable J2V8 included for canary versions
exclude(group = "com.intuit.playerui", module = "j2v8-android-debug")
}
// Override with Hermes runtime
implementation("com.intuit.playerui", "hermes-android", PLAYER_VERSION)
}
// Exclude J2V8 transitive dependency for all configurations in this module
configurations {
all {
exclude(group = "com.intuit.playerui", module = "j2v8-android")
// Debuggable J2V8 included for canary versions
exclude(group = "com.intuit.playerui", module = "j2v8-android-debug")
}
}
Tip
If your application includes dependencies that may transitively depend on com.intuit.playerui:android
, you would likely need to ensure the default runtime is transitively excluded from those as well, either manually or as a global strategy.
The AndroidPlayer
will pick the first runtime it finds on the classpath - you can at least verify which runtime was used for the Player
with a new log: Player created using $runtime
. But that won't tell you for certain if the other runtimes were successfully excluded. You'll need to examine your APK, or your apps dependency tree, to tell for sure that redundant runtimes aren't unintentionally included.
Most of the setup for this integration is done simply by including the right dependency (and excluding the wrong one), however, the hermes-android
integration also relies on the SoLoader for loading the native libraries. All that's needed is to initialize the SoLoader
(should be on your classpath with the hermes-android
dependency) with an Android Context
somewhere before you use the AndroidPlayer
, potentially in your activities onCreate
:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
SoLoader.init(this, false)
// ...
}
π Enhancement
- Storybook Addon Fixes #449 (@adierkens)
- [Hermes] Android integration #410 (@sugarmanz @brocollie08)
π Bug Fix
- Release main #501 (@intuit-svc)
- jvm and ios-async-node-ability-to-remove-resolved-async-node #488 (@sakuntala-motukuri @cehan-Chloe)
- Update Rules Versions #496 (@KetanReddy)
- fix:no matching toolchains:ninja_toolchain #490 (@cehan-Chloe @KetanReddy @brocollie08)
- Android/JVM - expose constantController #489 (@cehan-Chloe)
- ios expose constantsController #446 #487 (@cehan-Chloe)
- On update race condition #471 (@brocollie08)
- iOS: fix memory leak issues #486 (@sakuntala-motukuri @nancywu1)
- Remove async node dsl component #484 (@sakuntala-motukuri)
- [CI] Swap release script to use
config=ci
#482 (@sugarmanz) - Async node android #469 (@sakuntala-motukuri)
π Internal
- Add recipes for just #468 (@adierkens)
Authors: 8
- @brocollie08
- @intuit-svc
- @nancywu1
- Adam Dierkens (@adierkens)
- Chloeeeeeee (@cehan-Chloe)
- Jeremiah Zucker (@sugarmanz)
- Ketan Reddy (@KetanReddy)
- Niharika Motukuri (@sakuntala-motukuri)
0.8.0
Release Notes
Docs and Release Fixes (#474)
- Fix next releases being tagged as latest on npm
- Fix doc site issues with github pages
- Fix missing dsl plugins page
Update to use TypeScript 5.5 and enable isolatedDeclarations
(#431)
Update to use TypeScript 5.5 and enable isolatedDeclarations
bump js rules, use node 20 (#430)
Use Node 20 for builds
JS Package Cleanup (#442)
Fix migration issues in JS packages
Does your PR have any documentation updates?
- Updated docs
- No Update needed
- Unable to update docs
Bazel 6 Migration (#252)
Swaps the repo internals to use bazel@6
, rules_js
, bazel modules, vitest
and tsup
for the core + plugin builds
π Enhancement
- Bazel 6 Migration #252 (@adierkens @hborawski @brocollie08 @KetanReddy @sugarmanz [email protected] @nancywu1 @mercillo @mrigankmg @sakuntala-motukuri)
π Bug Fix
- Release main #476 (@intuit-svc)
- Docsite Fixes #475 (@KetanReddy @mercillo)
- Docs and Release Fixes #474 (@KetanReddy @mercillo)
- Update rules1.1.2 #473 (@mercillo)
- Update to rules player 1.1.1 #472 (@mercillo)
- bazel - added rules player back for docs site #470 (@KetanReddy @mercillo)
- Fix J2V8 Debugger #443 (@brocollie08)
- fix: replace fuse.js with leven to fix no similar matching name error #452 (@cehan-Chloe)
- Fixed switch parsing syntax issue for dynamic switches #458 (@mrigankmg)
- View Parser Plugin Decomposition #413 (@mrigankmg)
- Ability to remove a resolved async node #404 (@sakuntala-motukuri @brocollie08)
- ReactAsset improve error messages #444 (@cehan-Chloe)
- JS Package Cleanup #442 (@KetanReddy)
- Specific Temurin Version #445 (@brocollie08)
- iOS: Canary release support + SPM automated releases #434 (@hborawski)
- apply strategy from pr builds to main & release builds #440 (@sugarmanz)
- Add dsl component to async node #439 (@sakuntala-motukuri)
- Bazel clean up #435 (@brocollie08)
- [JVM] Publish next releases to release repository (fixed versions) #428 (@sugarmanz)
- This PR enables to add footer component to info reference asset in android #411 (@sakuntala-motukuri)
- Fix NPM Registry URL #427 (@KetanReddy)
π Internal
- Use smaller docker image for circle setup #456 (@adierkens)
- Log debug info for npm next release #454 (@adierkens)
- Remove alternate binding parsers from bundle #432 (@adierkens)
- Revert "[JVM] Publish next releases to release repository" #429 (@sugarmanz)
- [JVM] Publish next releases to release repository #426 (@sugarmanz)
π Documentation
- Update CONTRIBUTING.md #433 (@brocollie08)
π© Dependency Updates
- Update to use TypeScript 5.5 and enable
isolatedDeclarations
#431 (@KetanReddy) - bump js rules, use node 20 #430 (@KetanReddy @hborawski @mercillo)
Authors: 12
- @brocollie08
- @intuit-svc
- @nancywu1
- Adam Dierkens (@adierkens)
- Chloe (@cehan-Chloe)
- Harris Borawski (@hborawski)
- Jeremiah Zucker (@sugarmanz)
- Ketan Reddy (@KetanReddy)
- Marlon "Marky" Ercillo (@mercillo)
- Mrigank Mehta (@mrigankmg)
- nancywu1 ([email protected])
- Niharika Motukuri (@sakuntala-motukuri)
0.7.4
π Bug Fix
- Release main #409 (@intuit-svc)
- ios buildabling on arm mac with rosetta + Aish's Android fixes #402 (@A1shK [email protected] @nancywu1)
- Update getting-started.mdx #393 (@brocollie08)
- Fix binding tracking for validations within nested multi-nodes #382 (@tmarmer)
- Adding troubleshooting info for
Module not found: six.moves
error #381 (@A1shK) - Update CONTRIBUTING.md to include python dependency. #380 (@A1shK)
- Player 8901 - Fix typings for onAsyncNode hook #371 (@sakuntala-motukuri)
- Add Info on Commit Signing to Docs. #375 (@KetanReddy)
- [Android] Allowing timeout to be configured through PlayerRuntimeConfig #359 (@A1shK)
- Fix false positive binding with opening { #342 (@DukeManh)
Authors: 9
- @A1shK
- @brocollie08
- @intuit-svc
- @nancywu1
- @sakuntala-motukuri
- Duc Manh (@DukeManh)
- Ketan Reddy (@KetanReddy)
- nancywu1 ([email protected])
- Thomas Marmer (@tmarmer)
0.7.3
π Bug Fix
- Release main #353 (@intuit-svc)
- Trigger prerelease #352 (@sugarmanz)
- Parse multi node switch fixv1 #347 ([email protected] @mercillo)
- [Android] Reorganize
PlayerFragment
state updates #343 (@sugarmanz) - iOS: expose data controller onUpdate hook #336 ([email protected] @nancywu1)
π Documentation
- Android Build Optimization Docs #308 ([email protected] @brocollie08)
- Add bazelisk to list of requirements; be more specific in Android build instructions #344 ([email protected])
- [Docs] DSL docs additions #339 (@lexfm)
Authors: 10
- @brocollie08
- @intuit-svc
- @nancywu1
- Alex Fimbres (@lexfm)
- brocollie08 ([email protected])
- Jeremiah Zucker (@sugarmanz)
- marky ercillo ([email protected])
- Marlon "Marky" Ercillo (@mercillo)
- nancywu1 ([email protected])
- Paul Millerd (@paulmillerd)
0.7.2
Release Notes
Update Player Tools Version (#334)
- Update Player Tools to latest
Does your PR have any documentation updates?
- Updated docs
- No Update needed
- Unable to update docs
Version Selector Fixes (#330)
Docs - Fix version selector not working and preserve route when changing versions
[Docs] Update the DSL Benefits in Schema Section (#326)
Docs - Update DSL Schema benefits section
Does your PR have any documentation updates?
- Updated docs
- No Update needed
- Unable to update docs
Expose More Information About Expression Parsing Errors (#328)
Types - Expose types/utilities around expression parsing errors
Does your PR have any documentation updates?
- Updated docs
- No Update needed
- Unable to update docs
Fix commaNumber
Formatting when Using a Precision of 0 (#319)
Common Types Plugin - Fix commaNumber
Formatting when Using a Precision of 0
Expression Parser Strictness (#315)
Expose Expression Parser's strictness option via the resolveOptions
hook
π Bug Fix
- Release main #335 (@intuit-svc)
- Update Player Tools Version #334 (@KetanReddy)
- Version Selector Fixes #330 (@KetanReddy)
- Move managed player mock flows to shared reference asset mocks #217 ([email protected] @nancywu1)
- Android: Preserve old rendering path for non-suspendable assets #314 (@sugarmanz @brocollie08)
- Expose More Information About Expression Parsing Errors #328 (@KetanReddy)
- update iOS contributing guide #323 (@hborawski)
- update rules_player to latest 0.12.0 #322 (@hborawski @brocollie08)
- Fix
commaNumber
Formatting when Using a Precision of 0 #319 (@KetanReddy) - Expression Parser Strictness #315 (@KetanReddy)
- Common Types Plugin restoring old dataRefs #302 ([email protected] @lexfm @KetanReddy)
π Documentation
- [Docs] Update the DSL Benefits in Schema Section #326 (@KetanReddy)
- refactor nav docs slightly to better call out onEnd expressions #321 (@hborawski)
- PR Checklist update #309 ([email protected] @mercillo)
- add syntax examples for default expressions #317 (@hborawski)
Authors: 11
- @brocollie08
- @intuit-svc
- @nancywu1
- afimbres ([email protected])
- Alex Fimbres (@lexfm)
- Harris Borawski (@hborawski)
- Jeremiah Zucker (@sugarmanz)
- Ketan Reddy (@KetanReddy)
- Marlon "Marky" Ercillo (@mercillo)
- mercillo ([email protected])
- zwu01 ([email protected])
0.7.1
Release Notes
[Android] AsyncHydrationTrackerPlugin
(#296)
Introduction of AsyncHydrationTrackerPlugin
to provide a mechanism for reacting when SuspendableAsset
hydration is completely finished.
androidPlayer.asyncHydrationTrackerPlugin!!.hooks.onHydrationComplete.tap(this::class.java.name) {
// process effects after hydration is complete
}
[Sync] Performance and Bugfix (#306)
- Skip view updates for silent data changes
- Replace
reduce
calls for performance reasons - Fix data change events not cascading properly when setting data
π Bug Fix
- Release main #313 (@intuit-svc)
- bump @player-tools packages to 0.5.1 #312 (@hborawski)
- iOS: prefix resource bundles to prevent naming collisions #310 (@hborawski)
- [Android]
AsyncHydrationTrackerPlugin
#296 (@sugarmanz) - [Docs] Platform consolidation #287 (@sugarmanz [email protected])
- [JVM] Handle invalid JSON as Player error #303 (@sugarmanz)
- [Sync] Performance and Bugfix #306 ([email protected])
π Documentation
- Fix documentation error on custom asset #311 (@ktamilvanan)
- [Docs] Update: DSLSchema #304 ([email protected] @lexfm)
Authors: 8
- @intuit-svc
- afimbres ([email protected])
- Alex Fimbres (@lexfm)
- Harris Borawski (@hborawski)
- Jeremiah Zucker (@sugarmanz)
- Ketan Reddy (@KetanReddy)
- KT (@ktamilvanan)
- nancywu1 ([email protected])
0.7.0
Release Notes
com.intuit.playerui
publishing scope (#253)
Embracing the player-ui
namespace, the base group ID, and correlating package scopes, have changed:
com.intuit.player
-> com.intuit.playerui
- Dropping
.jvm
from non-android artifacts- This was originally done to leave room for intermediate JS resource artifacts. This is no longer necessary due to improvements in our build process, and enables us to remove this redundancy.
Artifact | Internal | External |
---|---|---|
Headless Player | com.intuit.player.jvm:core |
com.intuit.playerui:core |
Android Player | com.intuit.player.android:player |
com.intuit.playerui:android |
Plugins | com.intuit.player.plugins com.intuit.player.jvm.plugins com.intuit.player.android.plugins |
com.intuit.playerui.plugins |
Refactor existing DSL docs. (#288)
Update DSL docs
Remove Applitools (#277)
Enhance AsyncViewStub.awaitView()
to ensure any child AsyncViewStub
s are resolved as well. This really only affects initial hydration, preventing weird isolated rendering jank by ensuring everything is ready to be shown on screen before actually rendering the top-level asset.
π Enhancement
com.intuit.playerui
publishing scope #253 (@sugarmanz)- feat: add github.dev links to docs #278 ([email protected] @rafbcampos)
π Bug Fix
- Release main #301 (@intuit-svc)
- iOS: add asyncnodeplugin resource path to bazel.build zip #300 ([email protected] @nancywu1)
- fix: missing docs/site on docs links #299 ([email protected] @rafbcampos)
- fix: help to improve docs links with relative path #298 ([email protected] @rafbcampos)
- Refactor existing DSL docs. #288 (@KetanReddy)
- AsyncNodePlugin- use named export, port iOS plugin #295 ([email protected] @nancywu1)
- Fix broken link in CONTRIBUTING.md #291 (@KetanReddy)
- Remove Applitools #277 (@sugarmanz @hborawski)
π Documentation
- [Docs] plugin and cli updates, links fix #294 ([email protected] @lexfm)
- AssetProviderPlugin - Docs update #283 ([email protected] @mercillo)
- Plugins android clean up #290 ([email protected] [email protected] @brocollie08)
- docDays/updated FAQS #282 ([email protected] @mercillo)
- iOS: Update plugin documentation #284 (@hborawski [email protected])
- Update Team Page with New Members #280 (@KetanReddy)
- iOS: Update Writing Plugins guide #279 (@hborawski)
- [JVM] pom with minimal oss requirements #275 (@sugarmanz)
- Fix SwiftUIPendingTransactionPlugin Docs Page #276 (@KetanReddy)
Authors: 14
- @brocollie08
- @intuit-svc
- @nancywu1
- afimbres ([email protected])
- Alex Fimbres (@lexfm)
- brocollie08 ([email protected])
- Harris Borawski (@hborawski)
- Jeremiah Zucker (@sugarmanz)
- Ketan Reddy (@KetanReddy)
- Marlon "Marky" Ercillo (@mercillo)
- mercillo ([email protected])
- nancywu1 ([email protected])
- Rafael Campos (@rafbcampos)
- rcampos2 ([email protected])
0.6.0
π Enhancement
- Latest sync including AsyncNodePlugin #263 ([email protected] @nancywu1 @brocollie08)
π Bug Fix
- Release main #274 (@intuit-svc)
- Playa 8756 - iOS add callTryCatchWrapper function on JSValue #270 ([email protected] @nancywu1)
- Release main #273 (@intuit-svc)
- Fix
com.intuit.player:j2v8
transitive deps #256 (@sugarmanz) - update iOS StageRevertDataPluginTests #264 ([email protected] @nancywu1)
π Documentation
- DSL documentation changes #266 ([email protected] @rafbcampos)
Authors: 9
- @brocollie08
- @intuit-svc
- @nancywu1
- brocollie08 ([email protected])
- Jeremiah Zucker (@sugarmanz)
- nancywu1 ([email protected])
- Rafael Campos (@rafbcampos)
- rcampos2 ([email protected])
- zwu01 ([email protected])