CocoaPods / CocoaPods

The Cocoa Dependency Manager.
https://cocoapods.org/
Other
14.5k stars 2.62k forks source link

Super-issue to track all ARM-related tasks in motion. #10408

Open igor-makarov opened 3 years ago

igor-makarov commented 3 years ago

These are the tasks that are to be finished before CocoaPods is ARM-compatible:

  1. [x] 1 Bump minimum Ruby version to 2.6 in Core - required by async gem https://github.com/CocoaPods/Core/pull/671 MERGED 🚀
  2. [ ] 2 Replace typhoeus in Core with async-http - blocked by (1) https://github.com/CocoaPods/Core/pull/669
  3. [ ] 3 Add M1 pipeline in Core - blocked by (2) and (nio4r patch (released)) https://github.com/CocoaPods/Core/pull/672
  4. [x] 4 Replace typhoeus with native open_uri in CocoaPods https://github.com/CocoaPods/CocoaPods/pull/10346 MERGED 🚀
  5. [ ] 5 Bump minimum Ruby version to 2.6 in CocoaPods - required and blocked by Core changes (1) https://github.com/CocoaPods/CocoaPods/pull/10412
  6. [ ] 6 CocoaPods & Core integration + final typhoeus removal - blocked by (2) & (5) PR TBD
  7. [ ] 7 Add M1 pipeline in CocoaPods - blocked by (6) PR TBD

Side note: @segiddins has tried adding Ruby 3 tests before this effort began. (5) might unblock that PR (https://github.com/CocoaPods/CocoaPods/pull/10324).

@jasl @dnkoutso let me know if I missed anything and I'll add it.

jasl commented 3 years ago

LGTM

dnkoutso commented 3 years ago

awesome! really cool to see this organized!

jasl commented 3 years ago

I forgot one thing, it's better to include this PR https://github.com/CocoaPods/CocoaPods/pull/10324

igor-makarov commented 3 years ago

@jasl I'm not sure, why do you think so? It seems to be general Ruby 3 compat, not ARM compat. We went with nio4r 'pure' implementation for ARM arch, so native fibers aren't a requirement. WDYT?

jasl commented 3 years ago

@jasl I'm not sure, why do you think so? It seems to be general Ruby 3 compat, not ARM compat. We went with nio4r 'pure' implementation for ARM arch, so native fibers aren't a requirement. WDYT?

That PR contains:

I also do these in https://github.com/CocoaPods/Core/pull/671

I think our major target is ARM native support, but we can also get Ruby 2.6+ compatible during this work (CocoaPods won't work on Ruby 3.0), it can be considered as by-product.

Support Ruby 3.0 has an advantage, it's good for full stack devlopers who may both working on Ruby and iOS development

jasl commented 3 years ago

native fibers aren't a requirement

We're not aim for native fibers, I just wanna ensure CocoaPods can running on Ruby 2.6 to latest versions, without that PR, CocoaPods will gain deprecation warning on Ruby 2.7 because of Separation of positional and keyword arguments and get error on Ruby 3.0

igor-makarov commented 3 years ago

@jasl I agree, full support for Ruby 3 is definitely desired, including resolving the deprecations. However, it does not seem to be a blocker for ARM, and also a little bit farther away in terms of effort required.

If it's separate, we'll be able to ship ARM support sooner.

Or am I missing something?

jasl commented 3 years ago

@jasl I agree, full support for Ruby 3 is definitely desired, including resolving the deprecations. However, it does not seem to be a blocker for ARM, and also a little bit farther away in terms of effort required.

If it's separate, we'll be able to ship ARM support sooner.

Or am I missing something?

Yeah It's not blocker for ARM.

I mean that PR can be part of Bump minimum Ruby version to 2.6 in CocoaPods, It also need to update CI matrix (remove 2.3 - 2.5), and because the PR is already here, we can based on it and adding:

jasl commented 3 years ago

Anyway, that's not a big deal, but if @segiddins has time to finish that PR, I'm glad to see we can merge it first, that's can parallel with this issue listed tasks.

igor-makarov commented 3 years ago

@jasl yeah let's keep it parallel and see if it gets merged soon...

jasl commented 3 years ago

"1 Bump minimum Ruby version to 2.6 in Core" is merged