Release Notes
1. New Features
VC/m Version 3.2 contains the following key new features:
- Caché Studio integration enhancements (Caché 5.1 or later)
- Support for Add, Cancel and Remove (VCM-D-0132)
- Present the standard VC/m transfer dialog on Checkout and Checkin (VCM-D-0135)
- Integration with Caché Security on Caché 5.1 or later (VCM-D-0150)
- Predecessor and Successor subfolders in Object view (VCM-D-0136)
- Enhanced Change Request Find dialog (VCM-D-0144)
- Date Created column added
- Filter on text found in title, description or comments
- Remember user's most recent filter and sort settings
- Access Rights are now maintained in a code table rather than being freetext (d0016)
- Support for Ensemble HL7 and RUL component types (VCM-D-0111)
- Support for MultiValue MVB and MVI component types (VCM-D-0113)
- IDX component drivers (P1416)
- Transfer dialog improvements (VCM-D-0124)
- Change request field is now a combo box with recently-used memory
- Entries in list of previous change requests are now selectable
- From-location list is constrained to those where object is available (single object transfer only)
- To-location list is constrained to those where object belongs according to system membership (single object transfer only)
- Transfer of multiple object selection now offers background mode (VCM-D-0130)
- Additional per-route message category specifications (VCMB103)
- VC/live can use FX-format transfer files (VCMB194)
- New facilities for working with transfer filesets in the browser (VCM-D-0154)
- Filesets are listed under a new subfolder of a location.
- Subject to the setting of a new location parameter, a fileset's contents can be explored. Note that expanding a fileset causes the location's current object list to be cleared and repopulated with the list of objects in the chosen fileset. Only enable this parameter for a location if your workflow does not rely on object activation status at that location.
- Transfer of all objects in a fileset can be initiated by dragging a fileset folder, or using the folder's context menu. Access to a suitable route is required. Note that such a transfer will repopulate the location's object list (see above).
- A fileset can be deleted using the browser interface. To restrict this ability, set an access code on the function Fileset.fnDelete.
- Cancellation from component context menu (VCMB252)
- Support @lcode suffix on object selector to limit to those objects that are active at a specific location (VCM-D-0109)
- PASV mode for Beyond Compare diff server (VCM-D-0115)
- Support for FTPS protocol (also known as FTP Secure or FTP-SSL) in Beyond Compare diff server (VCM-D-0148)
- Requires Caché 5.1 or later, and Beyond Compare 3 Professional Edition.
- In Caché System Management Portal, [Home] > [Security Management] > [SSL/TLS Configurations], define a configuration named "VC/m:ftps". Set its Type to "Server". Provide an X.509 certificate file and a private key file for the server. Make sure the TLSv1 protocol is enabled. See Caché documentation for more information about SSL/TLS Configurations.
- Connect from Beyond Compare using ftps:// address instead of ftp:// one.
- To disable unencrypted FTP support in the Beyond Compare server, SET ^%vcvc("ftpServer","requireSecure")=1
- Eliminate blank columns from version-at-location spreadsheet (VCM-D-0127)
- Add configuration options to control the comment block added to classes during transfer to M-format storage (GJL700577)
- Shape of the status table added to the class comment can be "horizontal" (the default), "vertical" or "none" (i.e no table added).
- Choice is set manually in ^%vcct("CLS","param","statusTableShape") with a per-location override in ^%vcct("CLS","param","statusTableShape",lcode).
- Style attribute of the table can also be set. Define the style (without the { and } brackets) in ^%vcct("CLS","param","statusTableStyle") or override in ^%vcct("CLS","param","statusTableStyle",lcode).
- Good values for Ensemble are:
- ^%vcct("CLS","param","statusTableShape")="vertical"
- ^%vcct("CLS","param","statusTableStyle")="font-size: 0.7em;"
- Copy option implemented for Location and Transfer Route maintenance (VCM-D-0128, VCM-D-0129)
- Transfer Routes and Location Classes now maintainable via subfolders of Location maintenance entries (VCM-D-0146)
2. Upgrade Steps
Follow the normal installation procedure. Be sure to run ^%vcins as this performs the following upgrade operation:
- New code table for Access Rights is populated with existing values.
Thereafter, entries made into Access Rights fields on Users, Locations, Transfer Routes etc must exist within the Access Rights table.
3. Integration with Caché Security
When using CSP to provide connectivity for VC/m's browser interface, VC/m users can now be authenticated using the standard Caché security mechanisms (5.1 or later). To configure this, use System Management Portal to edit VC/m's CSP application as follows:
- In the Authentication section, uncheck "Unauthenticated" and check "Password".
- Specify "Client.Login.cls" in the Login Page field
- Specify "/csp/vcm/Client.PasswordChange.cls" in the Change Password Page field. A Caché bug means that, unlike the Login Page field, this one needs your application path as a prefix on the class name. If yours is not /csp/vcm then amend what you enter appropriately.
- Save the changes.
Note that the Caché user under which your CSP Gateway authenticates (typically CSPSystem) must have read access to the database in which this class resides. If it does not, any attempt to access VC/m's CSP application will give an HTTP 404 error.
With the application configured as above, when VC/m is accessed using CSP the initial page will prompt for a Caché username and password. Provided a matching VC/m username or alias exists the user will be able to access VC/m. No passwords need be entered on the VC/m user maintenance dialog unless they are required to restrict access using Beyond Compare (see below).
When using this mode of authentication, the VC/m browser interface will log out automatically a few seconds before the CSP application timeout period expires. This behavior is designed to prevent data remaining accessible after timeout.
When connecting to VC/m using Beyond Compare the FTP or FTPS connection requires a username and password. The credentials can be checked against the Caché security database by setting ^%vcvc("authenticateInCache")=1. A matching VC/m username will still be required, but a password will no longer be definable in the VC/m user maintenance dialog.
Caché user accounts used by VC/m in these ways will need sufficient privileges to access all relevant databases, including write permission on the VC/m repository database itself.
4. Bug Fixes and Other Enhancements Since 3.1.1
Summary of bug fixes and other enhancements which are included in this release:
Change request | Title | ||
---|---|---|---|
GJL111 | Raise an error when T-type component contains overlength lines | ||
GJL136 | Fix UNDEFINED error at zdelMx+8^%vc1xPRJ | ||
GJL35 | On Caché, ending a multi-line comment with */ in the first column caused VC/m to omit the line when transferring to a namespace | ||
GJL700056, L5473 | Merge dialog was sometimes too small | ||
GJL700082, GJL700418 | Merge-product object sometimes failed to install with VC/live | ||
GJL700099 | INTs with null lines saved in Studio on Caché 2008.2+ were truncated when read by VC/m | ||
GJL700141 | Serenji and Studio 5+ interfaces did not update VC/m object timestamp. When Serenji or Studio 5+ were used to edit a routine the VC/m timestamp was not updated on save. If a physical address Dependency Check setting was Internal the change was not detected. This correction makes the Studio 5+ interfaces update the timestamp when not running in offline mode. You are using the Serenji online-mode interface if ^%SerenjC("C","NSL")="NSL^%vc670". To make the Serenji online-mode interface perform the timestamp update, DO setup^%vc670 and default the answers. If this step is not performed then the correction will not be activated for Serenji. |
||
GJL700142 | Add way for text files to be written with CRLF separators even on Unix Caché. By default, Caché on Unix will put LFs (the native line separator) into files written to text-format storage. When the file is intended for use on a Windows environment (e.g. through Samba) it may be preferable to write CRLFs instead. See comments in putx^%vcltext for instructions about enabling this. |
||
GJL700154 | Switch Studio interface to offline mode if connection lost during operation | ||
GJL700181 | Change Request find dialog mishandled CR patterns with * not at end | ||
GJL700319 | When a single empty object was transferred to a location mapped to F-format storage no .$ file was written, so the delete didn't propagate. | ||
GJL700321 | Should not be permitted to cancel an empty object with master in a library | ||
GJL700371 | Work around Caché failure to unlock project after delete | ||
GJL700374 | CSR component file not set readonly when checked in | ||
GJL700380 | On VMS, drop version suffix from enumerated T- and BIN-type components | ||
GJL700411 | Beyond Compare could not explore objects with doublequote in name | ||
GJL84 | Caché ECP propagation behaviour change after 5.0 affected task server | ||
L2578 | crput^%vcapi truncated description/comment at first blank line | ||
L4480 | Check existence of component file at F-type location. When F-type location driver validates existence of component on object, also verify that the component file is present. Otherwise a transfer from a fileset does the pre-delete of the object's components at the destination using info from the $ file before discovering that the component file is missing. |
||
L4487 | XML file written at FX-format storage address could contain bad structure | ||
L4515 | G and GZ type component trees failed to expand on Caché systems where $ZUTIL(69,7,1) is the default mode | ||
L4539 | Terminal mode was not respecting Object.Right.EditSystems | ||
L4546 | Handle large directories of BIN and T type components on Unix | ||
L4554 | Check existence of file before deleting CSP or CSR, to prevent forced error on Unix | ||
L4572 | List CSPs and CSRs correctly on Unix | ||
L4587 | Implement optional $$gettidy component driver method. Prune Caché XML to avoid unimportant differences. |
||
L4637 | Column widths were lost if the first row of a table with a "Max Number" footer was updated | ||
L4644 | Change Request selector XYZ* failed to include CR XYZ itself | ||
L4646 | Unregistered unsubscripted G or GZ component could report "Ancestor Registered" and thus be unavailable for registration | ||
L4675 | Log audit messages properly even if client browser has closed and is unavailable to display them | ||
L4700 | Registered sibling numeric global subscripts could yield incorrect states. For example, if ^G(1 was registered, ^G(10 would report "Ancestor Registered". |
||
L4740 | Cancel should not cause auto-transfer of cancelled version | ||
L4742 | Object and Change Request list Description column not wide enough nor resizable | ||
L4778 | Increase object base and variant title field length from 60 to 200 | ||
L4798 | Browser interface permitted deletion of in-use Change Request Types | ||
L4800 | Files in F-format storage cannot handle routines with dot in name The routine header line in .BAS, .INC, .INT, .MAC and .R files needs to be able to use the ^ delimiter in place of the . one, in the same way as InterSystems changed the %RO format with Caché 4.0. For back compatibility, this change has to be manually enabled on existing installations by setting ^%vcct(ctype,"param","ROformat")="Cache4". On new VC/m installations it will be set by default; to get the old behaviour, kill the node. If using VC/live, use the same setting on sending and receiving systems. |
||
L4847 | <UNDEFINED>masterx+14^%vclM when registering CSPs in task server location | ||
L4857, L4865 | Handle BPLs in Ensemble Studio, managing them in VC/m as CLS-type components. | ||
L4862 | Allow in-error component to be selected | ||
L4867 | Add ^vcvp node to handle case of multiple CSP apps in one namespace When more than one CSP application is defined for a single namespace, VC/m cannot deduce which one its CSP and CSR components belong to and WRITE $$appUrl^%vc1xCSP in the namespace returns null. In such a case, define which by setting URL (with trailing "/") in ^vcvp("cspAppURL") in the namespace, e.g. ^vcvp("cspAppURL")="/csp/vcmdemo/samples/dev1/". Note, no %-prefix on global name. |
||
L4888 | Global registered unsubscripted does not show descendant as "Ancestor Registered" | ||
L4946 | Permit Studio class to report messages for %-classes in certain cases | ||
L4993 | Use %Dictionary.ClassDefinition to avoid Caché 5.2 bug in %ClassDefinition that led to ProcedureBlock setting of a class reverting to 0 | ||
L4999 | Transfer message on CR should not be logged if no objects transferred | ||
L5055 | Timing issue could produce looping task server and/or loss of %transaction information | ||
L5116 | Checkout of a routine set the same timestamp on the component of the new objectversion as the one on the old objectversion had. As a result Studio didn't reload with the new VC/m comment headers. This change makes component drivers' copy() method put a new physical timestamp onto the scratch global prior to put() if the from- and to-obvs do not match. | ||
L5127 | xferbulk^%vcapi did not forward selector by reference | ||
L5236 | Transfer dialog would sometimes fail to close | ||
L5277 | <SYNTX>zputM+13^%vc1xCLS when saving CLS component from Beyond Compare | ||
L5356 | After CSP timeout, VC/m actions used UnknownUser license slots | ||
L5381 | Avoid unnecessary $ZUTIL calls on Caché so as to fit better within Caché Advanced Security model | ||
L5436 | Prevent location maintenance creating new physloc if reformatting address | ||
L5494 | Avoid <MAXSTRING> if transfer gives large number of compile errors | ||
L5525 | Enable editCheckOutValidation callout from Caché 5 Studio to see component variables | ||
L5728 | Prevent VC/live background daemon installer from holding a license | ||
L5741 | Avoid Studio error when working offline | ||
VCM-B-0915 | Work on Caché config where <ENDOFFILE> not raised | ||
VCM-B-0916 | Studio 4.x interfaces were not checking status of CSP components | ||
VCM-B-0922 | Fix syntax error at +63^%vc413 on non-Caché platforms | ||
VCM-B-0926 | Fix misalignment of connectors on some component views | ||
VCMB165 | Two Integrity Check options were in the wrong sections of the dialog | ||
VCMB181 | Creation of Studio 5+ projects did not support task-server addresses | ||
VCMB182 | CSP application named "/" did not enumerate components | ||
VCMB19 | When copying filter from library location to non-library one, retain target's setting for missing buttons | ||
VCMB190 | XML class files in the VC/m install kit unzipped on OpenVMS in a format that Caché could not load | ||
VCMB193 | Audit messages did not add filename when converting %FROM or %TO for FX-format storage | ||
VCMB199 | Excel reports could fail to download to browser when CSP is connection mechanism | ||
VCMB202 | Make component transfer from multi-version location operate on the chosen object. A multi-version location (e.g. library) can contain many identically-named components. The component view suffixes them with the /vari.vers of their owning object but a transfer initiated from the component was operating on the highest version number of the first variant. |
||
VCMB205 | chref_validate callout was passed an invalid obv when Add button clicked | ||
VCMB215 | Do not trigger AUTOTs etc when bulk loading | ||
VCMB216 | Deletion of location class left member locations referring to it | ||
VCMB219 | serverLink on GT.M 5.x consumed 100% cpu | ||
VCMB228 | integ^%vcapi entrypoint was not truly silent | ||
VCMB230 | A bug in Caché 2007.1 Studio left VC/m's source control submenu blank | ||
VCMB233 | Some text input fields were not being correctly set readonly | ||
VCMB242 | VCmStudio.SourceControl failed to compile on Caché 2008.2 | ||
VCMB244 | Positive transfer dependency was satisfied by version on different branch. Transfer along a route with a positive dependency on a location was being allowed in the case where the dependent location contained a version from a different branch. For example, suppose A/1.1 was branched to v2 in LocX and v3 in LocY. A transfer from LocY that specifies a LocX dependency was being permitted. This was incorrect, since the meaning of a positive dependency is that the specified location has the current version or a successor version. Versions on different branches are neither. |
||
VCM-D-0104 | Support use of obv^%vc1xapi within transfer callouts | ||
VCM-D-0106 | Record extra info in ^%vcError to help diagnose task server issues | ||
VCM-D-0108 | Support relative paths for text and bin addresses on Caché on Windows | ||
VCM-D-0116 | Supply dummy filesize (1 byte) so BC3 performs background comparisons | ||
VCM-D-0118 | Use nameObject callout during CHUI bulk component load | ||
VCM-D-0119 | Make CHUI bulk component load use new $$gettidy method for diffs to prevent false positives on classes | ||
VCM-D-0120 | Better handling of executable files on Unix. Prior to this change, VC/m used the chmod value 444 when setting a file read-only, and 666 when setting it readwrite. As a result, executable files (e.g. shell scripts) lost their execute bit. We now use a+r,a-w for readonly and a+rw for readwrite. This technique leaves the execute bit unchanged. |
||
VCM-D-0126 | Permit lowercase characters in Access Right codes | ||
VCM-D-0134 | Add import, export and delete error event details to AuditTrail Details window | ||
VCM-D-0138 | When task raises forced error, propagate better message into audit | ||
VCM-D-0139 | Report more useful information to user on <ZFORC> error | ||
VCM-D-0140 | Encrypt VC/m passwords by default on new Caché installations. New VC/m installations on Caché 5+ now set the ^%vcvc("passwordEncryption") hook to use Caché's MD5 hashing function and Base64 encoder. This avoids filing VC/m passwords in plaintext. Existing installations can SET ^%vcvc("passwordEncryption")="hashpw^%vc" but must then encrypt all existing entries thus:
|
S u="" F S u=$O(^%vcmf("user",u)) Q:u="" S $P(^%vcmf("user",u),"\",4)=$$hashpw^%vc($P(^%vcmf("user",u),"\",4)) |
|
VCM-D-0141 | Add mechanism for F-type storage to put files into subdirectories. In some situations when transferring to F-format storage it is preferable if components capable of being stored in bin- or text-type storage are put into a dedicated per-component-type subdirectory in that format rather than in the usual composite file. For instance, when transferring their respective objects to location Export mapping to F-format storage, T.index.htm and T.scripts/common.js would be written into a subdirectory named Export001.T rather than embedded into a single file named Export001.T. See comments in put^%vclF for details of how to enable this option. |
||
VCM-D-0142 | In selector combo, move a re-used entry to the top of the MRU list | ||
VCM-D-0143 | Improve Location definition dialog layout | ||
VCM-R-0010 | Fix fault with chmaint_status_validate callout when crput^%vcapi used | ||
VCM-R-0011 | Prevent <SUBSCRIPT>status2+4^%vc1edt if Studio opens unmapped component type | ||
VCM-R-0013 | Component-by-location index integrity check was not detecting certain errors | ||
VCM-R-0016 | Remove redundant reference to GjsTableSorter.css. In some IIS configurations this reference to a non-existent CSS file caused an extra login dialog to appear during Change Request Find. |
||
VCM-R-0017 | Change Request dialog truncated right-hand edge of textarea | ||
VCM-R-0018 | Object dates were misreported in Beyond Compare | ||
VCM-R-0019 | CHUI load of MAC and CLS components to M-format storage gave syntax error. When CHUI Load was performed on certain component types (e.g. CLS, MAC) to a location mapped to M-format storage, a syntax error occurred when the component driver tried to note that a compilation was required. The correction make Load perform post-transfer compilations in this case. |
||
VCM-R-0020 | %vc413 bulk load template routine mis-named some components on Unix. When %vc413 was used on Unix to drive bulk loading of CSP, CSR, T and BIN components these were given absolute names rather than relative ones. |
||
VCM-R-0022 | Location definition dialog Physical Address fields were clipped | ||
VCM-R-0023 | When remote:// addresses are used, CSP files showed as unregistered T components | ||
VCM-R-0025 | Change request dialog gave wrong error message if CR code changed | ||
VCM-R-0027 | CR and Component selectors did not support multiple * wildcards, though Object does | ||
VCM-R-0028 | Write FX file header with correct version for the exporting Caché. When Caché components are written into an FX file the header tag of the file needs to give the correct generator version. Prior to this change the version was hard-coded as 9, causing Caché import to produce incorrect results when classes were in fact being exported from a later Caché version. For example, a class exported from 2008.2 into an FX file with a version="9" indicator imports into a 2008.2 system with inappropriate ClassType="" and Not ProcedureBlock qualifiers. |
||
VCM-R-0029 | Location comparison report sometimes mis-reported the common ancestor | ||
VCM-R-0032 | Include component type in transfer validation failure messages | ||
VCM-R-0035 | When cancelling an in-error object the reinstated object was incorrectly left in the error state | ||
VCM-R-0036 | Some Transfer Route definition fields were right-clipped | ||
VCM-R-0038 | Location Compare reports were not filtering by system code | ||
VCM-R-0039 | Limit number of for-action audit items listed | ||
VCM-R-0040 | Tidy userAction index correctly when object is deleted |
For further information about any of these changes contact support@georgejames.com
Copyright 1999,2009 George James Software
http://www.georgejames.com