mozilla / application-services

Firefox Application Services
https://mozilla.github.io/application-services/
Other
610 stars 225 forks source link

Investigation / Enhancement Request: Support building library with multiple stable XCode #3799

Closed nbhasin2 closed 1 year ago

nbhasin2 commented 3 years ago

Currently the library is only built with only single XCode but if we are to look into using an older or slightly newer version of library it means building locally and using it.

Suggestion: Allow CircleCI to build library with current latest XCode 12 and last two dot release. Current Stable XCode 12.3 with its dot release 12.1,12.2 and 12.3 (stable) For example next app services library comes app-services-1.0-swift-5.3

┆Issue is synchronized with this Jira Task ┆Epic: local development, ci and release (backlog)

rfk commented 3 years ago

(cross-linking https://github.com/mozilla/application-services/issues/3769 for context on the failure modes caused by this)

rfk commented 3 years ago

also ref https://github.com/mozilla/application-services/pull/2675 for a previous proposal to enable the BUILD_LIBRARY_FOR_DISTRIBUTION flag, which IIUC was intended to address the same underlying concern (using built artifacts across compatible versions of swift).

rfk commented 3 years ago

Cross-linking https://github.com/mozilla/application-services/pull/3900 for reference. It's a little experiment in trying to remove our dependency on SwiftProtoBuf, which IIUC would let us build using BUILD_LIBRARY_FOR_DISTRIBUTION, which IIUC would in turn decouple the version of Swift used by appservices from the version uses by its consumers.

rfk commented 3 years ago

We're currently building for xcode 12.3 in CI, but I seem to have updated to xcode 12.4 locally on my mac here. As an experiment, I've done a local build of the 73.0.1 release tag and uploaded it to github as a separate artifact:


Capture

Before getting too deep into whether or how to automate anything like that, let's see if we can use this as a cheap way to explore whether having multiple uploaded artifacts will help the developer experience. (Requests to rename it or upload other artifacts or whatever happily accepted, I just want to have something concrete to focus our collective efforts on for next steps).

data-sync-user commented 3 years ago

➤ Ryan Kelly commented:

Given the work on moving to swift packages etc and #mobile-build-modernization, I think we will solve the XCode compatibility in a different way, probably by allowing consumers to directly compile the swift code, or by using BUILD_LIBRARY_FOR_DISTRIBUTION. Thanks all!