Skip to content

Continue SDK manifest lookup until the requested platform is found - #1072

Closed
JCash wants to merge 4 commits into
devfrom
console-sdk-fix
Closed

JCash wants to merge 4 commits into
devfrom
console-sdk-fix

Conversation

@JCash

@JCash JCash commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Fix platform lookup when an earlier platform.sdks.json does not contain the requested target, such as arm64-nx64. The server now continues through the configured manifest URLs until it finds that platform, and caches the result by engine version and target platform.

Technical changes

  • Include the target platform in mapping lookup and in the keys for cached mappings and concurrent lookups.
  • Cache only manifests that contain the requested platform, preserving the existing unsupported-platform handling.
  • Add local regression tests for fallback, cache isolation in both request orders, retries, and concurrent requests for different platforms. Adapt existing mapping tests to the additional argument.

Validation: focused regressions passed. The broader server run passed with 466 tests passed and 3 skipped; integration tests and six existing tests that fetch real SDKs or manifests were excluded.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Summary - Extender code coverage report

Summary
Generated on: 09/27/2026 - 14:15:17
Coverage date: 09/27/2026 - 14:14:33
Parser: JaCoCo
Assemblies: 16
Classes: 107
Files: 107
Line coverage: 49.1% (4056 of 8245)
Covered lines: 4056
Uncovered lines: 4189
Coverable lines: 8245
Total lines: 16962
Branch coverage: 52.3% (1897 of 3625)
Covered branches: 1897
Total branches: 3625
Method coverage: Feature is only available for sponsors
Tag: 284_36325152349

Coverage

com/defold/extender - 43.6%
Name Line Branch
com/defold/extender 43.6% 50.5%
com/defold/extender/AppManifestConfiguration 100%
com/defold/extender/AppManifestPlatformConfig 100%
com/defold/extender/AsyncBuilder 0% 0%
com/defold/extender/BuilderConstants 80%
com/defold/extender/BuildProgressController 93.1% 91.6%
com/defold/extender/Configuration 100%
com/defold/extender/Extender 14.5% 14.4%
com/defold/extender/ExtenderApplication 0%
com/defold/extender/ExtenderBuildState 63.1% 57.1%
com/defold/extender/ExtenderConst 0%
com/defold/extender/ExtenderController 17.4% 19.7%
com/defold/extender/ExtenderException 100%
com/defold/extender/ExtenderUtil 72.4% 66.9%
com/defold/extender/ExtenderYamlSafeConstructor 100%
com/defold/extender/ExtensionManifestValidator 95.4% 89.4%
com/defold/extender/ManifestConfiguration 100%
com/defold/extender/ManifestPlatformConfig 100%
com/defold/extender/PlatformConfig 100%
com/defold/extender/PlatformNotSupportedException 0%
com/defold/extender/R8Builder 88.1% 77.6%
com/defold/extender/R8Configuration 93.5% 50%
com/defold/extender/R8RulePolicy 76% 70.4%
com/defold/extender/RequestErrorAdvice 89.6% 75%
com/defold/extender/SandboxedPath 72.5% 71.4%
com/defold/extender/TemplateExecutor 39.1% 50%
com/defold/extender/Timer 100%
com/defold/extender/TreePrinter 0% 0%
com/defold/extender/Version 0%
com/defold/extender/VersionNotSupportedException 0%
com/defold/extender/WebSecurityConfig 0% 0%
com/defold/extender/WhitelistConfig 100%
com/defold/extender/ZipUtils 80.3% 69.2%
com/defold/extender/builders - 0%
Name Line Branch
com/defold/extender/builders 0% 0%
com/defold/extender/builders/CSharpBuilder 0% 0%
com/defold/extender/cache - 32.8%
Name Line Branch
com/defold/extender/cache 32.8% 15.6%
com/defold/extender/cache/CacheEntry 64.7% 75%
com/defold/extender/cache/CacheKeyGenerator 81.8% 100%
com/defold/extender/cache/DataCache
com/defold/extender/cache/DataCacheFactory 5% 0%
com/defold/extender/cache/DummyDataCache 80%
com/defold/extender/cache/GCPDataCache 0% 0%
com/defold/extender/cache/LocalDiskDataCache 66.6% 0%
com/defold/extender/cache/info - 100%
Name Line Branch
com/defold/extender/cache/info 100% ****
com/defold/extender/cache/info/CacheInfoFileParser 100%
com/defold/extender/cache/info/CacheInfoFileWriter 100%
com/defold/extender/cache/info/CacheInfoWrapper 100%
com/defold/extender/jetty - 82.6%
Name Line Branch
com/defold/extender/jetty 82.6% 52.9%
com/defold/extender/jetty/ExtenderJettyErrorHandler 75.8% 36.3%
com/defold/extender/jetty/JettyRequestEventsHandler 86.6% 83.3%
com/defold/extender/jetty/JettyServerConfiguration 100%
com/defold/extender/log - 40%
Name Line Branch
com/defold/extender/log 40% 60%
com/defold/extender/log/ExtenderLogEnhancer 0% 0%
com/defold/extender/log/ExtenderLogEnhancerConfiguration 0% 0%
com/defold/extender/log/LogSanitizer 100% 100%
com/defold/extender/log/Markers 80%
com/defold/extender/metrics - 37.5%
Name Line Branch
com/defold/extender/metrics 37.5% ****
com/defold/extender/metrics/MetricsWriter 37.5%
com/defold/extender/process - 73.4%
Name Line Branch
com/defold/extender/process 73.4% 77.2%
com/defold/extender/process/CommandLineTokenizer 97.7% 92.6%
com/defold/extender/process/ProcessExecutor 64.3% 61.1%
com/defold/extender/process/ProcessUtils 0% 0%
com/defold/extender/progress - 90.6%
Name Line Branch
com/defold/extender/progress 90.6% 81.6%
com/defold/extender/progress/BuildProgressEvent 100%
com/defold/extender/progress/BuildProgressService 90.2% 80.5%
com/defold/extender/progress/BuildStage 100% 100%
com/defold/extender/progress/ProgressReporter 40%
com/defold/extender/remote - 88.9%
Name Line Branch
com/defold/extender/remote 88.9% 67.2%
com/defold/extender/remote/RemoteBuildException 100%
com/defold/extender/remote/RemoteEngineBuilder 93.2% 71.8%
com/defold/extender/remote/RemoteHostConfiguration 100%
com/defold/extender/remote/RemoteInstanceConfig 100%
com/defold/extender/remote/RemoteProgressRelay 76.7% 60.8%
com/defold/extender/services - 58.2%
Name Line Branch
com/defold/extender/services 58.2% 48.6%
com/defold/extender/services/DataCacheService 79.8% 61.9%
com/defold/extender/services/DefoldSdkService 76.5% 64.1%
com/defold/extender/services/DefoldSdkServiceConfiguration
com/defold/extender/services/GCPInstanceService 1.1% 0%
com/defold/extender/services/GradleArtifact 100%
com/defold/extender/services/GradleService 0%
com/defold/extender/services/GradleServiceInterface
com/defold/extender/services/HealthReporterService 82.4% 55.2%
com/defold/extender/services/MockGradleService 0%
com/defold/extender/services/RealGradleService 55.9% 40%
com/defold/extender/services/ResolvedNativeDeps 0%
com/defold/extender/services/UserUpdateService 0% 0%
com/defold/extender/services/cocoapods - 53%
Name Line Branch
com/defold/extender/services/cocoapods 53% 59.2%
com/defold/extender/services/cocoapods/CocoaPodsService 9.4% 20.6%
com/defold/extender/services/cocoapods/CocoaPodsServiceBuildState 21%
com/defold/extender/services/cocoapods/CreateBuildSpecArgs 60.7%
com/defold/extender/services/cocoapods/IConfigParser
com/defold/extender/services/cocoapods/LanguageSet 66.6% 50%
com/defold/extender/services/cocoapods/MainPodfile 20%
com/defold/extender/services/cocoapods/PlatformAndLanguageSet 0% 0%
com/defold/extender/services/cocoapods/PlatformSet 0% 0%
com/defold/extender/services/cocoapods/PlistBuddyWrapper 0% 0%
com/defold/extender/services/cocoapods/PodBuildSpec 81.4% 65.4%
com/defold/extender/services/cocoapods/PodfileParser 94.9% 82.2%
com/defold/extender/services/cocoapods/PodfileParsingException 100%
com/defold/extender/services/cocoapods/PodSpec 60.4% 40%
com/defold/extender/services/cocoapods/PodSpecParser 92.2% 82.2%
com/defold/extender/services/cocoapods/PodUtils 86.5% 78.5%
com/defold/extender/services/cocoapods/ResolvedPods 51.5% 45.6%
com/defold/extender/services/cocoapods/XCConfigParser 94.5% 85.2%
com/defold/extender/services/data - 80.7%
Name Line Branch
com/defold/extender/services/data 80.7% 75%
com/defold/extender/services/data/DefoldSdk 87.5% 75%
com/defold/extender/services/data/GCPInstanceState 0%
com/defold/extender/services/spm - 40.7%
Name Line Branch
com/defold/extender/services/spm 40.7% 48.2%
com/defold/extender/services/spm/ResolvedPackages 0% 0%
com/defold/extender/services/spm/SpmBuildOutputParser 91.3% 81.1%
com/defold/extender/services/spm/SpmManifestParser 87.3% 72.1%
com/defold/extender/services/spm/SpmManifestParsingException 100%
com/defold/extender/services/spm/SpmServiceBuildState 0% 0%
com/defold/extender/services/spm/SpmServiceConfiguration 0%
com/defold/extender/services/spm/SwiftPackageManagerService 0% 0%
com/defold/extender/tracing - 21.2%
Name Line Branch
com/defold/extender/tracing 21.2% 25%
com/defold/extender/tracing/ExtenderExecutor 0% 0%
com/defold/extender/tracing/ExtenderTracerInterceptor 100% 100%
com/defold/extender/tracing/TraceIdInResponseServletFilter 0% 0%
com/defold/extender/utils - 18.1%
Name Line Branch
com/defold/extender/utils 18.1% 32.5%
com/defold/extender/utils/FrameworkUtil 0% 0%
com/defold/extender/utils/PodBuildUtil 0% 0%
com/defold/extender/utils/VersionUtil 69.2% 65%

@JCash JCash changed the title Fix SDK selection based on different sdk locations Continue SDK manifest lookup until the requested platform is found Sep 27, 2026
@JCash
JCash requested a review from ekharkunov September 27, 2026 14:16
@ekharkunov

Copy link
Copy Markdown
Contributor

Closed in favor of #1081

@ekharkunov ekharkunov closed this Sep 28, 2026
@ekharkunov
ekharkunov deleted the console-sdk-fix branch September 28, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants