It would be nice, but probably a fair amount of work, if we had an upgrade command that would bring 1.0 users up to 2.0 compatibility (at least to the point where they can use 2.0 generators). At a minimum we would want to generate some config files, the all-out option would be to move existing screens around and such. My vote would be to do at least the minimum.
I think structurally, not much is changing in how we build things. This should be very doable.
Good on ya for thinking about this.
Right, but some things the generator commands depend on won't be there if the app was generated with v1.
So I'd like to solicit more feedback, from @GantMan in particular, about this issue. @derekgreenberg too. My recommendation is that we build a very specific guide upgrading from Ignite 1.x to 2.0, but don't spend the time on a script. What we should be able to do is hand this guide off to someone new to Ignite, like @codeithuman or @robinheinze , and they can do the following:
$ npm install -g react-native-ignite
$ ignite new UpgradeMe
$ npm uninstall -g react-native-ignite
$ npm install ignite-cli
...then follow the guide and have a working app that is functionally identical to spinning up a new app with Ignite 2.
Discuss.
Yes, I bet a lot of people would find that helpful. Since Ignite give so much flexibility, we may just need to compare and contrast what the differences between 1.x and 2.0 are. This would then allow devs to walk through the sections of their specific app to upgrade.
Also, what's ignite-cli? Doesn't ignite-cli ship with react-native-ignite?
We should also list the library versions we're upgrading. For example, "You will need at least React Native 41 to use Ignite 2.0", etc.
Also, what's ignite-cli? Doesn't ignite-cli ship with react-native-ignite?
In Ignite 1, react-native-ignite was the way you would run ignite. It was the CLI part. It relied on another generator-ignite package to fetch and bootstrap your ignite app from our repo (specifically on master and the ignite-base directory).
In Ignite 2, this has been replaced with ignite-cli which is your new ignite cli. By default this will download the ignite boilerplate from ignite-unholy-app-template, but now this configurable. Github is no longer a part of the equation anymore.
at least React Native 41
Agreed. The dependency is react-native-cli@~2.0.0 installed globally. Which react-native you use with your project does matter too, but it's up to the app template. For unholy we support 0.40.0 and up. For minimal we support down to the 20's. (please don't install react native 20).
One awkward thing about Ignite 2 is, because it's so flexible, it's dependencies are flexible.
We should capture the spirit of this ^ in our docs (minus my babbling of course).
What kevin suggested would be gold plating it. I would LOVE to have a command simply do the work, but I think that's too much. Let's let the tickets come in first to make sure it's needed.
I think a doc on upgrading and updating would both be very valuable.
I'm working on a project built from Ignite 1 for an IR client (kipmobile). I can test the upgrade path to Ignite 2.0 with this project if it is helpful and offer feedback. I'd do this in a separate repo, so it would have no impact on the project as far as the client is concerned.
@derekgreenberg That would be fantastic.
I'm upgrading from 1 to 2 RIGHT NOW. ('scuse the shouting). I'll doc anything else I find here on this issue.
eg. if you want generator goodness restored, install the ignite-ir-boilerplate-2016 module from npm and import the ignite.json and ignite folder from a fresh 2.0 project, and you're good to go with generators.
@juddey I hate to make you think back two months, but can you recall if there were any difficulties in this process?
@kevinvangelder No, I think that was about it on the ignite front iirc. React Native upgrades is where I've had more trouble.
Haven't tried ir-next 'tho as I'm in too deep with RNRF.
Most helpful comment
I'm upgrading from 1 to 2 RIGHT NOW. ('scuse the shouting). I'll doc anything else I find here on this issue.
eg. if you want generator goodness restored, install the
ignite-ir-boilerplate-2016module from npm and import the ignite.json and ignite folder from a fresh 2.0 project, and you're good to go with generators.