PDA

View Full Version : Upgrading from Ext 4.2 to Ext 6+



rso@catalogicsoftware.com
30 Aug 2016, 9:22 AM
Does anyone have experience upgrading the code base from Ext 4.x to Ext 6+? Is there any official documentation / blog post from Sencha that we can follow?

Thanks.

Mark Wagoner
31 Aug 2016, 3:22 AM
I did that about 6 months ago and it was more problematic than you would expect. I had a list of the 20 or so things that I had to go through and find/change but I can't seem to find it anymore. I even opened a ticket with Sencha to help with the process, which really wasn't much help, and it still took about 2 months to complete.

One thing I can recall is they renamed Ext.EventObject to Ext.event.Event for some reason, which caused a lot of find-and-replace operations. I wish I could remember more but it was such an unnecessarily painful experience that I must have blocked it from memory.

rso@catalogicsoftware.com
31 Aug 2016, 5:26 AM
Much appreciated Mark. Please post the list if you happen to find it in the future. I am sure I am not the only one who is worrying about the disruption of a huge code base to upgrade from 4.x to 6.x, but also concern about "being left behind" using 4.x in the future.

Gary Schlosberg
31 Aug 2016, 9:02 AM
If you haven't taken a look at them yet, the upgrade guides can be informative:
http://docs.sencha.com/extjs/5.0.0/guides/upgrades_migrations/extjs_upgrade_guide.html
http://docs.sencha.com/extjs/5.0.0/guides/upgrades_migrations/charts_upgrade_guide.html
http://docs.sencha.com/extjs/6.0.0-classic/guides/upgrades_migrations/extjs_upgrade_guide.html

rso@catalogicsoftware.com
31 Aug 2016, 12:23 PM
Thanks for helping on this thread too Gary. I am aware of these pages but wanting to know if there are folks who brave it out to upgrade 4.x to 6.x. Our code base is big and I am just trying to gather more data points at this moment.

jmin91
7 Sep 2016, 5:14 AM
We are currently migrating our application from 4.2 to 6.0.1 and while our 4.2 version wasn't setup correctly (original developers didn't follow Sencha's guides...), it hasn't been a nightmare (yet, knock on wood... :)). We are about 60% done.

The best approach is to follow the guides and create a fresh new project and piece-by-piece migrate code over. There isn't universal solution to this but breaking it down piece-by-piece is your best bet. We ran into a lot of the common issues that are noted in the upgrade guides. Try to plan your application structure too. The original developers at my company threw multiple classes inside of one file so I refactored a lot of that to follow Sencha best practices. Do it smart and do it the right way. Use Sencha Cmd too! It makes life so much easier!

+1 for another New Jersey poster. \:D/

rso@catalogicsoftware.com
10 Sep 2016, 8:27 PM
Thank you very much for your reply! That's right I don't see a lot of NJ posters here in the forum. Cheers!

alexander.urban
12 Sep 2016, 6:08 AM
I have done the upgrade a year ago, and many things worked out of the box. I think after less than a day, it wouldn't crash on startup (root -> rootProperty etc.) But then, the basic structure of the project was made by Sencha Architect.

It's not easy to tell apart how long exactly it took to migrate, because I changed the theme in the process (gray -> triton), which made rework necessary because triton takes more space and requires bigger windows and other layouts, and all existing icons were replaced with icons from FontAwesome, and the codebase used e.g. the style property instead of bodyPadding, and used wrong or old components, e.g. container where fieldset was more appropriate, or checkboxes where tagfield was more appropriate. Depending on your codebase, you may experience similar issues.

Furthermore, I had done some modifications deep in the system which broke completely, e.g. made a custom grid with colspan and rowspan support, which had to be redone.

Our upgrade process from start to shipment, including major refactoring and testing, took six weeks.

EDIT: I would like to point out one thing: You shouldn't use "compatibility mode", it's broken.