adobe / aepsdk-target-ios

Adobe Experience Platform - Target extension built with Swift
Apache License 2.0
0 stars 15 forks source link

Pin Rules Engine to exact version #114

Closed timsearle closed 2 years ago

timsearle commented 2 years ago

Expected Behaviour

All dependencies for a given version of the Target package are pinned to exact versions

Actual Behaviour

https://github.com/adobe/aepsdk-rulesengine-ios.git is set to upToNextMajor in Package.swift - this means SPM in Xcode is more likely to regularly re-resolve packages and can mean what gets built on CI is different to what has been built locally.

Sample Code that illustrates the problem

https://github.com/adobe/aepsdk-target-ios/blob/d78737f8fc24965d385ced2efd2ba9fabb22348b/Package.swift#L23

Change to:

.package(url: "https://github.com/adobe/aepsdk-core-ios.git", .exact("3.1.0")),
praveek commented 2 years ago

@timsearle Please commit Packages.resolved to your repository to lock in specific version of the dependencies. Changing it to .exact is not possible as the app can include multiple extensions depending on aepsdk-core-ios.

timsearle commented 2 years ago

Apologies - I referenced the wrong package, I meant to reference this one:

https://github.com/adobe/aepsdk-core-ios/blob/1f037918856101e863a8e6b1bc44e04ca40f189f/Package.swift#L29

We do have our Package.resolved committed, but Xcode's integration with SPM seems to often re-generate/update it with these downstream package resolutions to higher versions.

praveek commented 2 years ago

@timsearle We have multiple extensions depending on aepsdk-rulesengine-ios.git. Changing it to .exact will force us to make multiple releases with any update to rules engine. I am going to close this one for now but let us know if the behaviour remains the same with Xcode 14.