Documentation : Versions

Versions - do I need them?

Sooner or later every developer meets problem with system versioning. Maybe you need to maintain in parallel multiple versions of the system to keep track of customizations made to satisfy your demanding clients or maybe you just wish to tag important milestones to make changes monitoring easier.

Mobeelizer meets these needs by delivering all necessary functionality to easily and comfortably manage your system versions.

The first thing you have to know - there is always 'current version'. As you probably correctly assumed it is a version you are currently working on. All changes you are making like modifying model fields or adding a new group are saved into 'current version'. There is also a list of historical versions. When you deploy modified version to an environment then copy of it is saved into that list. You can also use 'Tag this version' functionality to not only save 'current version' state but also to give it some extra text tag which will help you to find this particular version later.

When you click 'Versions' in menu you will see list of all versions of your application. The first position there is always 'current version'. Don't be afraid to explore it deeper. By going to version detail view you have access to more advanced functions. You can add, remove or change the tag of the version. You can deploy this version to any of your test or production environment. You can also click 'set as current' button which will make version you're on your new 'current version'. Don't worry - all unsaved changes will be preserved if necessary.

One last thing. You probably know that you can export current version to XML file - like when you configure your client application. But on 'versions' list view there is another feature - you can import XML file and create new version with its content.

Use-case examples:

Changes monitoring

  • After some part of development you want to test newly added elements - so you deploy your application to test environment
  • Something is not working right - one of your models that previously worked perfectly well is now causing some errors. And the worst thing is that you don't remember what changes have you made to this application element.
  • Fortunately you know how to deal with it. You just go to the versions view, easily find last working version, and set it as current. Then you can easily see your models, fields and other elements from that time. You can even deploy this version to make sure that this version was working correctly.
  • Then you go back again - go to versions view and set your not-working version as current again. You probably noticed what have you changed in mid-time.
  • To make this process easer you can tag your versions - like '0.2' and '0.3-beta' - then you will be sure what is what...

Parallel versions

  • One of your clients want some customizations to your application - but you don't want to make it to everybody...
  • You just tag the current version as 'main version', then make changes to your client.
  • Tag this version like 'customized for client' and deploy it to this client's environment.
  • Make 'main version' your current version and continue your development process. When your demanding client asks you again to make some changes you have no problem. Make 'customized for client' tagged version as your current, make necessary changes and deploy it to your clients environment. Than restore your previous current version
  • Remember - you can deploy customized version without setting it as current.

Application migration

  • You have one application - but you want to create new one based on previous one.
  • It's easy - export your application as XML, then create new application, lastly go to versions view in your new application, hit 'create from xml' button and upload this XML file. New version is created and its content is the same as in your previous application. Mission accomplished!