This documentation supports the 22.1 version of BMC Helix Innovation Studio.To view an earlier version, select the version from the Product version menu.

Upgrading to the latest BMC Helix Innovation Studio SDK


If you are using the BMC Helix Innovation Studio SDK to build and deploy applications and libraries, you must upgrade BMC Helix Innovation Studio SDK and any application projects that you created by using the earlier version of BMC Helix Innovation Studio SDK.

Important

These steps are not required for pure codeless development by using BMC Helix Innovation Studio.  

To upgrade to the latest BMC Helix Innovation Studio SDK

  1. After you receive a notification that your BMC Helix Innovation Studio has been updated, download the BMC Helix Platform SDK ZIP file (com.bmc.arsys.rx.sdk-22.1.08.zip).
  2. Install Node.js version 12.20.1 and Yarn version v1.22.5. For more information, see To install Node.js and To install Yarn.
  3. The development environment has changed to OpenJDK. To install OpenJDK, see Setting-up-your-IDE-and-installing-BMC-Helix-Innovation-Studio-SDK
  4. Some Maven repositories might not be available over HTTP, so if your maven compilation fails due to the error, Return code is: 501 , ReasonPhrase:HTTPS Required, and then add the following entry in the <mirrors> section in settings.xml file located in your <maven installation>/conf directory. 
    For more information, see Creating-a-Project-using-Maven-and-the-Archetype.

    <mirror>
    <id>central-over-https</id>
    <mirrorOf>central</mirrorOf>
    <name>Maven Central Repository</name>
    <url>https://repo.maven.apache.org/maven2</url>
    </mirror>
  5. Rename your current SDK folder to create a backup.
    For example, rename it to com.bmc.arsys.rx.sdk-22.1.07.BACKUP.
  6. At the location where you want to install the SDK, create a new SDK folder and extract the BMC Helix Innovation Studio SDK ZIP file (com.bmc.arsys.rx.sdk-22.1.08.zip).
  7. Add an environment variable, RX_SDK_HOME, that points to the sdk folder location.
  8. Find the .m2 folder (usually located in your user directory, such as %USERPROFILE%\.m2\repository\com\bmc on windows). Delete the arsys and rx folders located there.
  9. Install BMC Helix Innovation Studio SDK in your Maven repository by using the following commands:

    \com.bmc.arsys.rx.sdk-22.1.08> cd lib
    \com.bmc.arsys.rx.sdk-22.1.08\lib> mvn clean install
  10. Update the archetype-catalog.xml file to delete the earlier archetype versions (for example, 22.1.07) and make sure the archetype-catalog.xml has the archetype version as 22.1.08-SNAPSHOT.

    The archetype-catalog.xml file might be located at the following locations:

    • .m2
    • .m2/repository

    For example: 

    <archetype>    
    <groupId>com.bmc.arsys</groupId>
    <artifactId>rx-sdk-archetype-application</artifactId>
    <version>22.1.08-SNAPSHOT</version>
    <description>Rx SDK application archetype</description>
    </archetype>

To upgrade your application or library by using the latest SDK

To upgrade your applications or libraries created by using the SDK from version 22.1.07 or earlier, perform the following steps:

  1. Change the versions of the following parameters in the parent pom.xml file located in the project folder:

    Current version

    Updated version

    <rx-sdk.version>22.1.07-SNAPSHOT</rx-sdk.version>
    <rx-sdk.version>22.1.08-SNAPSHOT</rx-sdk.version>
    <spring.version>5.0.6.RELEASE</spring.version>
    <spring.version>5.3.6</spring.version>
    <servicemix-spring.version>5.0.6.RELEASE_1</servicemix-spring.version>
    <servicemix-spring.version>5.3.5_1</servicemix-spring.version>
  2. Update the package.json file located at the /bundle/src/main/webapp/ location. 
    1. Modify the postinstall command from the following script:

      "scripts": {

      "postinstall": "node postinstall && ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points && node ./decorate-angular-cli.js",

      }

      To

      "scripts": {

      "postinstall": "node postinstall && ngcc --properties es2015 browser module main",

      }
    2. Set the dependencies object to an empty object.

      "dependencies": {}
  3. (Optional) Update the unit test configuration.
    Skip this step, if you are not running the unit test cases.

    For unit tests to work after you upgrade to Angular 12, update a few test configurations manually.

    • Replace the content of jest.preset.js file located at /bundle/src/main/webapp/ directory with the following content:

      const nxPreset = require('@nrwl/jest/preset');
      module.exports = {​​​
        
      ...nxPreset
      }​​​;
    • Replace the content of jest.config.js file located at /bundle/src/main/webapp/libs/<your-library-name> location with the following content:

      module.exports = {​​​​​​​​​​​​​​​
        
      preset: '../../jest.preset.js',
        
      coverageDirectory: '../../coverage/libs/<your-library-name>',
        
      snapshotSerializers: [
          'jest-preset-angular/build/serializers/no-ng-attributes',
          'jest-preset-angular/build/serializers/ng-snapshot',
          'jest-preset-angular/build/serializers/html-comment'
        ],
        
      setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
        
      globals: {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
          
      'ts-jest': {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
            
      tsconfig: '<rootDir>/tsconfig.spec.json',
            
      stringifyContentPathRegex: '\\.(html|svg)$'
          
      }​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​,
        
      }​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​,
        
      transform: {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ '^.+\\.(ts|js|html)$': 'jest-preset-angular' }​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​,
        
      moduleNameMapper: {​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
          
      "^lodash-es$": "lodash",
          
      "@bmc-ux/adapt-obsolete": "@bmc-ux/obsolete"
        
      }​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​,
        
      displayName: '<your-library-name>',
      }​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;

       

    • Replace the content of test.setup.ts file located at /bundle/src/main/webapp/libs/<your-library-name>/src location with the following content:

      import 'jest-preset-angular/setup-jest';
      import 'jest-extended';
  4. Delete the content of the following folders:
    • /bundle/src/main/webapp/scripts/
    • /bundle/src/main/webapp/tools/
    • /bundle/src/main/webapp/apps/
    • /bundle/src/main/webapp/dist/
    • /bundle/src/main/webapp/styles/
    • /bundle/src/main/webapp/node_modules/
  5. Delete the following file: 
    /bundle/src/main/webapp/yarn.lock
  6. Build, export, and deploy your application project. 
    For example:

    myproj> mvn clean install -Pexport -Pdeploy
  7. Verify that your application functions correctly.

Troubleshooting

This section describes how to resolve issues that you might encounter when upgrading your applications or libraries from version 21.3.xx to 22.1.07 or earlier.

Build issues while installing dependencies

The following errors are displayed when you upgrade your applications or libraries to version 22.1.07 or earlier:

  • error sass@1.62.1: The engine "node" is incompatible with this module. Expected version ">=14.0.0". Got "12.20.1"
    error Found incompatible module.

    To resolve the issue, perform the following steps:
    1. Delete the node_modules folder and the yarn.lock file from the bundle/src/main/webapp/ location.
    2. Add the following dependency to the resolutions section located at bundle/src/main/webapp/package.json.

       "sass": "1.60.0"

      For example:

      dependencies

      "resolutions": {
        ...
        "sass": "1.60.0"
      },
  • error ts-custom-error@3.3.1: The engine "node" is incompatible with this module. Expected version ">=14.0.0". Got "12.20.0"
    error Found incompatible module.
    To resolve the issue, perform the following steps:
    1. Delete the node_modules folder and the yarn.lock file from the bundle/src/main/webapp/ location.
    2. Add the following dependency to the resolutions section located at bundle/src/main/webapp/package.json.

       "ts-custom-error": "3.2.0"

      For example:

      dependencies

      "resolutions": {
        ...  
      "ts-custom-error": "3.2.0"
      },
  • error tmp@0.2.3: The engine "node" is incompatible with this module. Expected version ">=14.14". Got "12.20.1"
    To resolve the issue, add 0.2.1 tmp library to the resolutions section.

    "resolutions": {
      ...
      "tmp": "0.2.1"
    },

Build issues due to Adapt changes

If you are using StackedChartType import from Adapt, for example import { StackedChartType } from '@bmc-ux/adapt-charts'; the build fails with the following error:

error TS2305: Module '"@bmc-ux/adapt-charts"' has no exported member 'StackedChartType'.

This issue occurs because the type name has changed from StackedChartType to AdaptStackedChartType.

Build fails with errors of cyclic dependencies in Angular

Make sure you refactor the code. For more information, see NG3003: Import cycles would need to be created to compile this component

Related topic

Known-and-corrected-issues

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*