info@janox.org



Return to documentation index

Title: Janox versioning and projects upgrading

Content:

- Janox versioning

- Projects conversion

- System tables conversion

- Projects conversion: how to


Janox versioning

Janox version is a string composed by 3 integer numbers, joined by a point in the form "<g>.<v>.<r>", where:

<g> Generation: is a macro-release code and is changed on structure arrangement needs

<v> Version: is the compatibility version code and is changed when projects conversion is needed

<r> Release: is a built-in code and is changed each time new Janox packages are released without conversion needs

Each time a new project is created it is signed with Generation and Version ("<g>.<v>"): this information will be used for further compatibility checks.

When you run a Janox project or you try to open it by Janox Development Interface, project version is compared to Janox version in this way:

Janox version < Project version

Janox runtime can't execute project and Janox Development Interface can't open it: an error is fired, inviting user to get a newer Janox system. Execution is ended.

Janox version > Project version

Project is developed for an older Janox version and it needs to be converted to actual Janox version. An error is fired, inviting user to covert the project. Execution is ended. After conversion Janox runtime will be able to run the project and Janox Development Interface will be able to open it.

Janox version = Project version

Project is correctly executed by runtime and opened by Development Interface.


Projects conversion

Each time you get a new Janox version (not just a release) you need to convert your old projects to new syntax and structure.

Conversion is fully automatic and it can be performed by the Janox Development Interface. All you have to do is to open the project for development: then, if it's needed, you will be asked for conversion.

NOTE: Conversion can upgrade projects from any previous version but conversions can be only applied forward, from an older version to a newer one.

Converted projects are automatically copied to a backup folder, named including old version code. Upgrade operation needs to be repeated for each project to convert.


System tables conversion

Janox system uses a few database tables: some of them are stored in the runtime SQLite database (janox/jxrnt/data/o2sys.sqlite), others are created in projects databases, according to project repositories settings.

Janox system tables, in time, may change structure, so system databases are signed with version when they are created. Databases conversion can not be performed by project conversion, because the same project, in different times, can access different databases.

So, on each access (login), system databases version is compared to Janox version in this way:

Janox version < Database version

Janox runtime can't use current database because it already has been converted to a newer version. An error is fired, inviting user to get a newer Janox system or to change database. Execution is ended.

Janox version > Database version

An error is fired, inviting user to covert the database. Execution is ended. After conversion Janox runtime will be able to run the project using that database.

Janox version = Database version

Project is correctly executed by runtime.

If a system databases conversion is needed and you are logging in as a valid DEVELOPER, you will be able to perform conversion just pressing the button "convert" presented within the error message.

NOTE: Conversion can upgrade project databases from any previous version but conversions can be only applied forward, from an older version to a newer one, so procure to backup database data before conversion.


Projects conversion: how to

When you get a new Janox release, in order to convert existing projects, you can follow this simple procedure:

1. Open existing project by Janox Development Interface. If conversion is needed you will be asked to confirm project conversion. Confirm and proceed to conversion.

2. Execute the project as a valid DEVELOPER: if a system database conversion is needed, you will be asked to confirm conversion. Back up project data, confirm and proceed to conversion, then verify that everything is properly running.

Repeat this procedure for each project to convert.


Return to documentation index

 
Janox is distributed under the terms of the GNU Lesser General Public License (LGPL)