Enable ARC for key modules and add Swift Package Manager support#533
Enable ARC for key modules and add Swift Package Manager support#533bc-lee wants to merge 2 commits intogoogle:mainfrom
Conversation
|
First up, thank you for the PR! 🎉 I'd suggest split this up to talk about things in a few chunks. Would you mind splitting off the ARC changes to be a PR for each module? That way just incase there is a hiccup with anything downstream we have specific commits we could revert if need be. Long ago we saw some code become hotspots when moving to ARC, so while I don't think that would happen this time it would be nice to have distinct commits for each target being moved so things can be easily reverted if something did come up. As for support for SwiftPM, I wouldn't say this "Fixes #258", since it would only do a few targets. 😄 But supporting SwiftPM work is going to be a slightly larger discussion and worth a distinct PR. If you look at google/gtm-session-fetcher and google/google-api-objectivec-client-for-rest you'll see we had to go a very different layout than the |
|
Thanks for the thoughtful review! I'll go ahead and split this PR into multiple smaller ones as you suggested, to make reviewing and potential reverts easier. Regarding SwiftPM support — I think that we don't need to convert all But I’ll take a closer look at the approach used in the other repos you mentioned. It makes sense to align with what’s proven to work downstream. I'll keep this PR open while I work on splitting out the necessary changes into separate PRs. Once those are ready, I’ll close this one. |
Replied there also (saw that first), I agree we don't have to convert everything at once. If this is in reference to my comment:
Then my point wasn't that everything had to be done right now, just that the use of "Fixes #258" would close that issue as complete, and I don't think we should close it until everything is supported. |
|
This PR will be replaced by #540. |
This pull request enables ARC (Automatic Reference Counting) for the
GTMLoggerandGTMStringEncodingmodules by removing manual memory management code. It also introduces Swift Package Manager (SPM) support, making it easier to manage dependencies and integrate the library into modern Swift projects.Related: #258
Related: https://issuetracker.google.com/issues/174418229