VC/m 3.1 Release Notes

Release Notes

1.       User Interface

The following functional changes have been made to the user interface:

  • Multi-select.  The user interface now allows multiple items to be selected for a single operation.  This applies to the transfer of change requests, objects and components.  It also applies when copying items to the work list.   However, actions such as Cancel and Merge continue to apply to a single item even if multiple items are selected. This will be addressed in a future release.
  • Selection Combo.  The combo used for specifying selection patterns has been re-engineered and is now fully editable, including with the mouse. Multiple patterns, including negations, can be specified for Objects, Change Requests and Components, separated with a semicolon (;). For example, "B*;'Bug*"
  • Sortable and Resizable Columns.  Columns in the main component, object and change request views are now sortable and resizable.  The contents of the audit trail panel are also sortable and resizable.
  • Component Trees.  Components such as Caché classes, MACs and INTs which have a hierarchical package structure are now rendered as trees in the component view.
  • Global Components.  It is now possible to view and select global nodes within the component view.  Each global node is implemented as a tree and can be expanded as required or selected for registration and transfer.
  • Audit Trail.  The audit trail functionality has been enhanced to provide more information and more feedback to the user (see below).
  • Context-Sensitive Transfer Dialog.  The function, from location and to location list boxes are now context-sensitive.  Each will only display options which are valid for the current user in combination with the current selection of the other two lists.
  • Transfer Summary Message.  When multiple items are transferred together, a transfer summary message is displayed on completion of the operation.  By default this is a transient, pop-up message.  The behavior of this message is controlled by the audit trail category which it belongs to.  If desired, the message category properties can be set so that the message is displayed in the message panel, but not popped-up.  It can also be set so that the summary message is persisted in the audit trail using the pseudo-object vcm$transaction/vcm.
  • Message Panel Auto-Open.  If the message panel is closed, it will open automatically when any audit messages are written to it.
  • Context Menus.  Right-click menus are available on objects, change requests and components.  One is also present on the audit trail panel.
  • Integrity Checker.  The integrity checker is now launchable as a background process from the System menu.  The results of each run are persisted in the audit trail and visible both by run and by viewing the audit trail of the item they relate to.  The pseudo-object vcm$integrity/vcm is used to record these runs.
  • Object Properties.  It is now possible to view and maintain properties of an object by double-clicking on an object or selecting File/Open from the menu whenever an object is selected.  To amend an object's systems in this dialog, a user needs access to the Object.Right.EditSystems function.  To delete an object requires access to Object.fnDelete.   Both these functions are initially assigned the NOBODY access code.
  • Persistent Panel Resizing.  The folder and audit trail panel sizes are now remembered between sessions.
  • Accessibility.  Better support is provided for desktops and browsers which have been configured to use large fonts. The main menu trees are now accessible via keyboard shortcuts.
  • In-line Refresh.  When a component, object or change request is transferred, any change in its status is reflected automatically without the need for a refresh.  This ensures that the current location view is preserved. To force a selective refresh, select one or more items and press Ctrl+F5. For a full refresh, use F5.
  • Change Request View of Locations.  The gray change request icon, introduced in VC/m 3.0.3, proved more confusing than useful.  It has been replaced by the "h or *" icon, which is offered only when viewing change requests within a location. When unselected ("h"), a change request containing no objects active at the location will no longer appear.

2.       Audit Trail & Audit Trail Categories

In VC/m 3.1, the audit trail records more information and provides additional ways of giving feedback to the user.  The audit trail message levels have been replaced with audit trail categories.  The category determines the behavior.  The following features are available:

  • Color.  The display color of the message can be specified.  For example, compilation errors can be displayed in red.
  • Icon.  Each message can be associated with an icon which is displayed to its left.  As well as standard icons provided by VC/m, user-created icons may also be used.
  • Action Flag. A message may be flagged for action by a specific user.  All flagged messages are displayed in the audit trail panel and will persist there across user sessions until actioned.
  • Alert.  A message may be configured to generate a pop-up alert, requiring user acknowledgement before they can proceed.
  • On Write event.  A user specified program can be called for any type of audit message.  This could, for example, dispatch an email message or interact with some other system.
  • On Actioned event.  When a user cancels an action flag, a user-specified program can be called.  This could, for example, dispatch an email message or interact with some other system.
  • Persistence.  Any message can be set to be either persistent or transient.  Transient messages appear in the audit trail panel, but cannot have an action flag and do not store any additional information about the event. 

Additional methods have been provided for viewing audit trail information.  There are a number of new folders providing:

  • All messages by date.
  • All messages by user.
  • All messages which have an action flag for the current user.
  • All messages which have an action flag for all users.
  • Within the object view, all messages for all versions of the current object.
  • Within the change request view all messages for a change request.

By double clicking, any persistent audit message can be opened to view more details about the event that occurred.  Additional information which is now recorded includes:

  • Transfer details. Includes the function code, from location, to location, and the before and after state of the object.
  • Compilation errors.  The name of the component, the location where it was being compiled and all error output from the compilation process.
  • Forced errors.  Details of the error and a dump of the symbol table at the time of the error.
  • Action events.  The user and timestamp when a message is actioned.

Where a message in the audit trail panel specifies an object or change request, double-clicking on that name opens the corresponding properties dialog.

All messages which are generated by a single action (such as a transfer by change request) are given a transaction number.  This can be used for sorting and identifying all the messages relating to one action.

3.       Caché 5.1

VC/m 3.1.1 is the first version compatible with Caché 5.1.  Before upgrading a VC/m server to Caché 5.1 you should first upgrade VC/m to 3.1.1.  After the Caché upgrade, perform the following steps:

  • At a terminal session in your VC/m namespace (typically called VCM) DO Cache5^%vcins() and load the classes, templates and add-ins. Compilation of the templates and add-ins will report errors.
  • In the Caché System Management Portal, go to Configure Namespaces (use the dropdown list in the upper right of the page). Click "Package Mappings" for the VC/m namespace. Choose "New Package Mapping". From the first dropdown pick the VC/m database. In the second one select the package named VCmStudio. Pick "All Local Namespaces" from the third dropdown. OK the dialog. Save the changes.
  • At a terminal session in the VC/m namespace, repeat DO Cache5^%vcins(). This time the compilations should proceed without errors.
  • In the Caché System Management Portal, go to the Configuration page and click "Studio Source Control Settings". For each VC/m-controlled namespace choose the VCmStudio.SourceControl class and click OK.
  • In the VC/m web interface go to the Setup folder, then Properties, then select the Transfers leaf. Look at the second field down. If it contains a reference to ##class(%VCm.Studio.SourceControl).afterTransfer() change it to ##class(VCmStudio.SourceControl).afterTransfer()

4.       Upgrade Steps

Please note that the minimum supported version of Caché is now 4.0.

Follow the normal installation procedure.  Be sure to run ^%vcins as this performs two file conversion operations:

  • New audit trail indexes have been introduced.
  • Default audit trail categories will be created.

When upgrading from previous versions of VC/m, audit trail message levels are converted to audit trail categories of the same name.

Since numeric categories are not particularly meaningful, it is recommended that these are renamed to something more descriptive using the Audit Trail Category form in the Setup folder. The following scheme is a suggestion:

  • checkout - green - use a category called checkout for all check-out transfer routes and for all other functions that affect the versions of an object (merge, registration, cancellation, etc). *
    This could be further sub-divided into dark green for normal check-outs and light green for other developer operations. Cancellations could be red.
  • checkin - purple - for check-in routes
  • library - dark blue - for routes between locations in a library (populating release areas etc)
  • propagation - gray - for routes that are concerned with keeping sandboxes and test areas up to date.
  • testing - orange - for routes to test areas
  • customer or live or release - light blue - for routes that go out to customer locations, live areas, release areas, etc.

We also recommend that if audit level 99 is used, it be renamed to transient.

Any existing audit messages which have a numeric category which gets renamed will maintain the association with the new category. Any category attributes, such as color and icon, will therefore apply to all historical audit messages.

If an audit category is deleted and messages exist which referenced that category, they will be rendered using the color and icon attributes of the default category.

If the old audit levels were not previously assigned with any consistency or functional grouping, it may be preferable to create new functional categories and update the transfer routes to use the new categories. All future audit messages will be generated using the new category scheme, while the old categories (corresponding to numeric audit levels) can be deleted and all old messages will then be rendered using the default category settings.

5.       Bug Fixes and Other Enhancements

Summary of bug fixes and other enhancements which are included in this release:

Between 3.1 and 3.1.1

Change request Title
CLWB154 Resizable columns
L4277 Fix Javascript error when editing message category
L4348 Pass message category etc back from compile over task-server
L4372 Errors during multiple component registration
L4373 User maintenance dialog loses "Cancel all checkouts" setting on opening
L4381 Avoid pre-delete of Caché classes
L4385 Improve validation in File Locations maintenance screen
L4391 Reinstate CR Type disabled flag
L4427 Set default attribute on CSP in FX format to avoid import problems
L4455 bin and text enumeration was not working at remote:// addresses
VCM-D-0099 Add IsMaster^%vc1xvf dependency function to verify master is at from-loc
VCMB56 Rework primary change request and change request fields on object maint form
VCMB74 Web maint of CR types with status was broken
VCMB86 Clarify role of New Active Locations field on Transfer Route definition
VCMB102 Concurrent Branches report misuses term "variant"
VCMB111 Master Location list on Transfer Route definition should offer %TO and %FROM
VCMB115 Implement mechanism for adding local CSS file
VCMB117 Add extra option to Audit Trail setting: 'Integrity checker completion messages'
VCMB125 Include a CR regardless of color only if it was explicitly specified without wildcard
VCMB128 Adding reporting ability to Integrity Checker on CHUI interface
VCMB135 Revise User Guide information about remote address format
VCMB137 Allow entry of filename for transfers involving F-type locations
VCMB139 Port to Caché 5.1
VCMB140 Browser component lists didn't exclude items that mask to an earlier tree

Between 3.0.3 and 3.1

Change request Title
L3479 Improve task-server throughput when ECP networking is used
L3661 Deactivate non-R components when obv resubmitted to RE/m
L3665 Handle trailing slash in EWD app path setting
L3666 Make task server handle local task errors in the same way as remote ones
L3667 Fix some causes of ancestor pointing to missing version
L3675 Allow interrupt of initial toolbar filter
L3676 Make object selector handle object names containing - and :
L3726 Sort objects by version if necessary
L3787 Set/clear file r/o flag correctly when task server address
L3796 Fix bug in Checked-out objects report
L3816 $$order^%vc9fi missing for Caché on VMS
L3840 Use task server to set ^vcvp("rw"
L3854 Include AUTOF as a default transfer function on new installation
L3862 Disallow slashes in values returned from object-naming callout
L3871 Make post-xfer compile of CLS, CSP and CSR components optional - SET ^%vcvc(ctype,"settings","skipCompile")=1
L3920 Extend access code fields to 1000 characters
L3933 Show red objects correctly within red change requests
L3942 Prevent location rename within location maintenance
L3958 ^vcvp("rw" flag not being set for CLS and PRJ; rebuild^%vclM omitted BAS, CLS, CSP, CSR, PRJ
L4008 Pre-kill global tree before putting Lastic components
L4110 Try to avoid preparing details of more change requests than will be listed
L4172 Suppress the browser-back effect of the Backspace key
L4191 Open change request in un-named window, permitting several to be open concurrently
L4231 Some class mappings of VC/m data structures specify field lengths too short
VCM-B-0832 Protect against errors arising from damaged object ancestry chains
VCM-B-0834 CHUI transfer route delete input fields had not been extended in line with rest
VCM-B-0835 OpenM Desktop i/f accessing wrong structure
VCM-B-0836 Prevent ENTER on a gjs:form text field from submitting badly
VCM-B-0837 Disable Connect dialog buttons until scripts loaded
VCM-B-0838 Improve appearance of default.htm
VCM-B-0839 Remove redundant $zu(168) path extensions for temp files
VCM-B-0842 Normalize slashes in return from $$froot^%vcos on Windows
VCM-B-0843 Enable writing of % routines to remote CACHESYS
VCM-B-0844 Tidy up work-list gif
VCM-B-0845 Fix over-simplistic quoting of task server arguments
VCM-B-0852 Prevent amendment of existing addresses on Location maintenance dialog. Physical Address maintenance should be used instead
VCM-B-0859 Disallow colon (:) in location codes.  It is used as the filename separator for F-type locations
VCM-B-0865 Remove CHUI setup options from mnuSetup.  To access them, customize a menu to include mnuSetupCHUI
VCM-B-0906 Report unreachable remote:// addresses
VCM-D-0048 EWD component driver for eXtc Web Developer components
VCM-D-0055 Add bulk transfer API to %vcapi
VCM-D-0058 Frame tabbed panels
VCM-D-0060 Improve keyboard navigation of trees
VCM-D-0062 Displacement of object on CR at checkout is now configurable by setting ^%vcvc("retainOnChangeRequest").  Options are
  • 0 or undefined - always detach 'from object' from CR when checking out on same CR.  This is the default behavior for existing VC/m installations.
  • 1 - only detach 'from object' from CR if that object was not itself created by a check-out on this CR.  For example, the 'from object' might have been manually added to the CR prior to by-CR checkout.   Starting with 3.1, this is the default behavior for new VC/m installations.
  • 2 - never detach 'from object' from CR during checkout.
VCM-D-0064 Disable gjs:form elements until completely loaded
VCM-D-0065 Respect Windows preference to hide underlines on accelerators until Alt pressed
VCM-D-0066 Add afterGet and beforePut callouts to T-type component driver
VCM-D-0067 Provide afterPut callouts on bin and text location drivers
VCM-D-0068 Add new Concurrent Branching report
VCM-D-0070 Add tip about resequencing component masks
VCM-D-0075 Make MRU list length configurable.  Per-user value can be set in ^%vcmf("user",%usr,"mruLength"), site-wide value in ^%vcvc("mruLength"), default remains 10.
VCM-D-0076 Verify ancestor existence during Integrity Check
VCM-D-0080 Show description of change request types on the change request definition dialog
VCM-D-0082 Make forms resize automatically on opening so they show all elements
VCM-D-0093 Make top-level object list include objects that are not active anywhere
VCMB6 No longer require write permissions on license directory for all users
VCMB36 Component list for unreachable location now reports this situation rather than stating "No items found"
VCMB40 Change request lookup dialog now respects item limit
VCMB62 When defining a new change request, if the chosen type has a default status this is now set
VCMB65 Cancel of a merge-point now reinstates the originally checked-out version rather than the merged-in version
VCMB87 Prevent stack errors by making ancestor^%vc1xvd non-recursive
VCMB93 Comment text entered during checkin from Caché Studio 5 is now filed as the object version comment.  This can subsequently be viewed and amended using the Object Properties dialog
VCMB95 Object deletion now attempts to repair ancestry pointers.  Deletion from CHUI (Manager, Delete) reports progress and failures onscreen

Copyright 1999,2005 George James Software