BuiltWithNOF
Change Control

OVERVIEW

  System drop-down Menu option - Change Control
  For moving code changes through from DEVT to TEST to RLSE (to LIVE). A change can be initiated remotely or locally at a clients site.
  A change is a collection of objects and group definitions which are seen in some way to be connected and should be promoted together. It is given a name, a number and an associated text narrative which stay with it until released to LIVE.
  Selection of constituent items is achieved through a mixture of operator typed name filters and selection from lists. An export file is created which is a system file containing the changed objects and additionally, the change narrative, source filenames, full list of objects and groups, file/item mapping and the group definitions. This is copied to the import sub-directory of TEST.
  As the change is promoted through the release levels previous versions of all items to be overwritten are archived so that a change can be rejected and its items restored at any stage until it becomes live.
  Assumptions: The change control Control File (filename:CCCTRL) resides in \4XTRA\CODE where there is also an empty system file called SYSEMPTY.
  Objects residing in multiple system files will be identical in all copies within \4XTRA\CODE\DEVT.
  There are \IMPT and \ARCH directories under each of (\4XTRA\CODE) \DEVT, \TEST, \RLSE and \LIVE and an \EXPT directory under \DEVT.
  Files in any of these directories with names Snnnnnnn or Annnnnnn will not be changed or deleted other than by the change control functions.

ACCEPTANCE

  This option is available whenever there are changes in Test which do not duplicate items in changes already accepted into Rlse.
  Existing versions of the objects to be imported are archived to Rlse\Arch before overwriting them in Rlse with the new.
  Once Accepted, a change is available for further testing in the Release environment.

BROWSE

  This is the only option allowed if another user has update access to CHANGE CONTROL.
  Allows user to see the release and change number, name, author, current position and when that position was attained of all changes, those currently active or those which have been through all stages of the system and become inactive.
  A change can be selected and its change narrative displayed.

DELETION

  This option is available whenever there are Inactive changes. Any Inactive change can be deleted.
  An inactive change is a change which has been through all levels of the system, and the system has been frozen and unfrozen to 'Lock-in' the changes.
  The change narrative built up from its first initiation is kept to be veiwed through the Browse option.
  The Delete option is available for use if it is deemed that this narrative history is no longer required.       

FREEZE

  This option is available whenever there are changes which have been Released and Freeze itself has not already been applied.
  It prevents further Release of other changes, keeping the integrity of the Live environment until the Unfreeze option becomes available and is applied.
  Changes in Live can still be rejected while Freeze is in effect.
  A file is created in the Live directory called FREEZE.DON. Throughout the time that this is in existence it is safe to transfer the system files in Live to a Production system if that is maintained separately.
  Unfreeze becomes available when the freeze file is renamed to be TRANSFER.DON by separate operator action.

IMPORT

  A change which has been initiated at a remote site or in a 'private' system or has been previously rejected and had further code changes applied to its members can be imported by this option into the development environment.
  It can be given new release and/or change numbers and name and is then incorporated into the normal change control procedure as if initiated locally.
  Existing versions of the objects to be imported are archived to Devt\Arch before overwriting them in Devt with the new.

INITIATION

  This option to initiate a new change is always available to the user who has update access to change control.
  A unique combination of release and change number and a descriptive name are requested.
  Required objects and groups are selected from system files in the DEVT library.
  The change is then an active change but only becomes available for testing after it has been selected through the Testing menu option.

ITEM_SELECTION

  When a change is Initiated the items (objects and group definitions) to constitute the change are selected as follows.
  The user can elect to choose a system file by name or by contents by specifying a wild-card name filter as prefix*, *infix* or *suffix. From within the file items can be selected by name, name filter or group membership. When any selections have been made the option to remove items becomes available at the file selection menu.
  When the list is complete it is checked against all other active changes for duplication of items.

REJECTION

  Any active change whose items are not duplicated by any following change can be Rejected.
  All archived copies, from any level, of the members of the change are restored, the change file is moved from Test\impt to Devt\impt (ready for re importation ) and the change ceases to be recorded by the system.
  Any active change NOT offered for rejection is followed by a later change which duplicates one or more of its members and which will need to be rejected first if the earlier change is to be Rejected.

RELEASE

  All changes which have been Accepted and do not duplicate items in changes already released are offered for selection to be released to Live.
  Existing versions of the objects to be imported are archived to Live\Arch before overwriting them in Live with the new.
  Changes at this stage are presumed to have been thoroughly tested and ready to be used in the Live (or Production) environment.

SHADOWING

  If during initiation of a change items are selected which are already contained in an active change (or an import has such duplication) then either the selection is disallowed (if the earlier change has not been advanced to Test) or the user is prompted to Continue, Reselect or Cancel the change. If it is decided to continue, its progress is restricted in the following way.
  The later change is not allowed to progress to the extent that it would reside in the same environment as the earlier, until the earlier has been transferred to Live.
  The earlier change cannot be rejected unless and until the later change has also been rejected.
  Such Change Dependencies can be viewed in the 'Dependence' menu option.

TESTING

  This option is available whenever any changes have been initiated, or imported, which do not duplicate items in any other change already in test.
  Existing versions of the objects to be imported are archived to Test\Arch before overwriting them in Test with the new.
  When the change has been thoroughly tested then select Acceptance or Rejection from the Change Control menu.

UNFREEZE

  This option becomes available when a file, FREEZE.DON in the Live directory, is renamed to be TRANSFER.DON.
  Any Live changes are 'Locked-in', becoming Inactive and preventing their subsequent Rejection.
  The final effect is to re-enable the release of accepted changes into the Live environment.

CHANGE_CONTROL_FILE

  filename 300 CCCTRL
  cmp 1 This description
  cmp 2 Release flag - 1=Locked xor 0=not Locked
  cmp 3 Hold flag - User, 0 or Development team member if User HMW.
  user currently with write access to system.
  cmp 4 Change control - matrix 8+ columns one row per ACTIVE change
  col 1  change number - +ve integer of up to seven digits,
    last two are change number within release.
  col 2  date at initiation
  col 3  time at initiation
  col 4  user at initiation
  col 5  current status 1-4; i.e. init, test, acpt, rlse
    corresponding to dctys  DEVT TEST RLSE LIVE
  col 6  date when acquired current status
  col 7  time when acquired current status
  col 8  user when acquired current status
  col 9- change nos of earlier active changes any of whose
    members are duplicated by this change
  cmp 5 Change index - 1 integer per cmp, If +ve is nnnnn whose text is
  stored here. If -ve is -nnnnn whose list is here
  Zero beyond posn 10 indicates unused cmp
  cmp 11-eof Change text or Object list - quadTCNL del'd string

[4xtra Features] [Overview] [Using The System] [Developers] [Administrators]