ptmt/react-native-macos

Any plan to merge react-native newer version?

beretboat opened this issue · 10 comments

Last merged react-native version is v44, which use react v16.0.0-alpha.12.
react v16 rc supports fragments (returning arrays from components), a long-expected feature.

ptmt commented

Sure, I do have plans. There a lot of changes such as metro-bundler (decoupled from react-native packager). React 16 Fiber also is very welcomed. I'm waiting for it to stabilize, and before this work I'm upgrading my casual React Native iOS / Android projects.

I guess I can close it since, it's a question.

Thanks. Glad to hear.

May I ask when will it happen? In days, weeks, or months? Just a rough estimation, it does not have to be a accurate time.

ptmt commented

Got it. Thanks!

Sorry to reopen this. 0.52 has been released for a while, are you still going to merge this version?

ptmt commented

Yes. I started it locally. There a lot of changes, including React 16, metro bundler, revised UIExplorer -> TesterApp, moving from Travis to CircleCI, etc. 2661 files to resolve (some of them are quick and straightforward, but a hundred or so are tricky one).

@ptmt Curious if you have a strategy for dealing with this considering you've done this a few times already. Or are you just the most patient man on the planet?

Is something you could use help with or is this a @ptmt shaped problem?

Good to know, thanks!

ptmt commented

@skellock It's a good question.

I'm working right now on this, it's painfully slow because of a small amount of spare-time. But there are numerous ways to make things faster. First, extract all macOS specific components into the single repo. Something like react-native-appkit-components. The second thing is trying to pull not everything from RN but only specific pull requests (such as upgrading to React 16.2, etc.)

I think also that there are several ongoing projects that may replace this one as more successful.

ptmt commented

This is what it looks like. 2500 merge conflicts to resolve. 50% of them really silly and I usually do this stage fast. The rest usually are Git merge fails, and probably a more sophisticated merger software would help dramatically. I tried most of the free software available for it.

Here are a few examples:
screenshot 2018-01-17 17 26 23
(just need to preserve -macos here).

screenshot 2018-01-17 17 24 18
AppKit doesn't allow to access CGI data, so I need to use a helper. Multiple times. Probably the better solution is to add NSImage method.

But even so, 10% of the rest conflicts is where you need to really spend time. I'll do a pull request as soon as I finish this and when I'll need to set up a new CI (CircleCI) and make it all work. I would mean a lot to me if you could test it after pull request is published.