-
Notifications
You must be signed in to change notification settings - Fork 121
[Woo POS] Modularization: final move to POS module #16176
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
Conversation
…tion-protocol-abstractions
… settings in the app layer.
…for use case to DI the font.
# Conflicts: # Modules/Sources/PointOfSale/Presentation/PointOfSaleEntryPointView.swift
…eworks' into feat/woomob-935-fix-build-errors # Conflicts: # WooCommerce/WooCommerce.xcodeproj/project.pbxproj
…for-passing-font-from-pos-module' into feat/woomob-935-fix-build-errors
…t it can be moved to WooFoundation. `AppStartupWaitingTimeTracker` is now a wrapper of `WaitingTimeTracker`.
…-WooFoundation' into feat/woomob-935-fix-build-errors
…classes that need to be public.
…n the unit tests plan.
…mob-935-fix-build-errors # Conflicts: # Modules/Sources/PointOfSale/Presentation/Reusable Views/POSListEmptyView.swift # Modules/Sources/PointOfSale/Protocols/POSDependencyProviding.swift # Modules/Sources/PointOfSale/Utils/PreviewHelpers.swift # WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift # WooCommerce/WooCommerce.xcodeproj/project.pbxproj
# Conflicts: # Modules/Sources/PointOfSale/Analytics/POSOrderListFetchAnalytics.swift # Modules/Sources/PointOfSale/Presentation/Orders/POSDetailsView.swift # Modules/Sources/PointOfSale/Presentation/Orders/POSOrderDetailsView.swift # Modules/Tests/PointOfSaleTests/Mocks/MockAnalytics.swift # WooCommerce/Classes/POS/Presentation/Orders/POSDetailsView.swift # WooCommerce/WooCommerce.xcodeproj/project.pbxproj # WooCommerce/WooCommerceTests/POS/Mocks/MockAnalytics.swift # WooCommerce/WooCommerceTests/POS/Mocks/MockPOSAnalytics.swift
…private API `_body`.
…fix-build-errors # Conflicts: # Modules/Sources/PointOfSale/Presentation/ItemListView.swift # Modules/Sources/PointOfSale/Utils/DynamicHStack.swift # Modules/Sources/PointOfSale/Utils/DynamicVStack.swift # Modules/Sources/PointOfSale/Utils/PreviewHelpers.swift # WooCommerce/WooCommerce.xcodeproj/project.pbxproj # WooCommerce/WooCommerceTests/POS/Mocks/MockPointOfSaleAggregateModel.swift
…how it works on CI.
# Conflicts: # Modules/Sources/PointOfSale/Presentation/Orders/POSOrderBadgeView.swift # Modules/Sources/PointOfSale/Presentation/PointOfSaleAssets.swift # WooCommerce/WooCommerce.xcodeproj/project.pbxproj
… to see how it works on CI." This reverts commit e2a619f.
|
@iamgabrielma @joshheald 👋 We plan to land the POS modularization to trunk early next week, the beginning of the release 23.5 cycle. After this PR is merged, let's keep most of the POS code in the POS module, except for business logic in Yosemite and code that depends on the main app. POS code under |
staskus
left a comment
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.
🥇 Works great!
I performed a regression test, and fixed one issue where POS barcode scanning failure sound wasn't played. The audio wasn't loaded from the module bundle.
I merged with trunk, fixed 3 more warnings, and included a short section documenting the module.
Thank you very much for all this amazing work!
Final PR for WOOMOB-935
~273 files are moved without diffs. Project file diffs are ~1600 (mostly deletions).
Description
This pull request introduces the new
PointOfSalemodule to the Swift package, migrating various Point of Sale (POS) related source files and analytics logic from theWooCommercedirectory into the new module. It also makes necessary APIs public, updates the package manifest to include the new targets and dependencies, and adds related test targets and Xcode scheme configuration.New Module Integration and Package Manifest Updates:
PointOfSalelibrary and target toModules/Package.swift, specifying its dependencies and resources. Also added a corresponding test targetPointOfSaleTestsfor POS-related unit tests. [1] [2] [3]PointOfSalemodule to enable building, running, profiling, and testing in Xcode. [1] [2]Package.resolvedto reflect the new origin hash after modifying dependencies and targets.Source File Migration and API Visibility:
WooCommerce/Classes/POS/toModules/Sources/PointOfSale/, making several types and initializerspublicto support usage outside the module (e.g.,POSOrderListFetchAnalytics,CardPresentPaymentCardReader,CardPresentPaymentOnboardingPresentationEvent,CardPresentPaymentReaderConnectionResult,CardPresentPaymentsRetryApproach). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]Analytics Code Changes:
Resource Management:
Resourcesdirectory for asset management, including POS specific colors and images. [1] [2] [3]ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLSbuild setting) are not generated during the build process for unit tests. Therefore, this PR updates the POS colors to refer to the color catalog by their corresponding string name. There's a follow-up task to look more into reverting it back to the dot syntax color symbols.Steps to reproduce
No behavior changes are expected from the POS modularization. Please perform a regression testing on POS and IPP, where some code/assets are shared.
Testing information
I did a round of regression testing on iPad Pro 11in 3rd generation, iOS 26.0, from the installable build.
RELEASE-NOTES.txtif necessary.