PVDE5

VDE
Guide to Using
VDE



 p
PreviousZ Contents\ Index

P

2.7 Replacing Modules



GAfter you have reserved a module and changed it, you need to build it, Ctest it, and replace it onto the OpenVMS VAX library. This chapter Ddescribes how you replace modules back onto the OpenVMS VAX library >after you have changed, built, and tested them as appropriate.

FYou use the REPLACE command to copy a new or changed module from your Hdefault directory (or another directory you specify) into the specified Glibrary. Before you can use the REPLACE command for a module, you must Gfirst reserve the module with the RESERVE command or create the module Hwith the CREATE MODULE command. The REPLACE command replaces the module Einto the development stream you specify and automatically propagates Hthe change to that stream's successors. The following example shows how to use the REPLACE command:

 

"
9VSC> REPLACE/STREAM=FOO [FACIL]MOD.TYP "Remark string"


@This example replaces module MOD.TYP in facility FACIL onto the BOpenVMS VAX library. The module is replace into stream FOO, which Gmeans that the module must already be reserved for that stream and the Hinput file becomes the latest generation of the module for that stream. DIf you omit the /STREAM qualifier, the module is replaced into your default stream.

AWith the REPLACE command, you can specify a list of module names Gseparated by commas, and you can use the asterisk (*) and percent sign H(%) wildcard characters in the module names. All modules that match the wildcard patterns are replaced.

:VDE also allows you to associate a number of modules from Bvarious RESERVE and CREATE MODULE commands together, by using the E/SESSION qualifier. The /SESSION qualifier allows you to pick a name Afor a group of modules, and you can avoid having to specify each Cindividual module on the REPLACE command. The use of /SESSION also Fprovides the reviewers and the project leader with a clear indication 0that a group of replacement modules are related.

FOptionally, you can specify a remark string as a parameter at the end Gof the command, as shown in the previous example. The remark parameter uhas the same effect as the /REMARK qualifier described in Table 2-5 Gand applies to all modules being replaced unless overridden by /REMARK Cqualifiers on the individual module-name parameters. If you do not >specify a remark, VSC prompts you for it. If you then enter a ;null remark string, VSC uses the remark from your original RESERVE command.

FThe REPLACE command also asks you for the cause that is the reason or Hjustification for the the replacement. The reason can be a fold record, Ha Source Control Tracking (SCT) entry, or other cause. If the reason is >specified by an SCT entry, VSC allows several options: it can ?enter the SCT note for you, it can ask you for the number of a Fpre-existing SCT entry, and it allows you to edit the SCT note during =the replacement. VSC also asks for any related QARs (Quality 6Assurance Reports) or CLDs (urgent customer problems).FThe following partial example shows how you specify the SCT entry and .problem reports associated with a replacement:

 

"
VVSC> REPLACE/STREAM=FOO [FACIL]MOD.TYP(1)gEnter the replacement remark: example replacement command (2)General type of replacement:*  FO : Fold; see original change for info,*  SC : SCT; See Source Code Tracking Note,2  OT : Other; replacement made for other reason(s)EType of replacement? sct(3)5Reason(s) for making this change (from the SCT note):  BF : Bug Fix,  NF : New Feature/Enhancement,  PI : Performance Improvement,  CS : Common Sources,#  CU : Cleanup/Retrofit/Regression,  NH : New Hardware Support,  FE : Functional Equivalence,  OT : OtherSWhat was the reason for the change: bf(4)DHow many defects -- errors from any and all sources: design, coding,5spelling, logic, etc. -- did this replacement repair?ANumber of defects: 2(5)TEnter name of SCT conference [SCT-FOO]:(6)kEnter SCT project name or [RETURN] for list: VORLON(7)pEnter file to load into SCT: (filename/EDIT/NOTE) sys$login:sct.txt(8)[%VDE-I-NOTEID, note 21.0 entered in conference(9)4Please specify related QARs and CLDs, if applicable:vEnter name of QAR database (or [RETURN] if none): QAR-DB-NAME(10)BEnter QAR number: 13(11)nEnter name of QAR database (or [RETURN] to end list):(12)nEnter the CLD number (or [RETURN] if none): CLD-12345(13)iEnter the CLD number (or [RETURN] to end list): (14)




    J
  1. The replacement command specifies the target D stream, FOO, and the facility and module to be replaced. Multiple D modules can be specified explicitly by including their names as a F comma-seperated list on the command, or implicitly via the /SESSION support.C
  2. The replacement remark is entered. If 9 VSC is later asked to enter an SCT note, the specified H project name and the text of this remark will be used as the title of  the SCT note.E
  3. The particular type of replacement. SCT G replacements are the most common. The particular type of replacement H chosen will alter the questions asked. If you had entered FOLD or had @ specified /FOLD, VSC would have canceled the outstanding fold = records for you. If you had specified OTHER or /OTHER, VSC J would ask you for the reason why this change was not made via an an SCT  or due to a FOLD.B
  4. The particular reason for making the > replacement. The reason is used for various purposes within = VSC. Can be specified on the REPLACE command using /REASON.B
  5. The user-specified number of defects J corrected. This value is used for statistical quality control purposes. 8 Can be specified on the REPLACE command using /DEFECT.J
  6. The SCT notes conference for this stream. By J default, the stream is SCT-stream-name. If you are not sure of F the stream name or the name of the SCT conference, see your project E leader. If /SCT or /NOTE is specified on the REPLACE command, this A prompt is skipped and the default SCT notes conference is used.B
  7. The project name this replacement is D associated with. Press [RETURN] for a list of projects I associated with the stream. If you are not sure of the correct project H name, see your project leader. You can specify this information using : the /PROJECT qualifier, and this prompt will be skipped.A
  8. By the specification of a filename, ? VSC has been asked to enter the specified file directly into F the SCT notes conference. The remark is used as the note title. The D keywords EDIT and NOTE are also accepted at this point, and cause 4 VSC to invoke the editor for you, or cause VSC to I prompt you for the number of a pre-existing and previously-entered SCT H note. Can be specified by using /SCT or /NOTE on the REPLACE command. @ (The default for this prompt can be user-customized using the 5 VDE$REPLACE_DEFAULT logical name. See the referencemanual for details.)L
  9. This replacement has created topic 21.0 in the  SCT-FOO SCT notes conference.F
  10. The name of the QAR database for the QAR 2 associated with this replacement is QAR-DB-NAME.G
  11. This replacement is related to QAR number G 13.0 in the QAR-DB-NAME QAR database. Specification of /NOQAR on the A REPLACE command avoids the QAR and CLD prompts for information.K
  12. There are no other associated QARs, signified " by pressing [RETURN].I
  13. This replacement is associated with the CLD * number CLD-12345. VSC checks CLD syntax.K
  14. There are no other associated CLDs, signified " by pressing [RETURN].


>Queued Replacements


CWhen you use the REPLACE command to replace a module into a normal 9OpenVMS VAX development stream, VSC does not immediately Hreplace the module into the library, and it does not immediately cancel Byour reservation on the module. Instead, it queues the module for Dreplacement at a later time when the release project leader for the Hstream allows the actual replacement to take place. The release project Gleader normally will not allow the actual replacement to proceed until #your replacement has been reviewed.

GWhen the REPLACE command queues your replacement (also called creating Ba queued replacement), it performs the following operations:



3VSC queues the module replacement request into the :VDE database for review, and notifies the release project Gleader. Once the changes are reviewed, the release project leader then Euses the PERFORM REPLACEMENT command to accept the replacement. Once Dthe replacement has been accepted, the pending modification request Awill be dequeued and the modification will be committed into the =VDE database. You will typically receive a mail message from 2VSC when your replacement has been performed. See ÄChapter 4 and Section 5.1 for information on the VSC @commands used by reviewers and by project leaders, respectively.

@Immediate Replacements


7For some development streams, the VSC utility performs Fimmediate replacements. An immediate replacement updates the Clibrary---you guessed it---immediately. When you enter the REPLACE Ecommand, the module is copied into the library. OpenVMS VAX does not Ctypically permit immediate replacements into its major development Gstreams, but might allow them for selected off-to-the-side development Astreams used by small numbers of developers. Whether the REPLACE Fcommand performs a queued or immediate replacement is thus a property Aof the development stream you are replacing modules into. If any Ddevelopment stream affected by the replacement (directly or through Echange propagation) requires queued replacements, the replacement is queued.

DA disadvantage of immediate replacements is that they do not create Fstaging areas, which can prevent recovery of lost generations after a VDE failure.

7Qualifiers


FThe REPLACE command accepts a number of qualifiers. The help text and Hthe reference manual have the details on the qualifiers accepted by the pcommand. Table 2-5 lists the more commonly-used qualifiers.

o                                                                                                                                          
Table 2-5 Qualifiers to the REPLACE command
 /CONFIRM
! /NOCONFIRM
  M /CONFIRM asks you to confirm that you want each module replaced. This N qualifier is particularly useful if you use wildcard characters in the G module name. /NOCONFIRM replaces each module without asking for / confirmation. /NOCONFIRM is the default.
+ /DEFECT=defect-count
  L Specifies the number of defects the particular replacement remedied. H Defects counted include spelling errors, run-time errors, design F errors, etc. This qualifier is applicable only to changes with bug-related reason codes.

) /FOLD[=fold-ident]
  7 Specifies that the fold record identified by theN fold-ident parameter be deleted from the database when J the present replacement completes. If this qualifier is omitted, no t fold record is cancelled. (See Section 2.8 for a discussion of fold  records.)
0 /IDENTIFICATION=res-ident
  L Specifies the reservation to be replaced. This qualifier is required O only when you have multiple concurrent reservations of the same module. TheL res-ident parameter is the reservation identifier of N the reservation to be replaced. This is the reservation identifier that L you specified or the source control system assigned when you reserved 6 the module; it is usually a small integer value.
. /INFORMATION[=filespec]
% /NOINFORMATION
  L /INFORMATION specifies that additional information about the current D queued replacement is found in the text file specified by theJ filespec parameter. This information might include I instructions or advice that the release project leader should read F before performing the queued replacement. It might also include L information for your reviewers. The information file is copied to the J replacement's staging area and is discarded once the replacement is  performed.
  If theK filespec parameter is omitted, you are placed in an L editing session to create the information file. If the /NOINFORMATION E qualifier is specified, no information file is attached to the B replacement. If neither qualifier is specified for a queued I replacement, you are asked whether you want to edit an information D file. These qualifiers are ignored for immediate replacements.
& /INPUT=filespec
  M Specifies the source file to be used as input for the replacement. If 4 you omit the directory specification from theG filespec parameter, the file is taken from your L default directory. If you omit the file name or file type, the module G name and module type are used by default. If you omit the /INPUT L qualifier entirely, the file is taken from your default directory and : must have the same file name and type as the module.
 /LOG
 /NOLOG
  I Specify whether informational log messages are printed after each O module is replaced or queued for replacement. /LOG causes such messages E to be printed and /NOLOG suppresses them. /LOG is the default.
, /NOTE=sct-note-number
  N Specifies the number of a previously-entered SCT note in the SCT notes E conference. When specified, VSC uses the default name for the A SCT notes conference. If omitted, VSC will prompt for the  SCT-related information.
, /OTHER="other reason"
  O Specifies that the replacement is not associated with an SCT entry or a 0 FOLD record, and includes the reason why.
, /PROJECT=project-name
  I /PROJECT specifies the project name with which the replacement is J associated. The project is used for statisitical purposes, and the M project name is used in conjunction with the remark text as the title , used for any SCT note entered by VSC.
- /PROPAGATE=stream-name
# /NOPROPAGATE
  M /PROPAGATE specifies that the module changes being replaced should be L propagated to all successors of the initial development stream up to 0 and including the stream specified by theK stream-name parameter. Changes cannot be propagated G further than specified on the original RESERVE command, however. I /NOPROPAGATE specifies that the changes not be propagated past the E initial development stream. If neither qualifier is specified, < VSC propagates the changes as far as requested on the K original RESERVE command, which by default propagates changes to all t successors (recursively) of the current stream. See Section 2.8 for ( more detail on change propagation.C

For OpenVMS VAX, most replacements should use the default G propagation behavior and you should seldom need these qualifiers.

* /REASON=reason-code
  K Specifies the reason code for the replacement. Typically associated M with an SCT entry. Bug-related reason codes require the specification * of the number of defects corrected.
' /REMARK="string"
  D Specifies a one-line remark string to be associated with the L replacement. If this qualifier and the remark parameter are omitted, F you are prompted for a replacement remark. If you enter a null @ replacement remark, VSC uses the remark string from each N module's reservation. The project name and the remark text are used as 1 the title for any SCT note entered by VSC.
- /REPLACEMENT=repl-name
  J Specifies the name of the queued replacement if the replacement is L queued. (This qualifier is ignored for immediate replacements.) If a C queued replacement by that name already exists, VSC appends D the specified modules to that queued replacement. Otherwise, B VSC creates a new queued replacement by that name. If this B qualifier is omitted, VSC creates a new queued replacement F and assigns it a unique replacement name based on your OpenVMS  user name.
; /REVIEWER=(username [, username...])
  C Specifies the users who should review this replacement. EachE username parameter specifies the OpenVMS user F name of one reviewer for the replacement. Each such reviewer is F automatically notified with a mail message. These reviewers are M expected to review the changes that make up the current replacement as G described in Chapter 4.
) /SCT=sct-file-name
  K Specifies the SCT note to be entered into the SCT notes conference. C When specified, VSC uses the default name for the SCT notes C conference. If omitted, VSC will prompt for the SCT-related  information.
, /SESSION=session-name
  O /SESSION allows you to replace a number of reserved and created modules O together with a single command, and allows you to avoid specifying each D module on the command. When used with the queued-replacement L environment, the use of sessions also provides a clear indication to O the reviewers and to the project leader that the modules being replaced G are associated. The particular session name used is typically a J mnemonic name chosen by the user when the CREATE MODULE or RESERVE M command is issued, and usually reflects the particular set of changes  being made.
* /STREAM=stream-name
  L Specifies the development stream in which the modules to be replaced I are currently reserved and into which they should be replaced. TheN stream-name parameter gives the name of the stream. If D this qualifier is omitted, VSC replaces the modules into your ! default development stream.
) /USERNAME=username
  K Specifies that the modules should be replaced on behalf of the user . whose OpenVMS user name is given by the? username parameter. You must have a VSC J privilege (USERNAME) to use this qualifier; it is meant for release G project leaders and others who manage the OpenVMS libraries, and @ is intended only be used in unusual or special situations.


8Examples


HIn the following example of a queued replacement, user HOFFMAN replaces ?module FOO.MAR into facility SYS in development stream PHOENIX:

 

"
+VSC> REPLACE/STREAM=PHOENIX [SYS]FOO.MAR9Enter the replacement remark: example replacement commandGeneral type of replacement:*  FO : Fold; see original change for info,*  SC : SCT; See Source Code Tracking Note,2  OT : Other; replacement made for other reason(s)MType of replacement? sctReason(s) for making this change (from the SCT note):  BF : Bug Fix,  NF : New Feature/Enhancement,  PI : Performance Improvement,  CS : Common Sources,#  CU : Cleanup/Retrofit/Regression,  NH : New Hardware Support,  FE : Functional Equivalence,  OT : Other&What was the reason for the change: bfDHow many defects -- errors from any and all sources: design, coding,5spelling, logic, etc. -- did this replacement repair?Number of defects: 1+Enter name of SCT conference [SCT-PHOENIX]:@Enter SCT project name or [RETURN] for list: BUCKAROOCEnter file to load into SCT: (filename/EDIT/NOTE) sys$login:sct.txt.%VDE-I-NOTEID, note 41.0 entered in conference4Please specify related QARs and CLDs, if applicable:=Enter name of QAR database (or [RETURN] if none): ;Enter the CLD number (or [RETURN] to end list): F%VDE-I-FILCOPSTAG, file DEV$:[HOFFMAN]FOO.MAR;3 copied to staging areaD%VDE-I-REPLQUE, module [SYS]FOO.MAR queued for replacement HOFFMAN-1>%VDE-I-COMMIT, database transaction has successfully committedLDo you want to edit an information file for replacement HOFFMAN-1 ? [No]: NOVSC>


9As the log messages show, VSC queues the replacement and :assigns it the name HOFFMAN--1. VSC also asks whether the ?user wants to edit an information file for the replacement. An Einformation file passes information to the reviewers and the release Fproject leader. In this example, the answer is NO, but had the answer 9been YES, VSC would have invoked an editor to create the Ginformation file. Replacement HOFFMAN--1 is then available for review. EIt will be reviewed by user JONES and by any automatic reviewers for Cthe module and stream. After it has been reviewed, it is up to the ;release project leader to actually perform the replacement.

HIn the following example of an immediate replacement, module MOD.TYP in 7facility FACIL is replaced into development stream TOM:

 

"
BVSC> REPLACE/STREAM=TOM [FACIL]MOD.TYP "Remark string"/NOTE=321:Type of entry to cause replacement (FOLD, SCT, OTHER): SCT3Please specify related QARs and CLDs if applicable:6Enter name of QAR database (or RETURN if none): V54-FTEnter QAR number: 354Enter name of QAR database (or RETURN to end list): 3Enter the CLD number (or RETURN if none): APO-12345.Enter the CLD number (or RETURN to end list): ?%VDE-I-FILCOPLIB, file DEV$:[MYDIR]MOD.TYP;12 copied to libraryH%VDE-I-REPLACED, generation [FACIL]MOD.TYP;4(4) replaced into stream TOMJ%VDE-I-REPLACED, generation [FACIL]MOD.TYP;4(4) replaced into stream JERRY>%VDE-I-COMMIT, database transaction has successfully committedVSC>


FBecause stream JERRY is a successor of stream TOM in this example and Dbecause this module has not diverged between those two streams, the Bchange (the new module generation) is automatically propagated to Fstream JERRY. The new instance of this module thus becomes the latest Dgeneration of the module for those two streams. The /NOTE qualifier Gindicates that additional information on this change was included in a Dpreviously-created SCT note, 321.0; this note was previously loaded &into the SCT notes conference SCT-TOM.




 p
PreviousW NextZ Contents\ Index