-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bazel 6 Migration #252
Bazel 6 Migration #252
Conversation
Add coverage support for JS files
* xcodeproj generation sorta working * preprocessor macro working for resources in and out of bazel? * test host not needed for unit test resources * fixed bundle name * better folder structure * swiftui building * viewinspector dependency resolved, tests need reference assets * reference assets build working, demo app showing on screen * add pending transaction ios plugin * add base beacon plugin * swiftui beacon plugin * remove xcode project * ignore xcodeproj * generate resource Bundle.module shims * check path ios * swiftui check-path * common-expressions ios * common-types ios * computed-properties ios * expression plugin ios * external action ios * swiftui external action * metrics plugin swiftui * fix bundle access * pubsub ios * stage-revert-data ios * types-provider ios * move print logger ios to console-logger package * test utilities core * ios test-utils that rely on XCTest * viewinspector tests running for ref assets * update xcodeproj generation * update demo with more plugins * move transition plugin for ios * plugins all moved out of ios directory * pull in latest demo app files from main * uitests run but demo app need flow finished alert * remove old packages from ios * wip using resource bundles from bazel targets not working * Define process.env in native bundles * Update pluginName for SwiftUI plugin * use bazel target for beacon resources * use bazel target for core resources * use bazel target for check-path resources * use bazel target for make-flow * use bazel target for make-flow * bazel targets for common types/expressions * use bazel targets for ios resources * remove old resource * UITests passing * remove old cocoapods related project files * remove commented out tags * update podspec and add Package.swift * add bazel source targets, zip sources and resources into proper locations, pod lint passes * port async wrapped function again, since this was branched prior to sync * zip works as a pod --------- Co-authored-by: Adam Dierkens <Adam_Dierkens@intuit.com>
* Storybook 7 + Bazel 6 * Fix react references with storybook & pnpm * Update storybook to bazel 6 and storybook 7 * Convert rest of mocks to use tsx. Update all stories * Use rules_bazel commit sha * Fix some styling * Remove chakra from reference assets * Update rules
* touch ups needed to run all tests through query * try running all tests in circle * fix indent * check homebrew path * update openjdk version * fix resource bundle for reference assets icon catalog * lower to serial test running, builds are getting interuptted with 2 * prebuild test modules before running tests * remove print * try large executor * update swift package deps * fix resource class * update xcode/macos * update xcode/macos * disable cache temporarily to test cold start build time * clean bazel and cache to really test cold start * clean bazel and cache to really test cold start * log out size of cache before / after clearing * reenable cache, speed improvements seem fine with no cache * fix some tests that had deps removed during conversion * update viewinspector to latest * remove applitools from UITests * fix flaky test * rewrite assertPublished again * increase timeout * tweak input asset so we can still test it all * update iOS contrib docs, remove old docs * remove Inspectable conformance as it was deprecated * change syntax for building all except ios * bump rules_swift * try storing coverage artifacts * fix path * install lcov with brew so we have genhtml * zip up html coverage output
* async-node-plugin baze 6 * separated plugins * removed View interface * move plugin to view * consolidate default view plugins * lint and some test fixes * fix view tests * fix template tests and lint * sync ios code for blocked transitions * fix test build * rewrite external action tests to use less ViewInspector * increase beaconplugin timeout --------- Co-authored-by: brocollie08 <sentony03@gmail.com> Co-authored-by: hborawski <Harris_Borawski@intuit.com>
* upload ios coverage report to codecov * import GPG key used in auto release? * install gnupg on mac * remove gpg * try gpg hack * bump codecov orb * remove test stage since coverage is equivalent, try caching + uploading ios coverage * fix stage dep * temp update build step to test out coverage * remove test stage more * fix a test and exlude some temporarily just to test coverage upload * fix a test and exlude some temporarily just to test coverage upload * persist to workspace instead of cache * combined coverage report for main tests * fix lint errors * allow lint to run * lint fix
* update iOS bazel deps to latest * macro iOS/SwiftUI plugins to consolidate build pipeline * macro the rest of the common cases * reduce dependencies for test-utils tests * macro remaining package * fix bundle names * add more in-depth README for ios development * simplify Package.swift and update docs * simplify podspec and update README * reorder podspec to match target order in Package.swift * add section for using external dependencies * use newer markdown syntax for note/tips
* reference assets needed * more dependencies for tests * modified test names * modified test names * update generateflowsection * address comments * removed unneeded dependencies * iOS: port async WrappedFunction update (#244) * port async WrappedFunction update * expose decode for JSValue * port BaseGenericWrappedAsset changes * Add Automation ID to Error Element in Storybook (#245) Add automation id to error element in storybook. * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.4.3 [skip ci] * cleaned up BUILD and index fiels * iOS: make AssetBeacon equatable and add public init for metadata (#248) make AssetBeacon equatable and add public init for metadata * Update ruby version in build (#246) The version used is EOL and adds to the ios build time to install * showing end flow for external action * move string + extensions to right folder * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.4.4 [skip ci] * add pendingtransaction flows, uitests * move navigateToAssetCollection(), add back some lines deleted * iOS: make AssetBeacon equatable and add public init for metadata (#248) make AssetBeacon equatable and add public init for metadata * Update ruby version in build (#246) The version used is EOL and adds to the ios build time to install * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.4.4 [skip ci] * add user info to assetViewModel * address comments * apply swift 6 warning fix to flaky iOS tests (#207) * store cancellables in ManagedPlayerViewModelTests (#210) * modified test names * mandatory not needed * fix test * rebase picked up wrong file changes * fix diffs on applitools * update mock flows * update tests after mocks update * iOS: add SwiftUIPendingTransactionPlugin to reference asset dependencies (#250) add SwiftUIPendingTransactionPlugin to reference asset dependencies * delete unneeded files, add navigateToAssetCollection() back to open flow * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.4.5 [skip ci] * Sync Android and JVM packages to latest (#222) * SetTimeoutPlugin exception handling enhancement pt. 1 * Make views in Flow nullable * lint * SetTimeoutPlugin exception handling enhancement pt. 2 * Call state hook when releasing player * lint * expose V8 params in psuedo constructors * Update into extension method to handle null view case * support null contextual serialization for assets * viewmodel tests * fix test * attempt fix 2 * guard against logging on release due to weird timing * add error handling during asset expansion * clear guideline for top level render function * add test for hydration scope cancelling on player release * add coroutine-test import to android player package * lint * M1 J2V8 Support * fix build file * replace deprecated channel method * fix bazel intellij sync * [android#265]: fix orientation change reset * [android#269]: PlayerViewModel::runtime null safety * [jvm#224]: hooks@0.15.0 * [android#276]: asset handler hook * [jvm#229]: replacing `getFunction` with `getInvokable` * [jvm#230]: automatic deserializes functions and invokables * [jvm#231]: name loggers dynamically * [jvm#228]: migrate to NodeSerializableField * fix lingering getFunction replacements * [jvm#235]: local class discriminators * [jvm#239]: `JSErrorException` enhancement * [jvm#237]: expose skipTransition hook * [jvm#240]: fix testutils node * [jvm#241]: `NavigationFlowEndState.param` helper * [android#287]: scroll to top when navigating to a new view * [jvm#238]: dedicated runtime thread * [android#286]: `SuspendableAsset` * [jvm#243] debuggable v8 * [android#292] android debuggable v8 * upgrade kotlin to 1.7 and lint * working demo app * all //jvm tests passing * fix all android tests * ensure test target fails on failure * fix instrumented android tests * lint * bootstrap intents break everything * androidx orchestrator * clean up workspace and use released player rules for kotlin upgrade * format and comment androidtest python script * pr comments --------- Co-authored-by: Larry <larrywutoronto@gmail.com> * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.5.0 [skip ci] * allow navigationFlowViewState attributes to take Any instead of string * fix test * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.5.1 [skip ci] * update tests * update circleci config * DSL documentation changes (#266) * chore: DSL doc changes * Update docs/site/pages/content/dsl.mdx Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> * chore: use @player-tools/dsl --------- Co-authored-by: rcampos2 <rafael_campos@intuit.com> Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> * add callTryCatchWrapper function on JSValue * address comments * move test to core utilities folder * use expectation to wait for error * remove extra lines * increase timeout * move expectation * decrease timeout * move expectation to catch * comment out test * Latest sync including AsyncNodePlugin (#263) * everything minus language, internal plugins, async * this works * lint * update yarn version according to readme * revert yarn version * remove resolutions * fix flow test * fix android test * temporarily disable applitools * try again after updating api key * not use latest version of bundler because it requires newer ruby version * update iOS tests to transition inside afterTransition (#268) update tests to transition inside afterTransition Co-authored-by: zwu01 <nancy_wu1@intuit.com> * remove comment block * lint * modify long text test * lint --------- Co-authored-by: brocollie08 <sentony03@gmail.com> Co-authored-by: nancywu1 <66387473+nancywu1@users.noreply.github.com> Co-authored-by: zwu01 <nancy_wu1@intuit.com> * uncomment test * Fix `com.intuit.player:j2v8` transitive deps (#256) * neverlink j2v8 debugger * fix deps.bzl miss * wip * wip: broken rules_jvm_external * move jvm external setup * try to use the embedded jdk * fix //jvm/core:test * reintroduce grab for mockable android jar * use kotlin-reflect from maven * sync --experimental_google_legacy_api * cleanup * fix gpg tty for release * use pinentry instead * strip down ci * fix writing to gpg conf * exclude kotlin stdlib * ensure resources exist in top-level AAR * working player distrib * working grab_bazel_common + some cleanup * more cleanup * reset circle config * Release main * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.6.0 [skip ci] * Fix SwiftUIPendingTransactionPlugin Docs Page The extra newline on this page causes it not to show up in the sidebar of the `Plugins` section and also causes the header elements to be improperly rendered. * Remove Applitools (#277) * remove android and circle applitools * don't define applitools configs * remove applitools usage from iOS UI Tests * address flakiness by awaiting child async view stubs --------- Co-authored-by: hborawski <Harris_Borawski@intuit.com> * [JVM] pom with minimal oss requirements (#275) pom with minimal oss requirements * Update Team page with new members * plugin core doc addition * updated FAQS * feat: add github.dev links to docs (#278) feat: adds improve docs link to github.dev Co-authored-by: rcampos2 <rafael_campos@intuit.com> * updated asset provider with JSON samples * some more cleanup and information * Added dsl validate command * added json tag * removed discord * clean up first set of observation wording * iOS: Update Writing Plugins guide (#279) update plugin authoring guide for iOS * added contentTabs to help with content section in docs * removed json platform * fixed code block * find alternative way to post JSON blocks * working json code block * Updated descriptions to include TSC compiling * updated tsx section * tsx and json section added to contenttabs * Refactor existing DSL docs. * Plugin implementation doc v1 * plugin docs addl cleanup * iOS: Update plugin documentation (#284) * update some plugin docs for ios with usage examples * update docs for iOS and some for core * add usage header on beacons doc * indentation fixes --------- Co-authored-by: nancywu1 <nancy_wu1@intuit.com> * Fix broken link in CONTRIBUTING.md Fixes broken link to the Android demo app README,d * Apply suggestions from code review Co-authored-by: Spencer Hamm <spentacular@gmail.com> * Overview plugin links fix * Fixing invalid character on plugin implementation doc * PR feedback * flesh out dsl plugins doc * Added snippets reference * plugin hook implementation wording cleanup * Plugins android clean up (#290) * beacon * check-path * coroutines + usage for check-path * expression * external-action * metrics * fix a bunch of formatting things * fix formatting problems * settimeout * async-node * update package paths * async node ios docs * address some comments --------- Co-authored-by: brocollie08 <sentony03@gmail.com> Co-authored-by: nancywu1 <nancy_wu1@intuit.com> * Asset reference link fixed * async node plugin * Doc: Plugin react wording correction. * Update docs/site/pages/plugin-implementation.mdx Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> * docs: plugin implementation 1st observations * removed unused langmap * Docs: plugin implementation obervations pt2 * use tap instead of tapPromise, use named export instead of default * move tests to viewinspector folder * remove duplicate test * fix lint error * add back flow * update doc that uses tapPromise example * throw error if plugin is undefined * fix: help to improve docs links with relative path (#298) Co-authored-by: rcampos2 <rafael_campos@intuit.com> * fix: missing docs/site on docs links (#299) Co-authored-by: rcampos2 <rafael_campos@intuit.com> * `com.intuit.playerui` publishing scope (#253) * com.intuit.player.jvm -> com.intuit.playerui * com.intuit.player.android -> com.intuit.playerui.android * com.intuit.player.plugins -> com.intuit.playerui.plugins * leftovers * more leftovers * add additional email to pom * move graaljs files * update android coordinates * add asyncnodeplugin resource path * put on one line * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.7.0 [skip ci] * CommonTypesPlugin restoring old dataRefs * Fixed Views and Schema links * DSL data schema type docs * Skip view updates for silent data changes * replace reduce calls for performance * Fix data change events not cascading properly when setting data * Edit docs/site/pages/dsl/dsl-schema-type.mdx Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> * [JVM] Handle invalid JSON as Player error (#303) * handle invalid json as player error * improve test * Docs update post review * DSLSchema docs further improvement * [Docs] Platform consolidation (#287) * platform consolidated getting started * fix alert status reference * add platform tabs for custom and reference assets * re-add viewmodel + fragment docs --------- Co-authored-by: nancywu1 <nancy_wu1@intuit.com> * DSLSchema doc cleanup * DSLSchema docs rearrangement * Resorting to schema page for DSLSchema docs * updated PR checklist to include documentation portion * fixed capitalization * DSLSchema improved statement * @player-tools: "0.5.0-next.7 for dataRefs * fix yarn lock * Exporting dataRefs from common-types and reference-assets * Exp dataRefs:@player-ui/reference-assets-components * [Android] `AsyncHydrationTrackerPlugin` (#296) * initial working rehydration tracker * callback approach * working callback impl * lint * explicit api instead of callback * oops * ensure beacon call captures view scope synchronously * ensure we track hydration as early as possible * expose onHydrationStarted hook * simple async hydration tracker test * remove redundant trackHydration * iOS: prefix resource bundles to prevent naming collisions (#310) * iOS: prefix resource bundles to prevent naming collisions * fix resource_map * rename reference assets bundle * fixed linting errors * Fix documentation error on custom asset (#311) * Exporting validations + DSLSchema from components * bump @player-tools packages to 0.5.1 (#312) bump tools packages to 0.5.1 * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.7.1 [skip ci] * Expose expression parser strictness in options hook * Make throwing recoverable parsing errors dependent on strictness * add syntax examples for default expressions (#317) * add syntax examples for default expressions * fix getDataVal casing * fix getDataVal casing * fix 0 precision commaNumber formatting * update rules_player to latest 0.12.0 (#322) * update rules_player to latest 0.12.0 * pin android versions * android 30 then * android 30 for install script * 31 again + bump emulator API as well * correct architecture * shame on me * allow boot anim * revert android changes and pin docker image * install-android-tools.sh revert * don't pin android versions * test rules * verbose failure if available and test output errors * flag on build * correct flag * no remote cache * remove skip remote cache flag * back to 0.12.0 --------- Co-authored-by: brocollie08 <sentony93@gmail.com> * update iOS contributing guide (#323) * refactor nav docs slightly to better call out onEnd expressions (#321) * refactor nav docs slightly to better call out onEnd expressions * reword some more * grammar update Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> --------- Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> * Update the DSL Benefits in Schema section * Expose more information about expression parsing errors * Fix version selector not working and preserve route when changing versions * Android: Preserve old rendering path for non-suspendable assets (#314) * preserve old rendering path for non-suspenable assets * lint * conditionally launch in main for non-suspendable assets * rename db resources * update db rules * use main rules_player --------- Co-authored-by: brocollie08 <sentony93@gmail.com> * Update Player Tools version * Release main * Update CHANGELOG.md [skip ci] * Bump version to: v0.7.2 [skip ci] * expose on update hook * feedback * DSL docs navigation note * TS satisfies note * Additional notes and wording for DSLSchema * Apply Player DSL suggestions from code review Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> * Add bazelisk to list of requirements; be more specific in Android build instructions (#344) Co-authored-by: Paul Millerd <paul_millerd@intuit.com> * [Android] Reorganize `PlayerFragment` state updates (#343) * mvn-install script for publishing JARs to your local maven repository * organize player fragment state updates * remove unused code * enhance player fragment lifecycle handling * Merge branch 'main' into bazel-6 * revert ExternalActionViewModifierPluginTests#L210 --------- Co-authored-by: mercillo <marlon_ercillo@intuit.com> Co-authored-by: Marlon "Marky" Ercillo <mercillo729@gmail.com> Co-authored-by: zwu01 <nancy_wu1@intuit.com> Co-authored-by: Harris Borawski <harrisborawski@gmail.com> Co-authored-by: Ketan Reddy <KetanReddy@users.noreply.github.com> Co-authored-by: intuit-svc <opensource-svc@intuit.com> Co-authored-by: intuit-svc <98980465+intuit-svc@users.noreply.github.com> Co-authored-by: Adam Dierkens <adierkens@users.noreply.github.com> Co-authored-by: nancywu1 <66387473+nancywu1@users.noreply.github.com> Co-authored-by: Larry <larrywutoronto@gmail.com> Co-authored-by: Rafael Campos <campos.rb@hotmail.com> Co-authored-by: rcampos2 <rafael_campos@intuit.com> Co-authored-by: brocollie08 <sentony93@gmail.com> Co-authored-by: brocollie08 <sentony03@gmail.com> Co-authored-by: hborawski <Harris_Borawski@intuit.com> Co-authored-by: Ketan Reddy <ketan_reddy@intuit.com> Co-authored-by: afimbres <alejandro_fimbres@intuit.com> Co-authored-by: Alex Fimbres <lexfimbres@gmail.com> Co-authored-by: Spencer Hamm <spentacular@gmail.com> Co-authored-by: Ketan Reddy <ketan@ketanreddy.com> Co-authored-by: KT <kathir@gmail.com> Co-authored-by: Paul Millerd <paulmillerd@gmail.com> Co-authored-by: Paul Millerd <paul_millerd@intuit.com>
Co-authored-by: Harris Borawski <harrisborawski@gmail.com>
Bazel 6 async node plugin ios updates
@player-ui/player we should expand the release notes to include changes to the other platforms and open any tickets for related work that we want to get done before releasing this as a full release. |
|
||
# Android databinding flags | ||
# TODO: Verify the follow doesn't break host compil |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't -- can remove
# need to filter because //android/demo rules dont resolve | ||
- run: bazel build --config=ci -- $(bazel query '//plugins/... except filter("ios|swiftui|jvm|android", //plugins/...)') $(bazel query '//core/... except filter("ios|swiftui|jvm|android", //core/...)') $(bazel query '//react/... except filter("ios|swiftui|jvm|android", //react/...)') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@brocollie08 can you add this to your list? Or should we make a new issue for converting the build step to build common?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i can do this
@@ -299,13 +297,30 @@ jobs: | |||
- v1-bazel-cache-core-{{ .Branch }} | |||
- v1-bazel-cache-core-main | |||
|
|||
# union the bundle targets until //... doesnt explode analyzing jvm/android targets |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@brocollie08 are you planning on tackling coverage with you bazel enhancments ticket, or should we make a new issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
new issue, I'll create that too
"webpack.config.js", | ||
".editorconfig", | ||
".all-contributorsrc", | ||
"README.md", | ||
# "patches/@chakra-ui__system@2.6.2.patch", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This not needed?
# pod_push( | ||
# name = "PlayerUI_Pod_Push", | ||
# executable = "bundle exec pod", | ||
# globalFlags = [], | ||
# podspec = ":PlayerUI_Podspec", | ||
# pushFlags = [ | ||
# # skip tests because it never runs them right | ||
# # and they're run as part of the build pipeline anyway | ||
# "--skip-tests", | ||
# ], | ||
# ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hborawski do we still need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, not needed, was hoping to swap it for the new publishing rule but havent been able to test yet
plugins/async-node/core/src/index.ts
Outdated
/** Use this to tap into the async node plugin hooks */ | ||
applyPlugin: (asyncNodePlugin: AsyncNodePlugin) => void; | ||
|
||
asyncNode: AsyncParallelBailHook<[Node.Node], Node.Node>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some of this plugin was rewritten for Bazel 6 - and doesn't reflect the enhancements we made on main
. What's our plan to updating these? Do we just need to re-open those tickets?
TODO
Requires player-ui/rules_player#34
Release Notes
Swaps the repo internals to use
bazel@6
,rules_js
, bazel modules,vitest
andtsup
for the core + plugin builds