An NT User Interface
Spokesman: Yariv Sheizaf
Cimatron's Software Infrastructure Department Manager
Cimatron's Development Site
- Cimatron, a CAD/CAM software manufacturer (25 Million USD a year).
- Heterogeneous UNIX and PC network.
- A WAN includes two LANs with a Peer-to-Peer line connection (1MB/s).
- 100 SCM system users: 80 developers, 20 application engineers.
- Previous SCM system: UNIX/RCS based off-line system, managed by CM person.
Why Cimatron chose Perforce as its SCM tool
- Easily used by Windows developers.
- Easy-to-install system.
- Minimal disk space in both Server and Client.
- Fast performance.
- Fast and trivial connection inside a WAN -- the Server is located 100 KM from the remote LAN.
- Brilliant life-cycle methodology.
- Full recursive (in directory trees) system and commands.
- Simple command line language.
- Identical language for UNIX and NT.
- Inexpensive price.
- Good technical support (Virginie & Co.).
- Easy to create shell software.
Perforce in Cimatron
- NT 4.0 Server.
- 100 licenses, 99 NT Clients, 1 UNIX Client .
- Perforce Evaluation started on Nov. 1997:
97.2, one project, 10 users. - Current status: V99.1, two big projects
(~20K files each), 100 users.
SCM Methodology of Cimatron
- Variant of Inter-Branch life cycle model by Perforce:
- Branching methodology (per project):
- "DEV" - Main development branch.
- "INT"/<version> -- Integration branch.
- "QAT"/<version> -- Quality Assurance Tests branch.
- "PRD"/<version>/<correction-version>/...-- Production version branch and its correction layers.
(partial-module patches or full correction versions)
- Project full build performs weekly, usually based on head revision of "DEV", by CM person.
NSCM General description
- NSCM is a SHELL software for WinNT users over Perforce.
- Everything P4Win does -- will be done using P4Win.
- Everything missed or complicated to apply in P4Win -- NSCM will do.
- Standard reports.
- Complex comparisons.
- Standard labels management (creation and reporting).
- Special activities over Changelist.
- Branching management (not completed yet).
NSCM package development languages
- Perl -- Algorithms and computing engine.
- Visual C++ GUI.
- InstallShield Installation program.
- Why VC++ ?
VC++ is the standard development language in Cimatron. TCL/TK and VB are not in use in our company. We prefer a well-known and rich language.
NSCM user types
- Developers:
Do: Check Out, Edit, Merge, Submit, Sync-to-official-label, connect MFC/P4. - Application Engineers:
Do: Complex reports, compare with tasks tracking system, changes approval. - Configuration managers and Version builders:
Do: Weekly official builds, standard labels, official branches creation. - DBA: DB design, permission policy, DB utilities, checkpointing, installations.
NSCM A modular SM system shell package:
- NSCM designed as a modular system, based on a unique, uniform engine.
- Joining of new module does not change the engine or the GUI basis.
- Just add a new function and a new folder/button using uniform procedure.
NSCM Implementation
NSCM Sections:
Current folders:
- "Create Label" Standard module label creation.
- "Labels Reports" Various label types reports.
- "Changelists Actions" R/W actions and reports related to changelists.
- "Tree Reports" Trees (branches, depots) content, comparisons.
Planned extensions:
- "Branches actions" folder will be added soon.
- "CM utilities" folder will be added for configuration manager login usage.
- "DBA utilities" for DB administrator login usage.
NSCM "Create Label" functions folder:
Module standard label:
- Is set to: Project / Configuration / Module
- Standard label goals are:
- Inter R&D team synchronization.
- Define a project/configuration version as a harvest of modules versions.
PCF - Project Control File
- Standard label name is fixed automatically, controlled by PCF/Project control file. When a label is created, the relevant field in PCF is increased by one.
- PCF example:
#P/M PRE DEV INT QAT PRD Elite 2 2 1 1 1 App 2 4 0 0 0 CimDi 1 4 0 0 0
- PCF example:
NSCM standard module label report:
Cimatron development process and Perforce labels:
According to Cimatron development process, an official project build is performed weekly. When the project is complete, the CM assigns a project label and all project developers synchronize to the new label.
NSCM official build label report:
Changelists Actions
- "Changelists Actions" abilities:
- Changelists reports.
- Synchronize to a Changelist without removing other files from client.
- Connection to Remedy/ARS task tracking system.
- Integration using submitted Changelist number as an argument. (Including optional resolve and submit of the new changelist).
- Given branch modification during a time period, ordered by Changelists.
- Confirm Changelist submitted by supervisor, using Pre-submit trigger mechanism.
NSCM "Changelists Actions" folder (Menu):
NSCM "Changelists Actions" folder (By Users):
NSCM "Changelists Actions" folder (By Groups):
NSCM "Changelists Actions" folder (By ARS):
NSCM "Changelists Actions" folder (Integrate):
NSCM "Changelists Actions" folder (Diff Labels):
NSCM "Changelists Confirm" using P.S. Trigger:
Tree Reports
- Tree reports compare two trees, branch vs. branch
- It is possible to compare branches in different projects. We have some projects written on a common basis.
- Tree reports are filtered : print only different files / identical files / in 1st / in 2nd
- Tree reports are based on the Project/Configuration structure, which is in use in Cimatron according to InterBranch model.
NSCM "Tree Reports" folder:
NSCM - Summary
- NSCM is a modular Windows GUI-based software system over Perforce.
- NSCM enables all users to use Perforce without command line interface usage.
- NSCM implements InterBranch model -- easy to customize from Cimatron to another Perforce based CM sites.
Credits:
Application Developers:
Miss Michal Naim, Mr. Eli Ofek
Presentation:
Mr. Eli Ofek