2024-02-02 ChromSword 5.5 Installation Instruction

 

Preparation for the installation setup

  1. To compile ChromeSword 5.5 you will need all of the following Git repositories:

    1. https://bitbucket.org/evaldsurtans/chromsword5

    2. https://bitbucket.org/evaldsurtans/git-bitbucket.org-evaldsurtans-chromsword5-1-admin-console

    3. https://bitbucket.org/evaldsurtans/chromsword5-5-report-service

    4. https://bitbucket.org/evaldsurtans/chromsword5-1-client-server-nodejs

    5. https://bitbucket.org/evaldsurtans/chromsword_offline_5 (Only LicenseManager)

    6. https://bitbucket.org/evaldsurtans/chromsword5-5-installer

    Please, phone them in following directory names: image-20240214104742905

     

  1. To build Release version of ChromSword 5.x it is necessary to install licensed version of https://www.gapotchenko.com/eazfuscator.net/download When trial ends, we will buy license!

image-20240214104436079

 

Project -> Build Events for every EXE and DLL should have

editbin.exe is meant to allow store more objects in RAM in x86 mode. x86 mode is needed because Delphi based Pascal ChromSword.Logic works currently only with Delphi x86 - in future we must re-make it in the same way as Offline Lazarus FPS service without delphi

 

  1. When building CSA 5.x versions you must pull latest changes from Offline 5 repo where LicenseManager is located and include. Make sure you compile it in release mode.

 

image-20240214104451152

 

  1. CSA 5.5 installer is located in separate repository https://bitbucket.org/evaldsurtans/chromsword5-5-installer Inside there is installer.iss

⚠️ To make sure installer works out of the box, make sure that you copy all of the repositories necessary to compile from ChromSword 5.5 in the same root directory.

image-20240214104742905

Make sure that license manager compilation in release mode is copied in the right directory from ChromSword5 in the setup folder.

image-20240214104632462

image-20240214104753898

 

Actual installation steps

 

  1. Make your own copy In ChromSword 5 (not 5.5) InnoSetup Folder of script_packaging_csa_5_1_evalds.py and use it with Python 3.x and VSCode!
    image-20240214110501706

  2. Choose correct version

    image-20240202222755543

  3. Change this version in Python file and run only to change version codes

    Make sure before running Python that in all project files Current version in AssemblyInfo.cs and package.json files - Otherwise, there will be multiple versions, despite what you say in Python file.If versions mismatch between package.json files and assembly.info.cs files, then manually make sure that they are the same across all projects.

    image-20240214111049974

    Run script and verify that in the package.json and AssemblyInfo files the version numbers have been changed.

  4. In ChromSword 5 (not 5.5) InnoSetup Folder create your own build5-5.batfile (use text editor) and RUN it to compile:

    1. chromsword-5-5-admin-console,

    2. chromsword-5-5-report-service,

    3. chromsword-5-5-client-server-service

    When it runs it is normal that clean command could result in some errors, but there must be no errors in build commands. To see what those commands does you need to open package.json in each of those projects (normally do not need to change)

    default build5-5.batfile

    image-20240214110320572

  1. Next compile as Release LicenseManager in Offline project as described before in previous section of this document.

  2. Now Change again Python file so that you would now not only change version codes but also compile the actual Visual Studio code and then do the installation qualification XML file updates and then compile again the whole project with Visual Studio and InnoSetup files so that the latest IQ would be included in final version. It will take at least two compilation runs with a single script run.

    image-20240214111508067

    During the installation you will see at least two pop-ups that are coming from installation qualification project in C#. This is meant to make sure that XML files that are needed for qualification have been updated. Otherwise, without pop-ups, sometimes they were not updated and user will not see it while creating the installation. These are just steps to make sure that all of the necessary changes are included in this large package. Make sure when you later make ChromSword 5.x versions then also installation qualification XML files have been regenerated. One way to do this is to store separate git commits and then go back to the previous ones. Or every time run again IQ but IQ is necessary only when you change from from Chromsword 5.5 to from Chromsword 5.1 and back.

    Python will automatically run this command with generate. Then Innosetup again after this

    image-20240214111900879

    image-20240214111947143

  3. After all of the installation scripts have finished, try to install the product yourself, double check that all of the updates are included and only then upload to FTP.

  4. Prepare the detailed version information with all of the feature and bug commits from git from every single git repo that is included in CromSword 5.5 and then send it as a version package. Thank you.

  5. Improve Python code so you have less manual steps! After changes push your own version in git!