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
|
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
http://www.georgejames.com