7.2 Create a Patch

011-copy

A Patch is created by copying a version or a patch in an application.

The copied version or patch forms the basis of the patch definition and is known as the 'parent' of the patch. The parent's version number for the patch is displayed in the list of versions and patches.

Right-click a version or a patch in the Deployment Tool Main Window tree and choose Create Patch to create a patch.

After upgrading to V14SP2, a new Patch can only be built from a version built with V14SP2 or later.  Therefore, the first deployment after installing V14SP2 must be a Version, not a Patch. 

Objects included in a Patch are based on the differences with its parent:

A patch ships file changes (any kind of operating system file, not just LANSA table changes). It will also include any LANSA Execution Environment changes if the parent includes any such changes.

If the Install Imports option is selected, standard imports and repository definitions are included in the patch:

Standard imports

Includes Web Resources, Web Utilities, Standard Weblets, Messages, System Variables and Technology Services. These imports may change in a new LANSA release (GA, SP or EPC).

Standard imports ensure changes in the associated import files are applied. For large applications, this may be a time-consuming task.

Repository definitions

Updates to Repository Definitions may be needed for Repository Help and Repository Security. 

When installing WAM, Weblet or External Resource file changes do not require an import because the associated files are published directly. Only changes to External Resource definitions require an import. These changes include file path changes, mime type changes and file encoding changes. LANSA will not inform you of this. You will need to determine this yourself.

To restrict what needs to be re-applied by a patch, a Feature Set Deployment may be used: separate the application objects out into applications that do not install any LANSA features, and do not include the LANSA Execution Environment. Thus, none of the standard imports will be applied with patches.

To limit risk, it may also be useful to deploy the application tables as a separate Application so that they do not need to be considered by patches. Refer to External Resource Definition Tab in the User Guide for more information.

The Package Installer will only install objects which have a DLL or CTD with a later File Version than the parent package.  This is particularly important for application table changes where the CTD must be later than the File Version (it is not sufficient to recompile only the DLL). Any changes to LANSA runtime files and files related to Additional Features are included through the Microsoft differencing engine and Windows Installer.

It is strongly recommended that a patch that includes a runtime change does not include any application changes. This makes it simpler to back out if run in the wrong order. Also, runtime changes cannot be uninstalled when there are System file CTD changes.

Application

The application containing this package.   This value is prefilled and cannot be modified.

Patch

Enter the next patch number.   Patch number must increase for subsequent releases.  The Patch number has a direct relationship to the version or patch it was based on, for example patch 1.0.0.1 would be the first patch against Version 1.0.0.  A recommended approach for naming is:

<major version number>.<minor version number>.<build number>.<patch number>

Description

Enter a description.

Uninstallable

Allows a patch to be uninstalled. The uninstall process will roll back the executable artefacts changed by the patch, and rollback table changes to application tables. It does not rollback changes to System tables. Special care needs to be taken with Table Data Processing options. If you do not use the default option of Exclude Data, Reload Existing then it is advisable NOT to choose Uninstallable.

Install Import  

Installs the LANSA Standard imports and the application object definitions.

If a patch is Uninstallable the Install Import option cannot be selected as the associated imports cannot be uninstalled.

Press OK when you have entered patch details. The Package Maintenance Window is opened so you can update 8.9 Files with Special Processing and the objects to be included in the patch. Other settings reflect values of the original copied version or patch and cannot be modified.

Note

The method of constructing a patch has been modified in version 14SP2. Now a copy is made of all files included in an application and the application is constructed from this. This freezes the state of the version so that none of the files are changed by development environment installation and build changes. When a patch is made, another copy is made of all the application files, and the difference between the two copies is what is in the patch. Thus, the patch includes exactly what you would expect, even though more disk space is required to store the versions.

In Versions built prior to V14SP2, more objects than were required were often included in a patch. Now a file is shipped only if it has changed. An exception to this rule is the JavaScript runtime directory which is included as a whole if any file has changed in the JavaScript runtime.