Releasing a version of your bundle
When you create an application project by using the Maven archetype, your application is created with bundle version 1.0-SNAPSHOT, and you perform the development work with the same version. You might need to release this bundle and start the development work on a new version. For example, you want users to start using your application version 1.0 but you need to start with the development of your application 1.1.
To release an initial version
The following image shows the process to release the initial version of an application:
Exporting bundle
Make sure that your definitions are up to date, and run the following command to export your bundle:
Stopping bundle version 1.0 development
If you use sources in Source Control, branch or label your sources. Make sure that you do not modify definitions for version 1.0. Remove the bundle from your BMC Helix Innovation Studio development instance by using the following command:
Changing the bundle to a released version
If you have created or upgraded your application by using BMC Helix Innovation Studio SDK release 17.08 or earlier, edit the /package/pom.xml file and update the <execution> tag to make the following changes:
<build>
<plugins>
<plugin>
.
.
<executions>
<execution>
<id>update-def-file</id>
<phase>generate-sources</phase>
<goals>
<goal>update-def-file</goal>
</goals>
</execution>
<execution>
<id>add-manifest</id>
<phase>generate-resources</phase>
<goals>
<goal>add-manifest</goal>
</goals>
</execution>
.
.
.
</executions>
</plugin>Update your POM files using the following command:
projects\my-proj> mvn versions:set -DnewVersion=1.0.0After you run the command, you receive a success message. The following snippet illustrates a sample message:
[INFO] Updating project com.myco:my-proj
[INFO] from version 1.0-SNAPSHOT to 1.0.0
expression: rx-sdk.groupId no value
expression: rx-sdk.groupId no value
expression: rx-sdk.groupId no value
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] my-proj-all ....................................... SUCCESS [ 54.270 s]
[INFO] My Project ........................................ SKIPPED
[INFO] my-proj-package ................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
The version is created in the following format:
<major version>.<minor version>.<incremental version>-<qualifier>
For example, 17.11.0, 17.11.0-SNAPSHOT, 1.0-SNAPSHOT, 1.0.0.RELEASE.
Packaging
Make sure that all the sources, and the renamed definition files, are correctly packaged together in the deployment zip file. Run the following command:
The compiled deployment package is present at projects\my-proj\package\target\com.myco.my-proj-1.0.zip. The com.myco.my-proj-1.0.zip file contains the following files:
- db
- record
- <record-definition-name1>.def
- <record-definition-name2>.def
- <record-definition-name3>.def
- <record-definition-name3>.options
- <record-definition-name3>.data
- <record-definition-name3>.delete
- process
- <process-definition-name1>.def
- <process-definition-name2>.def
- rule
- <rule-definition-name>.def
- association
- view
- <view-definition-name>.def
- named-list
- <named-list-definition-name1>.def
- <named-list-definition-name2>.def
- localized-string
- <localized-strings.def>
- configuration.data
- role.data
- record
- code <jar file>
- manifest file
Releasing
To provide the bundle to QA for black-box or integration testing, or to a pre-production shared system, make the package file projects\my-proj\package\target\com.myco.mypackage.my-proj-1.0.zip available to administrators for the next phase of delivery. Now you are done with bundle version 1.0.
Guidelines on creating a new version of an application
When you upgrade your application to a new version, make sure that the modifications made to the new version of your application do not affect the capabilities of the existing application version. The following table lists the guidelines to follow:
Guideline | Description |
---|---|
Add new functionality that is implemented by using new definitions | You can create a new capability for your application by creating the following new definitions and new code modules:
|
Your application code changes must be backward compatible | View components
Java-based services
|
Your existing non-customizable definitions changes must be backward compatible | Record definitions
View definitions
Process definitions
Rule definitions
|
You must not modify the existing definitions and data that can be customized all the times | Named list definitions
Association definitions Do not modify or delete the existing association definitions. Roles Do not modify or delete the existing roles. Configuration settings Do not modify or delete the existing configuration settings. Bundle data Before you delete bundle data, ensure that the bundle data is independent on the customizable definitions. |
To release a new version
Perform the following steps to release a new version of your application:
Update your POM files by using the following command:
projects\my-proj> mvn versions:set -DnewVersion=1.1.0-SNAPSHOTThe new version is created in the following format:
<major version>.<minor version>.<incremental version>-<qualifier>
For example, 17.11.0, 17.11.0-SNAPSHOT, 1.0-SNAPSHOT, 1.0.0.RELEASE.
Validate that the new version of your application is within the specified version range [0-999). To validate the version range, edit the /package/pom.xml file, and update the <deploy> tag to add <validateVersionRange> property.
<profile>
<!-- mvn clean install -Pdeploy -->
<id>deploy</id>
<build>
<plugins>
<plugin>
<groupId>com.bmc.arsys</groupId>
<artifactId>rx-sdk-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<id>server-deployment</id>
<phase>install</phase>
<goals>
<goal>deploy-package</goal>
</goals>
<configuration>
<username>${adminUserName}</username>
<password>${adminPassword}</password>
<url>${webURL}</url>
<validateVersionRange>true</validateVersionRange>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>Deploy the new version by using the following command:
projects\my-proj> mvn clean install -Pdeploy
Related topic
Deploying-the-custom-code-based-applications-to-development-environments