Giter Site home page Giter Site logo

rn-diff's Introduction

RN diff

This repository exposes an untouched React Native app generated with the CLI react-native init RnDiffApp and upgraded with the CLI react-native upgrade after each version of React Native.

A dedicated branch per version makes changes very easy to watch. For example:

See table below for the complete list.

This repository can also be used to upgrade React Native with a git-like interface which is faster and easier than running the react-native upgrade command. See USAGE.md for details.

Please ⭐ this repository if I helped you ;)

Version changes

Version Compare view Patch Stats
0.52.2 rn-0.52.1...rn-0.52.2 rn-0.52.1...rn-0.52.2
0.52.1 rn-0.52.0...rn-0.52.1 rn-0.52.0...rn-0.52.1
0.52.0 rn-0.51.0...rn-0.52.0 rn-0.51.0...rn-0.52.0 2 files changed, 74 insertions(+), 12 deletions(-)
0.51.0 rn-0.50.4...rn-0.51.0 rn-0.50.4...rn-0.51.0 1 file changed, 3 insertions(+), 3 deletions(-)
0.50.4 rn-0.50.3...rn-0.50.4 rn-0.50.3...rn-0.50.4
0.50.3 rn-0.50.2...rn-0.50.3 rn-0.50.2...rn-0.50.3
0.50.2 rn-0.50.1...rn-0.50.2 rn-0.50.1...rn-0.50.2
0.50.1 rn-0.50.0...rn-0.50.1 rn-0.50.0...rn-0.50.1
0.50.0 rn-0.49.5...rn-0.50.0 rn-0.49.5...rn-0.50.0 2 files changed, 9 insertions(+), 3 deletions(-)
0.49.5 rn-0.49.3...rn-0.49.5 rn-0.49.3...rn-0.49.5
0.49.3 rn-0.49.2...rn-0.49.3 rn-0.49.2...rn-0.49.3
0.49.2 rn-0.49.1...rn-0.49.2 rn-0.49.1...rn-0.49.2
0.49.1 rn-0.49.0...rn-0.49.1 rn-0.49.0...rn-0.49.1
0.49.0⚠️ rn-0.48.4...rn-0.49.0 rn-0.48.4...rn-0.49.0 5 files changed, 23 insertions(+), 11 deletions(-)
0.48.4 rn-0.48.3...rn-0.48.4 rn-0.48.3...rn-0.48.4
0.48.3 rn-0.48.2...rn-0.48.3 rn-0.48.2...rn-0.48.3
0.48.2 rn-0.48.1...rn-0.48.2 rn-0.48.1...rn-0.48.2
0.48.1 rn-0.48.0...rn-0.48.1 rn-0.48.0...rn-0.48.1
0.48.0 rn-0.47.2...rn-0.48.0 rn-0.47.2...rn-0.48.0 1 file changed, 35 insertions(+), 2 deletions(-)
0.47.2 rn-0.47.1...rn-0.47.2 rn-0.47.1...rn-0.47.2
0.47.1 rn-0.47.0...rn-0.47.1 rn-0.47.0...rn-0.47.1
0.47.0 rn-0.46.4...rn-0.47.0 rn-0.46.4...rn-0.47.0 1 file changed, 3 insertions(+), 3 deletions(-)
0.46.4 rn-0.46.3...rn-0.46.4 rn-0.46.3...rn-0.46.4
0.46.3 rn-0.46.2...rn-0.46.3 rn-0.46.2...rn-0.46.3
0.46.2 rn-0.46.1...rn-0.46.2 rn-0.46.1...rn-0.46.2
0.46.1 rn-0.46.0...rn-0.46.1 rn-0.46.0...rn-0.46.1
0.46.0 rn-0.45.1...rn-0.46.0 rn-0.45.1...rn-0.46.0 2 files changed, 5 insertions(+), 7 deletions(-)
0.45.1 rn-0.45.0...rn-0.45.1 rn-0.45.0...rn-0.45.1
0.45.0 rn-0.44.3...rn-0.45.0 rn-0.44.3...rn-0.45.0 2 files changed, 10 insertions(+), 3 deletions(-)
0.44.3 rn-0.44.2...rn-0.44.3 rn-0.44.2...rn-0.44.3
0.44.2 rn-0.44.1...rn-0.44.2 rn-0.44.1...rn-0.44.2
0.44.1 rn-0.44.0...rn-0.44.1 rn-0.44.0...rn-0.44.1
0.44.0 rn-0.43.4...rn-0.44.0 rn-0.43.4...rn-0.44.0 5 files changed, 11 insertions(+), 7 deletions(-)
0.43.4 rn-0.43.3...rn-0.43.4 rn-0.43.3...rn-0.43.4
0.43.3 rn-0.43.2...rn-0.43.3 rn-0.43.2...rn-0.43.3
0.43.2 rn-0.43.1...rn-0.43.2 rn-0.43.1...rn-0.43.2
0.43.1 rn-0.43.0...rn-0.43.1 rn-0.43.0...rn-0.43.1
0.43.0 rn-0.42.3...rn-0.43.0 rn-0.42.3...rn-0.43.0 3 files changed, 36 insertions(+), 36 deletions(-)
0.42.3 rn-0.42.2...rn-0.42.3 rn-0.42.2...rn-0.42.3 1 file changed, 2 insertions(+)
0.42.2 rn-0.42.0...rn-0.42.2 rn-0.42.0...rn-0.42.2
0.42.0 rn-0.41.2...rn-0.42.0 rn-0.41.2...rn-0.42.0 7 files changed, 9 insertions(+), 11 deletions(-)
0.41.2 rn-0.41.1...rn-0.41.2 rn-0.41.1...rn-0.41.2 2 files changed, 6 insertions(+)
0.41.1 rn-0.41.0...rn-0.41.1 rn-0.41.0...rn-0.41.1
0.41.0 rn-0.40.0...rn-0.41.0 rn-0.40.0...rn-0.41.0 7 files changed, 476 insertions(+), 5 deletions(-)
0.40.0 rn-0.39.2...rn-0.40.0 rn-0.39.2...rn-0.40.0 6 files changed, 235 insertions(+), 23 deletions(-)
0.39.2 rn-0.39.1...rn-0.39.2 rn-0.39.1...rn-0.39.2
0.39.1 rn-0.39.0...rn-0.39.1 rn-0.39.0...rn-0.39.1
0.39.0⚠️ rn-0.38.0...rn-0.39.0 rn-0.38.0...rn-0.39.0 8 files changed, 97 insertions(+), 52 deletions(-)
0.38.0 rn-0.37.0...rn-0.38.0 rn-0.37.0...rn-0.38.0 3 files changed, 10 insertions(+), 2 deletions(-)
0.37.0 rn-0.36.1...rn-0.37.0 rn-0.36.1...rn-0.37.0 1 file changed, 2 insertions(+), 2 deletions(-)
0.36.1 rn-0.36.0...rn-0.36.1 rn-0.36.0...rn-0.36.1
0.36.0 rn-0.35.0...rn-0.36.0 rn-0.35.0...rn-0.36.0 2 files changed, 4 insertions(+), 4 deletions(-)
0.35.0 rn-0.34.1...rn-0.35.0 rn-0.34.1...rn-0.35.0
0.34.1 rn-0.34.0...rn-0.34.1 rn-0.34.0...rn-0.34.1
0.34.0 rn-0.33.1...rn-0.34.0 rn-0.33.1...rn-0.34.0 2 files changed, 12 insertions(+), 8 deletions(-)
0.33.1 rn-0.33.0...rn-0.33.1 rn-0.33.0...rn-0.33.1
0.33.0 rn-0.32.1...rn-0.33.0 rn-0.32.1...rn-0.33.0 2 files changed, 9 insertions(+), 9 deletions(-)
0.32.1 rn-0.32.0...rn-0.32.1 rn-0.32.0...rn-0.32.1
0.32.0 rn-0.31.0...rn-0.32.0 rn-0.31.0...rn-0.32.0 1 file changed, 4 insertions(+), 4 deletions(-)
0.31.0 rn-0.30.0...rn-0.31.0 rn-0.30.0...rn-0.31.0 1 file changed, 20 insertions(+), 3 deletions(-)
0.30.0 rn-0.29.2...rn-0.30.0 rn-0.29.2...rn-0.30.0 2 files changed, 1 insertion(+), 2 deletions(-)
0.29.2 rn-0.29.1...rn-0.29.2 rn-0.29.1...rn-0.29.2
0.29.1 rn-0.29.0...rn-0.29.1 rn-0.29.0...rn-0.29.1
0.29.0 rn-0.28.0...rn-0.29.0 rn-0.28.0...rn-0.29.0 5 files changed, 45 insertions(+), 113 deletions(-)
0.28.0 rn-0.27.2...rn-0.28.0 rn-0.27.2...rn-0.28.0 7 files changed, 31 insertions(+), 11 deletions(-)
0.27.2 rn-0.27.1...rn-0.27.2 rn-0.27.1...rn-0.27.2
0.27.1 rn-0.27.0...rn-0.27.1 rn-0.27.0...rn-0.27.1
0.27.0 rn-0.26.3...rn-0.27.0 rn-0.26.3...rn-0.27.0 3 files changed, 10 insertions(+), 6 deletions(-)
0.26.3 rn-0.26.2...rn-0.26.3 rn-0.26.2...rn-0.26.3
0.26.2 rn-0.26.1...rn-0.26.2 rn-0.26.1...rn-0.26.2
0.26.1 rn-0.26.0...rn-0.26.1 rn-0.26.0...rn-0.26.1
0.26.0 rn-0.25.1...rn-0.26.0 rn-0.25.1...rn-0.26.0 2 files changed, 12 insertions(+), 16 deletions(-)
0.25.1 rn-0.24.1...rn-0.25.1 rn-0.24.1...rn-0.25.1 4 files changed, 5 insertions(+), 9 deletions(-)
0.24.1 rn-0.24.0...rn-0.24.1 rn-0.24.0...rn-0.24.1
0.24.0 rn-0.23.1...rn-0.24.0 rn-0.23.1...rn-0.24.0 5 files changed, 95 insertions(+), 3 deletions(-)
0.23.1 rn-0.23.0...rn-0.23.1 rn-0.23.0...rn-0.23.1
0.23.0 X X X

Note that the diff stat (last column) doesn't take the package.json into account (it doesn't have to: the package.json must be updated by hand before upgrading React Native).

Why this repository ?

After an upgrade of React Native on your project, according to the documentation, you have to run the CLI command react-native upgrade to upgrade the files in the ios and android directories with the new template.

This process can be painful if you had made some changes in these files, especially those which are not meant to be read by human (the goddam project.pbxproj !). It inevitably happens by using 3rd-party librairies or changing native stuff (device orientation, splash screen, etc.).

The CLI detects any file changed by user, shows the diff and asks user if it must be override or keep untouched.

By knowing the real changes due to the React Native upgrade, you can easily know which option is the best for you. For example, from the 0.28.0 to the 0.29.0 the changes in the android files are huge so it may be easier for you to override and reapplied your changes (relinking your 3-rd parties, etc.) BUT if you look at the project.pbxproj, there is only one flag added, so the best decision for this file is to keep it untouched and report the flag yourself on the right position.

Known issues

index.js

The version 0.49.0 introduces a unified entry-point: index.ios.js and index.android.js were replaced by index.js.

rn-diff doesn't show that change because the concerned files are skipped during the upgrade process.

That change is referenced in some native files though, so you have to follow the update guide in the 0.49.0 release notes.

AndroidManifest.xml

Due to an issue with the Yeoman generator used before 0.39.0 (the AndroidManifest.xml file was never updated), the diff of this file from 0.38.0 to 0.39.0 is irrelevant. It shows the diff from 0.23.0 to 0.39.0 because the RnDiffApp has been generated with 0.23.0. You'll probably have less changes on this file when upgrading from 0.38.0 to 0.39.0 depending of the version your app has been generated with. See #8 for details.

FAQ

Why starting from 0.23.0 ?

The starting point is the generation of an app with the CLI tool. I've started from the first version of react-native since the release 0.2.0 the react-native-cli (March 2016), the first to seem mature and stable (3 months after the previous release).

How did you do this ?

I initialized the 3 or 4 first commits manually to see where was it going. Then I automated things with this script.

How can I contribute ?

Unfortunately you can't ;). Correct me if I'm wrong but due to the particular structure of the branch tree, it's impossible to collaborate in the classic way (Pull Request on a non-existing branch).

Nevertheless, when a new version of React Native is released, I'll have to be prompt to provide the new diff. I guess having 3 or 4 collaborators on this project will help in the future. If you're interested, please open an issue to discuss.

Of course, the above doesn't concern suggesting changes on the master branch (script or README.md). Pull Requests are highly welcome !

rn-diff's People

Contributors

ncuillery avatar pvinis avatar ryankask avatar

Watchers

Steven avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.