vincentriemer / react-native-dom

An experimental, comprehensive port of React Native to the web.
https://rntester.now.sh
MIT License
3.25k stars 73 forks source link

upgrade react-native compability from 0.57.* to 0.62.2 #115

Open arehman849 opened 3 years ago

arehman849 commented 3 years ago

This branch has been upgraded from react-native 0.57 to 0.62.

Thanks to Gavish, Sasmit and Harpreet for continues contribution in upgrading react-native-dom.

Below are the changes made in brief.

  1. Native implementation moved from react-native-dom to react-native-dom-renderer (new package to be published in npm) Reasons: a. deprecation of rnpm and haste modules from react-native b. implementations/changes done to bring functionalities inline with react-native 0.62 (such as Image.getSize() has been moved from RCTImage to RCTImageLoader)
  2. Moved CLI from local-cli folder to react-native-dom-cli (new package to be published in npm) Reasons: a. deprecation of rnpm and haste modules from react-native b. to be inline with react-native's structure. c. added dom bundling script to CLI and can be invoked using command 'react-native build-dom'
  3. Created react-native-dom-init package to bootstrap react-native-dom into react-native project (new package to be published in npm) Reasons: a. deprecation of rnpm b. to ingest bundling and start commands in package.json.
  4. Modified react-native-dom libraries (JS implementation) to be inline with react-native 0.62

TODO:

  1. To be tested rntester, examples how ever individual components and api's were manually tested and we are working on fixing some of the issues we have observed.
  2. moving non core components to react-native-community, we have worked on asyncStorage as a sample.
  3. moving to react-native 0.62.* compatible version of yoga-dom and adding platform independent build script.
  4. Changes related to autolinking of third party modules.
hps1978 commented 3 years ago

Even the "moving to react-native 0.62.* compatible version of yoga-dom" from the TODO list above was also completed. Expect a pull request for that as well soon :-)

gavdix commented 3 years ago

Even the "moving to react-native 0.62.* compatible version of yoga-dom" from the TODO list above was also completed. Expect a pull request for that as well soon :-)

Even Yoga-dom is also upgraded. Pull Request

vincentriemer commented 3 years ago

Hey! I really appreciate the effort/initiative ya'll have made towards updating this project. Unfortunately it's been over a year now since I've worked on this codebase — my approach was going to be to revisit this project when the Fabric rewrite was complete and more-or-less rewriting the project to match that new architecture. What I didn't anticipate was it taking as long as it has and in that time I've lost more and more context to this project. Losing all that context + the size of a PR like this would require a lot of bandwidth from me to review — and frankly w/ the personal situation I'm in it's bandwidth I just don't have.

The last thing I'd want to do however is block you, so here's my recommendation: continue working on your fork and publish your own version (I think using a scoped package name would work best). Once you have your fork fully working (it'd be best to see a non-trivial app running with it), I'd be more than happy to direct people to your updated fork in the readme.

arehman849 commented 3 years ago

Hey! I really appreciate the effort/initiative ya'll have made towards updating this project. Unfortunately it's been over a year now since I've worked on this codebase — my approach was going to be to revisit this project when the Fabric rewrite was complete and more-or-less rewriting the project to match that new architecture. What I didn't anticipate was it taking as long as it has and in that time I've lost more and more context to this project. Losing all that context + the size of a PR like this would require a lot of bandwidth from me to review — and frankly w/ the personal situation I'm in it's bandwidth I just don't have.

The last thing I'd want to do however is block you, so here's my recommendation: continue working on your fork and publish your own version (I think using a scoped package name would work best). Once you have your fork fully working (it'd be best to see a non-trivial app running with it), I'd be more than happy to direct people to your updated fork in the readme.

Thank you for looking at the pull request and suggesting we could go ahead with our fork for now. Since we have new packages for Renderer, CLI, init and some folder restructuring in react-native-dom it would be wise to create separate NPM packages for each.

planning to name them as rn-dom-init - used to bootstrap react-native project with rn-dom . rn-dom-renderer - part of the rn-dom library. rn-dom-cli - out of tree platform commands as supported by react-native. rn-dom - library code itself. rn-yoga-dom - yoga dom upgrades.

We will keep posting here on the progress of rn-dom-* packages.

We were able to bring up movies demo code with this latest upgrade & would host the same on heroku / any other hosting provider. Let me know if you have any other suggestions.