The importance of the .dsp based build is that the NT developer working in his local environment (or "sandbox") will almost certainly be using the Visual Studio IDE. And since .dsp files as opposed to make files will govern his local builds, an engine should be constructed that uses these files. This way, the local sandboxes will be in synchronization with the master build machine.
At the time of this writing, MidWatch has matured to a complexity that is making it hard to extend some of the features that I dream about. It is the hope of the author that MidWatch be rewritten in C++.
The button in the bottom right hand corner freezes the auto scroll, so that the Build Meister can concentrate on a particular portion of the log. When this toggle button is pushed in, new lines are still written to the log as they happen, but the log does not auto-scroll to the bottom. The Recover Busted Build command button opens a dialog with a combo box. The Build Meister selects the event number that was broken, and the build will restart from the project that was busted. The selection of the event number is not very user friendly, but it works for now. Note that the Build Meister should first have the problem resolved. If there was a compilation error in a particular file, and a new version of the file was not checked in and updated in the CZ View, the build will fail again. The Build Meister in making the corrections could move labels or what ever is appropriate to accomplish the fix.
The Clean Build toggle button causes the build to removed all derived object prior to compilation. There is also places in the .adp file that can describe certain directories to clean prior to the build commencing. If this button is pushed in, the build will be cleaned.
Each 24 hour period is stored in a new log file.
2.2.1. The right pane is a list of the events that MidWatch is programmed to perform in order of the event time. An event can be selected for editing either by the right pane or by the data control on the bottom left.
2.2.2. The text box on the upper left, while not labeled is the date and time that the build is scheduled to start. This is editable by the Build Meister. The time to the right of the text box shows the system time and is updated every 250 ms. The Build Now command button set the date in the text box to either today’s date (if the hour of the build is prior to now) or yesterday’s date (if the hour of the build is later than now).
2.2.3. The event can be set for a Target Label Build or a Tip Build by the selection of the radio buttons in the event box. A Target Label Build will cause the config spec of the dynamic inspection view to be edited with the target label defined in the PLR. (see 3.2.9 TargetLabel) This view will then be used to drop an incremented build label defined in the PLR. (see 3.2.7 & 3.2.8) If set for a tip build, the config spec is unaltered, and the LATEST of the branch is built. In a tip build the Build Meister can optionaly cause MidWatch to Use and Increment a Build Number, and to Drop a label. Note that the label drop depends on the build number being incremented. These boxes are automatically checked in a Target Label Build. To use and increment a build number without dropping a label means that the .rc files will be stamped with version information prior to the compilation, but that no record of this version number will be applied to ClearCase.
This can speed up a build by a good half an hour or so, but there will be no labels in Clearcase to match the binary results with. When a code stream is far from a release date, and the discipline is loose, the purpose of the build is just to ensure the health of the build and provide QA with recent build to test. In this loose discipline, label drops do not provide a lot of value, as most of these build results have relatively small value and are quickly discarded when more recent builds are available. Once a code stream or product approaches a release date, it is typical to start dropping labels and move to the tight discipline of target labeled builds.
2.2.4. The text box in the upper right corner of the event box is a quick and dirty control used by the developer, there are three valid states for this text box, and it should be replaced with a group of radio buttons. It is not editable from this interface, but the meaning is:
2.2.5. The Product combo box is used to select a particular product defined in tbl_ProductLaunchRecords. The current event can be switched to build any product for which there is a record in the table.
2.2.6. The Re-Occurs checkbox causes this event to be rescheduled at the conclusion of the event, merely select the days that you wish this to build. Once the Scheduler dialog is closed, the any pending event scheduled prior to the current time will fire, one at a time starting with the event scheduled furthest in the past.
Enter the Table Parser Control, (which is in the menu under Configure>Development Utilities>Table Parser because I never intended this to be a permanent part of the UI) From here you can select any of the tables in db.mdb and click the down arrow to write the table to text. The text file is located in MidWatch’s "home" directory. You still must checkout the current text file, copy the new version to the view, and check back in. Conversely, a text file read out of ClearCase can be copied to the "home" directory and be read into the db.mdb where it is more convenient to analyze, and or edit. The Renumber Build Order command button causes the build order field in the tbl_ProjectList to be renumbered in increments of 10 so that you could add a new project between two consecutively numbered projects. This is just like the old days of BASIC isn’t it? What fun, some things never change.
This "control" is available from Configure> Development Utilities> Make tables from DSW. This will open a file browser, navigate to your .dsw file and select it. The tbl_ProjectList generated is not complete. This control simply automates the generation of the skeleton of a tbl_ProjectList. All information in a .dsw file is tranfered to the table, but there is information required in the table that is not found in the .dsw.
This will be (for the present) entered using Access 97 by hand.
Access 97 is of course becomming obsolete. It is likely that you no longer have it installed in your environment. If you convert db.mdb up to Access 2000, MidWatch will not be able to use it. However, you could create a blank .mdb with Access 2000, and then link to the tables in the db.mdb while it is still in Access 97. This will give you a bug free view into the tables and you can manipulate them with Access 2000.