-
Notifications
You must be signed in to change notification settings - Fork 33
chore(ci): harden CI + roadmap for fearless-utils hygiene #1297
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
Open
WRRicht3r
wants to merge
428
commits into
develop
Choose a base branch
from
chore/ci-utils-roadmap-hardening
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ing to optional to satisfy Swift 6 inference Signed-off-by: William Richter <richter@soramitsu.co.jp>
…redeclaration with CIKeys.generated.swift; rely on CIKeys/FearlessKeys Signed-off-by: William Richter <richter@soramitsu.co.jp>
…odel initializer by providing enabledAssetIds from assetsVisibility Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ity to avoid redeclaration; rely on tokens-backed assets elsewhere fix(keys): make FearlessKeysShim a no-op to avoid redeclaration with CIKeys.generated.swift Signed-off-by: William Richter <richter@soramitsu.co.jp>
…replacingPrice in PricesService.handle Signed-off-by: William Richter <richter@soramitsu.co.jp>
Gate debug keys behind canImport(FearlessKeys) to restore PR/local builds.
Minor Swift clean-up; no behavior change.
Sort pairs by pairId explicitly before mapping, keeping stable order without needing Comparable.
…th updated SSF APIs - Gate Debug-only key usage behind and fall back to CI-generated keys • AlchemyRequest, AlchemyNFTOperationFactory (ThirdPartyServicesApiKeys) • OklinkHistoryOperationFactory, BlockExplorerApiKey (BlockExplorerApiKeys) • EthereumNodeFetching (EthereumNodesApiKeys) - Remove deprecated builder calls in SubstrateTransferService - Avoid requirement for LiquidityPair by sorting with - Minor Swift style: implicit return in ServiceCoordinator No push; signed per repo policy.
- Gate Debug-only key usage behind and fall back to CI-generated keys • AlchemyRequest, AlchemyNFTOperationFactory (ThirdPartyServicesApiKeys) • OklinkHistoryOperationFactory, BlockExplorerApiKey (BlockExplorerApiKeys) • EthereumNodeFetching (EthereumNodesApiKeys) - Remove deprecated builder calls in SubstrateTransferService - Avoid requirement for LiquidityPair by sorting with - Minor Swift style: implicit return in ServiceCoordinator - PricesService: unwrap optional PriceData before replacing price (keep asset if nil) No push; signed per repo policy.
Provide a local extension that updates chain.assets and returns self to satisfy legacy usage in PricesService.
…ng API Remove deprecated cacheOptions parameter and handle raw AccountStatisticsResponse from stream.
Cast to app ChainRegistryProtocol to use the synchronous and avoid erroneous async requirement.
Set appId to nil to align with updated ChainOptions and extrinsic builder API.
is non-optional in current extensions; parse directly to UInt64 with a guard.
- Remove cases for deprecated explorers in HistoryOperationFactory and route only supported types - Simplify RewardOperationFactory switch to avoid non-existent cases - Replace DataProviderObserverOptions(notifyIfNoDiff:) with (alwaysNotifyOnRefresh:waitsInProgressSyncOnAdd:)
Specify closure return type and use a named parameter to resolve 'nil' compatibility error.
Update PricesService to set chain.assets = Set(updatedAssets) and append that chain.
…f liquidity pool shims - Implement async webSocketDidChangeState(engine:from:to:) per SSFUtils protocol - Make PolkaswapLiquidityPoolService and assembly internal to avoid public API using internal types
Use Array(Data) instead of .bytes to produce [UInt8] from two's complement representation.
Provide to satisfy existing call sites (e.g., WalletConnect/Ethereum).
Capture signing payload via builder.signing closure, then sign it with TransactionSigner and return encoded MultiSignature.
…ry symbol Provide a local RuntimeCoderFactoryProtocol implementation backed by RuntimeSnapshot and use it in RuntimeProvider.
…idators - Fallback to static min-amount mapping when inspector throws - Drop .liberland and .acala cases no longer present in Chain enum
Fallback to sorting by asset symbol when price list is unavailable in current models.
ExternalApiExplorerType may not include .oklink in current models; omit and fall through to default (no action).
… and unwrap APY optionals - Cast to ChainRegistryProtocol/ChainRegistry to call sync getRuntimeProvider/getSubstrateConnection - Use Array(secretKey) for EthereumPrivateKey init to avoid RawSpan - Safely unwrap nested optionals when mapping APY responses - Remove .oklink branch from ExternalApiExplorerType action title
Change public extension on PolkaswapLiquidityPoolService to internal extension to satisfy access level rules.
- Use literal key path to avoid #keyPath(CDAsset.id) ambiguity - Map type from instead of deprecated - Remove usage of ; set empty price list
Safely map by double-compactMap to extract poolId and APY list.
…iases to fearless.* Strip all 'import SSFModels' from committed mocks and add top-level typealiases mapping MetaAccountModel/ChainAccountResponse to fearless module to avoid ambiguous lookup. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…/ChainAsset Fix missing type errors by importing SSFModels at header and explicitly aliasing core types while keeping MetaAccountModel/ChainAccountResponse bound to fearless module. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…cates from generated mocks Add SSFModels bindings (AssetModel, ChainModel, ChainAsset, ChainFormat, AccountId, StakingType, ChainAssetKey) and app-protocol aliases in CuckooTypealiases.swift. Remove header aliases/imports from CommonMocks.swift and ModuleMocks.swift to avoid redeclarations and ambiguity. Signed-off-by: William Richter <richter@soramitsu.co.jp>
Author
|
@codex critique this codebase |
|
Summary
Testing
|
- FearlessApplication.dropSession(): resolve active foreground window using connectedScenes and UIWindowScene windows instead of deprecated UIApplication.shared.windows.first. - MainTabBarViewFactory.createView(): stop using deprecated keyWindow; resolve ApplicationStatusPresentable window via connectedScenes. - HistoryService.fetchTransactionHistory: avoid invoking completion when the operation was cancelled to prevent teardown crashes. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ter cancellation-aware; make URL handler thread-safe - RootPresenterFactory: add Dependencies container and overload to support constructor injection while keeping default singleton-backed path. - RootPresenter: mark @mainactor, store and cancel Task handle on reload/deinit; remove extra main queue hops. - URLHandlingService: add concurrent queue with barrier writes and snapshot reads; make registry updates thread-safe. - docs: add CodexCritique.md capturing identified issues and directions. Signed-off-by: William Richter <richter@soramitsu.co.jp>
Swift forbids deinit in extensions; keep cancellation in-class. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…col in dependencies RootPresenterFactory.Dependencies now carries KeystoreProtocol; defaults to SoraKeystore.Keychain(). Signed-off-by: William Richter <richter@soramitsu.co.jp>
…n; align OnboardingViewInput method signature Satisfy nonisolated protocol requirements under Swift 6 while keeping UI mutations on main via DispatchQueue.main.async. Signed-off-by: William Richter <richter@soramitsu.co.jp>
Author
|
@codex fix the codecov issues once and for all |
|
Summary
Testing
|
…igger) Signed-off-by: William Richter <richter@soramitsu.co.jp>
…o avoid Swift 6 diagnostics on CI Signed-off-by: William Richter <richter@soramitsu.co.jp>
…les under build/coverage and ignore in git Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ult Jenkins destination to generic to avoid ambiguous matches Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
…lve ChainModel/ChainAsset/StakingType in generated mock signatures Signed-off-by: William Richter <richter@soramitsu.co.jp>
…to fearless module not SSFModels Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ed mock references Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ous type lookups and Cuckoo mock conformance failures\n\n- Pin app module types via typealiases (MetaAccountModel, ChainRegistryProtocol, SchedulerProtocol, etc.)\n- Pin SSF models where appropriate (RuntimeMetadataItem)\n\nThis unblocks Jenkins PR build (#1297) by removing Swift ‘ambiguous for type lookup’ errors. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…alias to to match production protocols (RuntimeProviderFactoryProtocol/Pool). Fixes mismatch errors in Jenkins PR #1297. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…riceData\n\nExpose SSFModels types to tests via central alias files to resolve 'Cannot find type … in scope' errors during Jenkins build. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…out the relationship\n\n- Check entity.propertiesByName before KVC get/set to avoid NSUnknownKeyException when older/alternate models are loaded during tests.\n- Keeps behavior unchanged when relationship exists.\n\nStabilizes unit tests on CI that load differing Core Data models (SSFAcountManagmentStorage vs local). Signed-off-by: William Richter <richter@soramitsu.co.jp>
…formables\n\n- Clean SubstrateDataModel v2–v8 and base model XML: drop customClassName on Transformable attributes (purchaseProviders, availableSources, forceSmartIds, availableAssets, assets).\n- Keeps NSSecureUnarchiveFromDataTransformer where present; no functional change.\n- Silences Core Data runtime warnings on CI. Signed-off-by: William Richter <richter@soramitsu.co.jp>
…del\n\n- AccountExportPasswordTests: stub SheetAlertPresentable.present(viewModel:from:)\n- ControllerAccountTests: stub view.didReceive(feeViewModel:)\n\nFixes intermittent Cuckoo 'No stub for method' failures on CI. Signed-off-by: William Richter <richter@soramitsu.co.jp>
3e72500 to
65b012c
Compare
- Podfile: inhibit SoraUI warnings; disable warnings-as-errors for Pods - test-matrix: allow NO_XCPRETTY=1 for raw xcodebuild output This should unblock hanging tests due to SoraUI PinView warning and provide clearer logs. Signed-off-by: William Richter <richter@soramitsu.co.jp>
65b012c to
514c4e3
Compare
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Notes: references:
- shared-features-spm pin 6d6cb16
- web3-swift dedupe 7.7.7
- optional Google keys injection
- FearlessKeys gated by INCLUDE_FEARLESS_KEYS