dpogue opened a new pull request, #1515:
URL: https://github.com/apache/cordova-ios/pull/1515

   # 🚨 This DOES NOT work currently 🚨 
   See below for details.
   
   ### Platforms affected
   iOS
   
   
   ### Motivation and Context
   Ref GH-1089.
   
   Swift package manager is the built-in way to handle 3rd party dependencies 
for Xcode and Swift projects, and Cocoapods is no longer in active development. 
We want to provide a way for plugins to express and manage their dependencies 
as Swift packages.
   
   The best way to do that seems to be for the plugins themselves to 
(optionally) become Swift packages.
   
   
   ### Description
   When a plugin declares in its plugin.xml file that it supports `<platform 
name="ios" package="swift">` and contains a Package.swift file in the plugin 
root, we will treat it as a Swift package and add it as a dependency of the app 
project (technically a dependency of a stub dependency, because that's easier 
than monkeying further with Xcodeproj files).
   
   ### Why This Currently Fails
   Each Swift package is treated as its own self-contained library, with access 
only to the dependencies that it declares. This means that plugins cannot 
access CordovaLib headers unless the declare a dependency on CordovaLib in 
their own Package.swift file. That would end up tying them to a very specific 
version of Cordova and potentially resulting in conflicts due to multiple 
plugins requesting different versions that don't match the app's version.
   
   It feels like the only workaround is for the plugin install process to edit 
the Package.swift of each plugin and adjust the CordovaLib dependency to point 
to the local app one, but then we need to be able to parse and modify arbitrary 
Package.swift files.
   
   Even with the plan to rewrite, it's not clear (for our own Apache plugins) 
if we can point them at the master branch of cordova-ios and still pass a 
release vote, because they would be pointing to a dependency that has not had a 
release vote. This could result in needing to churn the version dependency in 
every plugin every time we release a new cordova-ios version (even if we don't 
need to publish those changes).
   
   ### Testing
   <!-- Please describe in detail how you tested your changes. -->
   Tested locally against this branch of cordova-plugin-device: 
https://github.com/dpogue/cordova-plugin-device/tree/spm
   
   
   ### Checklist
   
   - [ ] I've run the tests to see all new and existing tests pass
   - [ ] I added automated test coverage as appropriate for this change
   - [ ] If this Pull Request resolves an issue, I linked to the issue in the 
text above (and used the correct [keyword to close issues using 
keywords](https://help.github.com/articles/closing-issues-using-keywords/))
   - [ ] I've updated the documentation if necessary
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to