Jump to content
Rollo62

[Fmx] CrossPlatform best-practices upgrading 10.3.1 to 10.3.2

Recommended Posts

Dear all,

 

I'm still upgrading my older projects from 10.3.1 to 10.3.2, and try this as always as sensitive as possible.
But it turns out that too many libraries under Android would have been changed.

This is my orginal project loaded in 10.3.2

image.png.e46de637acf2c9a88deae6be0af496cf.png

 

So I'm better off to create a complete new, empty project , and reset all my old values from 10.3.1 step-by-step.

In 10.3.2 the libraries looks like this

image.thumb.png.5a4ae4127ff846c93f4905075e771574.png

 

So I try to figure out what would be the best way to make such upgrades, which can be very tricky these days.
I know @Uwe Raabe and his ProjectMagician, thanks for that nice tool.

There are also OptionSets, MigrationTool, etc., many ways to successfully reset or completely destroy your .dproj files.


I want to consider the basic steps here, and hope to get some feedback, how this can be done best (without expecting strange side-effects) in a complex world.
Steps to upgrade:

  • Backup your orignal project
  • Create a new, empty multidevice application
  • Remove the Mainform (Unit1) and other from the main form, this will be reset later from the older project.
  • Save and overwrite the Project file to the same .dproj
  • !! Make global settings in Project options\All configurations first, and try to keep minimal changes from there only
    In later separations of Debug or Release, these changes will be done in the respective configurations later.
  • Adding special libraries, frameworks, etc. needed for the app
  • Adding special ressources/images needed to deploy with the app
  • Setup Search path, version no., bundle identifiers, entitlements, permissions, icons, etc.,
    which shall be global for the whole app
  • Setup special settings, like debug/release store API's, Google maps debug/release API's, etc. in the respective configurations
  • Fixes and workarounds
  • Add the old units and datamodules (I try to minimize these in my projects, so I usually have to add only one main form),
    and try to restore the old project state
  • Refine and check the settings, and ready to debug, test and deploy

 

This way I evaluated for myself that I have best control over all settings (and there are many which could go wrong in the cross-platform world).
Is there probably a better way to automate this process ( ! but please consider that many features might have large incompatibilities from 10.3.1 to 10.3.2),
I don't really trust automatisms when it comes to such sensitive data, and when too many changes are there.

Do I miss something, is there a more easy "migration tool" out there ?

Would be great to hear how you do this usually, and which tools you use.

 

  • Sad 1

Share this post


Link to post

Hello,

 

Right-click the Libraries menu, and then click Revert to Default.


Delphi already deletes the old ones and loads the new libraries.

 

 

Share this post


Link to post
On 8/16/2019 at 11:45 PM, Marcio said:

Hello,

 

Right-click the Libraries menu, and then click Revert to Default.


Delphi already deletes the old ones and loads the new libraries.

 

 

Thanks for the proposal.

Yes, revert may reset the libraries, but can I really always trust what it does ?
So to use the "clean project" approach is probably only a few clicks more, and from there I can be very sure that it will work the way intended.

This is only a small part of the whole project configuration, what about the rest ?
 

I don't really like all these "magic" functions in the IDE project management when it turns out that they might have flaws in the end.
For example the inheritance of project options (All --> Debug --> Release) never worked out for me to be stable,
so I better check and fumble befor every major option setup, to be sure that not suddenly something bad happend there.

Maybe there are better solutions to check and compare, e.g. to use export/import options sets, project configurations or the .dproj files directly, and make all global adjustment in the option sets XML or in the .dproj files directly before re-loading and building.

I could think of external tools, like the Settings Migration Tool, Project Magician, or others for help keeping the project clean,
is there probably any tool or a combination of several tools, that can help in a nice way ?

A kind of .dproj DIFF viewer and editor which is able to sort out related settings might be great utility as well.
 

 

 

  • Like 1

Share this post


Link to post

In my opinion, this is an unnecessary concern.

 

When opening a project if it is not compatible with the current version of Delphi the migration already takes place, including you can parameterize the behavior in the Settings menu, whichever happens we have to treat it as a bug.

 

Adjustments and optimizations may actually be needed as the environment evolves, but this can and the best tool for this is the RAD itself.

 

As for project settings, when I have to do something more radical, I simply delete the .dproj file, and open the .DPR file, so Delphi recreates the default settings and I can adjust again.

  • Like 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×