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:

Image 1

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:

Image 2

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

NSCM standard module label report:

Image 3

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:

Image 4

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):

Image 5

NSCM "Changelists Actions" folder (By Users):

Image 6

NSCM "Changelists Actions" folder (By Groups):

Image 7

NSCM "Changelists Actions" folder (By ARS):

Image 8

NSCM "Changelists Actions" folder (Integrate):

Image 9

NSCM "Changelists Actions" folder (Diff Labels):

Image 10

NSCM "Changelists Confirm" using P.S. Trigger:

Image 11

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:

Image 12

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