SlideShare a Scribd company logo
1 of 29
Download to read offline
1	
  
A Perforce-based Automatic
Document Generation System
Chris Shaw
Writer, DVT Division
Mentor Graphics Corporation
chris_shaw@mentor.com
Logo area
2	
  
Chris Shaw
•  MA Math, UC Santa Barbara
•  35 years tech writer: Intel, Cadence, Mentor…
•  12 years documenting design verification software
•  Taught Perl @Cadence
•  Interests: document generation automation,
publishing, gardening and dog showing
3	
  
Agenda
•  InfoHubs
•  pubs4d
•  Build Reports
•  Other Features
•  Summary
4	
  
InfoHubs
Mentor Graphics Document Delivery Platform
5	
  
InfoHubs
•  Doc delivery platform
•  Unique per software tarball
•  HTML & PDF versions of
each manual
•  Advanced features
•  Google-based intra-InfoHub
search
•  Targetable topics
•  Javascript based
6	
  
InfoHubs (HTML/PDF)
HTML PDF
7	
  
InfoHubs (Search)
8	
  
DocGen and Dmerge
•  Document Generator
•  DocGen developed by MGC
Tech Pubs Support
•  Reads FrameMaker books
•  Generates HTML & PDF
versions of each book
•  Accessible via Website or
Linux Utility
•  Handles a package of books
at a time
•  InfoHub Updater
•  InfoHub structure is hand
crafted.
•  Dmerge updates all links
after a DocGen run
9	
  
Documents in Perforce
•  DVT Division
•  Uses Perforce for software
development
•  Natural depot for manuals
•  DVT Tech Pubs
•  Stores manuals in a techpubs
depot
•  Manuals follow MGCTP
standard structure
•  Files: *.fm, *.book, README,
graphics/*.jpg
10	
  
pubs4d Utility
Perforce-based InfoHub Generation Daemon
11	
  
pubs4d Utility
•  Perl utility
•  Started as doc generation
script to simplify “end game”
•  Added Perforce front end
•  Migrated from old doc
generation scripts to DocGen.
•  Daemon process
•  Wrapper to DocGen
•  Monitors techpubs depot
•  Doc update causes pubs4d to
package the manuals and
dispatch to DocGen
•  Post-generation
•  Manages target data
•  Updates Build Reports
•  Runs checklinks routine
12	
  
pubs4d Utility
Log Output
Tuesday, March 19, 2013 4:06 PM: Processing docgen job
with 4 books.
0.0 Syncing FM files in /zin/pubs/docs/build directory.
qformal10.2 command_ref (10.2)
qformal10.2 autocheck_user (10.2)
qformal10.2 tutorials_user (10.2)
qformal10.2 cdc_user (10.2)
0.6 Sending job to docgen.
17.1 -->qformal10.2 tutorials_user....OK.
Fixing HTML for /zin/pubs/qformal10.2/htmldocs.
Copying conversion reports to dev/qf10.2/LOG.
Checking for Warnings.
Found 3 warnings.
Updating master build report.
. . .
Code snippets
$_ = `p4 -c cshaw-build sync -p $depot/$dir/... 2>&1 
|tee -a $log2`;
if ($? != 0 or /can't sync/s){
print LOG1 "(Error: sync failed. Skipping....)n";
next MANUAL
}
. . .
printf LOG1 "%4.1ftSending job to docgen.",
(time - $time)/60;
$_ = `docgen -source $docgen_driver_file 2>&1 
|tee -a $log2`;
sleep 240; #--- give docgen a chance to get started
print LOG1 "n";
13	
  
pubs4d Utility
Dynamic LOG Files
#---- Sub: display_xterm_log <geometry>, <title>, <logfile>
sub display_xterm_log {
if (fork == 0){
system 'xterm', '-sb', '-sl', '4000', '-geometry',
@_[0], '-title', @_[1], '-e', '/usr/bin/perl','-e',
qq^
$ptr = 0;
while (1){
$| = 1;
sleep 3;
next unless open LOG, "@_[2]";
seek LOG, $ptr, 0;
while (<LOG>){print}
$ptr = tell LOG;
close LOG
}
sleep; ^;
exit
} return
}
LOG1	
  
Top	
  log	
  
LOG2	
  
	
  Detailed	
  log	
  
14	
  
Build Reports
Hyperlinked Web Page of DocGen Results
15	
  
Build Reports
•  DocGen results
•  Updated by pubs4d
•  1 entry per manual (includes
timestamp, release ID and
depot)
•  Links to multiple DocGen
reports
•  Other Helpful Links
•  Development InfoHubs
•  Checklinks results
•  pubs4d Logs
16	
  
Build Reports
Translate No-Go
ERROR: fmprintdr.ps: Cannot open imported graphic file /wv/
techpubs/docgen/jobs/1303061301ukhparts/pdf/
quickstart_cdc_user/graphics/quickstart_autocheck.jpg.
17	
  
Build Reports
HTML Conversion Report
18	
  
Build Reports
HTML Graphics Report
19	
  
Build Reports
Conversion Errors/Warnings Report
20	
  
Build Reports
•  Development InfoHubs
•  Documents in the Dev area
•  Not yet promoted to Release
21	
  
Build Reports
•  Checklinks Reports
•  Hypertext links in an InfoHub
•  Intra- and inter-manual links
22	
  
Build Reports
pubs4d Logs
LOG1: top log LOG2: detailed log
23	
  
Other Features
Additional Benefits of the System
24	
  
Other Features
Links with the GUIs
25	
  
Other Features
•  Work Flows
•  Authors: automatic doc
generation (sync, checkout,
edit, checkin)
•  Administrator: manual setup of
new InfoHubs; adding
documents (authors can add
files inside document
directories)
•  Promotion Utility (pubs4)
•  Copies Dev docs to Release
docs
•  Generates data for GUI support
•  Builds links to topics
•  Extracts text for hover help
•  Populates various copies (Wiki
site, SupportNet staging site)
•  Archives releases
•  Displays xterm logs for authors to
monitor the progress of
document submission
26	
  
Summary
Some Issues and a Conclusion
27	
  
Summary
•  Some Issues
•  Locks
•  Manual document locking by
authors
•  Some manuals have single
owners (no need for locks)
•  Others have multiple authors,
so we currently rely on process
(it is rare to have collisions)
•  Trigger
•  Not yet implemented, but
probably the way to go
•  Conclusion
•  Script started as a wrapper for internal
document generation utilities
•  Evolved along 8 years of
implementation (Perforce, new DocGen
utility with server bank and parallel
conversion, hyperlink checking, GUI
data extraction, error handling)
•  Correct-by-construction methodology
(gives developers early look at the
documentation)
•  Hyper-automates documentation “end
game”
•  Frees authors to do better stuff (write!)
28	
  
Summary
Perforce is the backbone of the system. It offers a simple mechanism
for checking documents out and in. Interfacing with Perforce and the
document depots through Perl is easy and efficient.
The visual Perforce application (P4V) provides an elegant interface for
writers and other authors to use as a cockpit for their documentation
management tasks.
29	
  
A Perforce-based Automatic
Documentation System
Chris Shaw
chris_shaw@mentor.com
Mentor Graphics Corporation,
46871 Bayside Parkway,
Fremont, California, 94538

More Related Content

What's hot

What's New in OpenLDAP
What's New in OpenLDAPWhat's New in OpenLDAP
What's New in OpenLDAPLDAPCon
 
From Windows to Linux: Converting a Distributed Perforce Helix Infrastructure
From Windows to Linux: Converting a Distributed Perforce Helix InfrastructureFrom Windows to Linux: Converting a Distributed Perforce Helix Infrastructure
From Windows to Linux: Converting a Distributed Perforce Helix InfrastructurePerforce
 
Branch Management in Git Fusion
Branch Management in Git FusionBranch Management in Git Fusion
Branch Management in Git FusionPerforce
 
Icinga @OSMC 2013
Icinga @OSMC 2013Icinga @OSMC 2013
Icinga @OSMC 2013Icinga
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Red Hat Developers
 
Fluentd v1 and future at techtalk
Fluentd v1 and future at techtalkFluentd v1 and future at techtalk
Fluentd v1 and future at techtalkN Masahiro
 
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchRestlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchDataStax Academy
 

What's hot (8)

What's New in OpenLDAP
What's New in OpenLDAPWhat's New in OpenLDAP
What's New in OpenLDAP
 
PyWPS-4.0.0
PyWPS-4.0.0PyWPS-4.0.0
PyWPS-4.0.0
 
From Windows to Linux: Converting a Distributed Perforce Helix Infrastructure
From Windows to Linux: Converting a Distributed Perforce Helix InfrastructureFrom Windows to Linux: Converting a Distributed Perforce Helix Infrastructure
From Windows to Linux: Converting a Distributed Perforce Helix Infrastructure
 
Branch Management in Git Fusion
Branch Management in Git FusionBranch Management in Git Fusion
Branch Management in Git Fusion
 
Icinga @OSMC 2013
Icinga @OSMC 2013Icinga @OSMC 2013
Icinga @OSMC 2013
 
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
Developing In Python On Red Hat Platforms (Nick Coghlan & Graham Dumpleton)
 
Fluentd v1 and future at techtalk
Fluentd v1 and future at techtalkFluentd v1 and future at techtalk
Fluentd v1 and future at techtalk
 
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchRestlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
 

Viewers also liked

Cag document generation achitecture
Cag document generation achitectureCag document generation achitecture
Cag document generation achitectureTim Murphy
 
Doxxy: Document and Report generation for Oracle made easy
Doxxy: Document and Report generation for Oracle made easyDoxxy: Document and Report generation for Oracle made easy
Doxxy: Document and Report generation for Oracle made easyJan Huyzentruyt
 
Conga case study: Application visibility in AWS with ExtraHop
Conga case study: Application visibility in AWS with ExtraHopConga case study: Application visibility in AWS with ExtraHop
Conga case study: Application visibility in AWS with ExtraHopExtraHop Networks
 
Closing the Document Storage Loop
Closing the Document Storage LoopClosing the Document Storage Loop
Closing the Document Storage LoopCirrus Insight
 
User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11Idealist Consulting
 
SiriusCon2016 - Document Generation with M2Doc
SiriusCon2016 - Document Generation with M2DocSiriusCon2016 - Document Generation with M2Doc
SiriusCon2016 - Document Generation with M2DocObeo
 
Transformative Mobile Solutions - SharePoint and Nintex Case Study
Transformative Mobile Solutions - SharePoint and Nintex Case StudyTransformative Mobile Solutions - SharePoint and Nintex Case Study
Transformative Mobile Solutions - SharePoint and Nintex Case StudyJoel Oleson
 
Document Generation in Office - screens
Document Generation in Office - screensDocument Generation in Office - screens
Document Generation in Office - screenso3spaces
 

Viewers also liked (10)

Document Merge on Salesforce.com
Document Merge on Salesforce.comDocument Merge on Salesforce.com
Document Merge on Salesforce.com
 
Drawloop With DocuSign Connect For Salesforce
Drawloop With DocuSign Connect For SalesforceDrawloop With DocuSign Connect For Salesforce
Drawloop With DocuSign Connect For Salesforce
 
Cag document generation achitecture
Cag document generation achitectureCag document generation achitecture
Cag document generation achitecture
 
Doxxy: Document and Report generation for Oracle made easy
Doxxy: Document and Report generation for Oracle made easyDoxxy: Document and Report generation for Oracle made easy
Doxxy: Document and Report generation for Oracle made easy
 
Conga case study: Application visibility in AWS with ExtraHop
Conga case study: Application visibility in AWS with ExtraHopConga case study: Application visibility in AWS with ExtraHop
Conga case study: Application visibility in AWS with ExtraHop
 
Closing the Document Storage Loop
Closing the Document Storage LoopClosing the Document Storage Loop
Closing the Document Storage Loop
 
User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11User Group - Conga Composer 2.25.11
User Group - Conga Composer 2.25.11
 
SiriusCon2016 - Document Generation with M2Doc
SiriusCon2016 - Document Generation with M2DocSiriusCon2016 - Document Generation with M2Doc
SiriusCon2016 - Document Generation with M2Doc
 
Transformative Mobile Solutions - SharePoint and Nintex Case Study
Transformative Mobile Solutions - SharePoint and Nintex Case StudyTransformative Mobile Solutions - SharePoint and Nintex Case Study
Transformative Mobile Solutions - SharePoint and Nintex Case Study
 
Document Generation in Office - screens
Document Generation in Office - screensDocument Generation in Office - screens
Document Generation in Office - screens
 

Similar to [Mentor Graphics] A Perforce-based Automatic Document Generation System

[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation SystemPerforce
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovskyphp-user-group-minsk
 
Cloud Foundry Roadmap Update - OSCON - May 2017
Cloud Foundry Roadmap Update - OSCON - May 2017Cloud Foundry Roadmap Update - OSCON - May 2017
Cloud Foundry Roadmap Update - OSCON - May 2017Chip Childers
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning processDenis Dus
 
A new tool for measuring performance in Drupal 8 - Drupal Dev Days Montpellier
A new tool for measuring performance in Drupal 8 - Drupal Dev Days MontpellierA new tool for measuring performance in Drupal 8 - Drupal Dev Days Montpellier
A new tool for measuring performance in Drupal 8 - Drupal Dev Days MontpellierLuca Lusso
 
HCL Domino and Notes v12 are coming!
HCL Domino and Notes v12 are coming!HCL Domino and Notes v12 are coming!
HCL Domino and Notes v12 are coming!panagenda
 
CCT (Check and Calculate Transfer)
CCT (Check and Calculate Transfer)CCT (Check and Calculate Transfer)
CCT (Check and Calculate Transfer)Francesca Pappalardo
 
Tribal Nova Docker feedback
Tribal Nova Docker feedbackTribal Nova Docker feedback
Tribal Nova Docker feedbackNicolas Degardin
 
Drupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual LearningDrupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual LearningGabriel Dragomir
 
Upgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetUpgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetDavide Cavalca
 
Social Connections 13 - Troubleshooting Connections Pink
Social Connections 13 - Troubleshooting Connections PinkSocial Connections 13 - Troubleshooting Connections Pink
Social Connections 13 - Troubleshooting Connections PinkNico Meisenzahl
 
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformBuilding and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformKris Buytaert
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroMohammad Shaker
 

Similar to [Mentor Graphics] A Perforce-based Automatic Document Generation System (20)

[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System
 
Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
Cloud Foundry Roadmap Update - OSCON - May 2017
Cloud Foundry Roadmap Update - OSCON - May 2017Cloud Foundry Roadmap Update - OSCON - May 2017
Cloud Foundry Roadmap Update - OSCON - May 2017
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning process
 
A new tool for measuring performance in Drupal 8 - Drupal Dev Days Montpellier
A new tool for measuring performance in Drupal 8 - Drupal Dev Days MontpellierA new tool for measuring performance in Drupal 8 - Drupal Dev Days Montpellier
A new tool for measuring performance in Drupal 8 - Drupal Dev Days Montpellier
 
Golang
GolangGolang
Golang
 
Golang
GolangGolang
Golang
 
HCL Domino and Notes v12 are coming!
HCL Domino and Notes v12 are coming!HCL Domino and Notes v12 are coming!
HCL Domino and Notes v12 are coming!
 
CCT (Check and Calculate Transfer)
CCT (Check and Calculate Transfer)CCT (Check and Calculate Transfer)
CCT (Check and Calculate Transfer)
 
Presentation CCT
Presentation CCTPresentation CCT
Presentation CCT
 
CCT Check and Calculate Transfer
CCT Check and Calculate TransferCCT Check and Calculate Transfer
CCT Check and Calculate Transfer
 
Tribal Nova Docker feedback
Tribal Nova Docker feedbackTribal Nova Docker feedback
Tribal Nova Docker feedback
 
Drupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual LearningDrupal for Higher Education and Virtual Learning
Drupal for Higher Education and Virtual Learning
 
GoDocker presentation
GoDocker presentationGoDocker presentation
GoDocker presentation
 
Upgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetUpgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleet
 
Social Connections 13 - Troubleshooting Connections Pink
Social Connections 13 - Troubleshooting Connections PinkSocial Connections 13 - Troubleshooting Connections Pink
Social Connections 13 - Troubleshooting Connections Pink
 
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platformBuilding and Deploying MediaSalsa, an Open Source DAM as Saas platform
Building and Deploying MediaSalsa, an Open Source DAM as Saas platform
 
C++ Windows Forms L01 - Intro
C++ Windows Forms L01 - IntroC++ Windows Forms L01 - Intro
C++ Windows Forms L01 - Intro
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Recently uploaded (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

[Mentor Graphics] A Perforce-based Automatic Document Generation System

  • 1. 1   A Perforce-based Automatic Document Generation System Chris Shaw Writer, DVT Division Mentor Graphics Corporation chris_shaw@mentor.com Logo area
  • 2. 2   Chris Shaw •  MA Math, UC Santa Barbara •  35 years tech writer: Intel, Cadence, Mentor… •  12 years documenting design verification software •  Taught Perl @Cadence •  Interests: document generation automation, publishing, gardening and dog showing
  • 3. 3   Agenda •  InfoHubs •  pubs4d •  Build Reports •  Other Features •  Summary
  • 4. 4   InfoHubs Mentor Graphics Document Delivery Platform
  • 5. 5   InfoHubs •  Doc delivery platform •  Unique per software tarball •  HTML & PDF versions of each manual •  Advanced features •  Google-based intra-InfoHub search •  Targetable topics •  Javascript based
  • 8. 8   DocGen and Dmerge •  Document Generator •  DocGen developed by MGC Tech Pubs Support •  Reads FrameMaker books •  Generates HTML & PDF versions of each book •  Accessible via Website or Linux Utility •  Handles a package of books at a time •  InfoHub Updater •  InfoHub structure is hand crafted. •  Dmerge updates all links after a DocGen run
  • 9. 9   Documents in Perforce •  DVT Division •  Uses Perforce for software development •  Natural depot for manuals •  DVT Tech Pubs •  Stores manuals in a techpubs depot •  Manuals follow MGCTP standard structure •  Files: *.fm, *.book, README, graphics/*.jpg
  • 10. 10   pubs4d Utility Perforce-based InfoHub Generation Daemon
  • 11. 11   pubs4d Utility •  Perl utility •  Started as doc generation script to simplify “end game” •  Added Perforce front end •  Migrated from old doc generation scripts to DocGen. •  Daemon process •  Wrapper to DocGen •  Monitors techpubs depot •  Doc update causes pubs4d to package the manuals and dispatch to DocGen •  Post-generation •  Manages target data •  Updates Build Reports •  Runs checklinks routine
  • 12. 12   pubs4d Utility Log Output Tuesday, March 19, 2013 4:06 PM: Processing docgen job with 4 books. 0.0 Syncing FM files in /zin/pubs/docs/build directory. qformal10.2 command_ref (10.2) qformal10.2 autocheck_user (10.2) qformal10.2 tutorials_user (10.2) qformal10.2 cdc_user (10.2) 0.6 Sending job to docgen. 17.1 -->qformal10.2 tutorials_user....OK. Fixing HTML for /zin/pubs/qformal10.2/htmldocs. Copying conversion reports to dev/qf10.2/LOG. Checking for Warnings. Found 3 warnings. Updating master build report. . . . Code snippets $_ = `p4 -c cshaw-build sync -p $depot/$dir/... 2>&1 |tee -a $log2`; if ($? != 0 or /can't sync/s){ print LOG1 "(Error: sync failed. Skipping....)n"; next MANUAL } . . . printf LOG1 "%4.1ftSending job to docgen.", (time - $time)/60; $_ = `docgen -source $docgen_driver_file 2>&1 |tee -a $log2`; sleep 240; #--- give docgen a chance to get started print LOG1 "n";
  • 13. 13   pubs4d Utility Dynamic LOG Files #---- Sub: display_xterm_log <geometry>, <title>, <logfile> sub display_xterm_log { if (fork == 0){ system 'xterm', '-sb', '-sl', '4000', '-geometry', @_[0], '-title', @_[1], '-e', '/usr/bin/perl','-e', qq^ $ptr = 0; while (1){ $| = 1; sleep 3; next unless open LOG, "@_[2]"; seek LOG, $ptr, 0; while (<LOG>){print} $ptr = tell LOG; close LOG } sleep; ^; exit } return } LOG1   Top  log   LOG2    Detailed  log  
  • 14. 14   Build Reports Hyperlinked Web Page of DocGen Results
  • 15. 15   Build Reports •  DocGen results •  Updated by pubs4d •  1 entry per manual (includes timestamp, release ID and depot) •  Links to multiple DocGen reports •  Other Helpful Links •  Development InfoHubs •  Checklinks results •  pubs4d Logs
  • 16. 16   Build Reports Translate No-Go ERROR: fmprintdr.ps: Cannot open imported graphic file /wv/ techpubs/docgen/jobs/1303061301ukhparts/pdf/ quickstart_cdc_user/graphics/quickstart_autocheck.jpg.
  • 17. 17   Build Reports HTML Conversion Report
  • 18. 18   Build Reports HTML Graphics Report
  • 19. 19   Build Reports Conversion Errors/Warnings Report
  • 20. 20   Build Reports •  Development InfoHubs •  Documents in the Dev area •  Not yet promoted to Release
  • 21. 21   Build Reports •  Checklinks Reports •  Hypertext links in an InfoHub •  Intra- and inter-manual links
  • 22. 22   Build Reports pubs4d Logs LOG1: top log LOG2: detailed log
  • 23. 23   Other Features Additional Benefits of the System
  • 24. 24   Other Features Links with the GUIs
  • 25. 25   Other Features •  Work Flows •  Authors: automatic doc generation (sync, checkout, edit, checkin) •  Administrator: manual setup of new InfoHubs; adding documents (authors can add files inside document directories) •  Promotion Utility (pubs4) •  Copies Dev docs to Release docs •  Generates data for GUI support •  Builds links to topics •  Extracts text for hover help •  Populates various copies (Wiki site, SupportNet staging site) •  Archives releases •  Displays xterm logs for authors to monitor the progress of document submission
  • 26. 26   Summary Some Issues and a Conclusion
  • 27. 27   Summary •  Some Issues •  Locks •  Manual document locking by authors •  Some manuals have single owners (no need for locks) •  Others have multiple authors, so we currently rely on process (it is rare to have collisions) •  Trigger •  Not yet implemented, but probably the way to go •  Conclusion •  Script started as a wrapper for internal document generation utilities •  Evolved along 8 years of implementation (Perforce, new DocGen utility with server bank and parallel conversion, hyperlink checking, GUI data extraction, error handling) •  Correct-by-construction methodology (gives developers early look at the documentation) •  Hyper-automates documentation “end game” •  Frees authors to do better stuff (write!)
  • 28. 28   Summary Perforce is the backbone of the system. It offers a simple mechanism for checking documents out and in. Interfacing with Perforce and the document depots through Perl is easy and efficient. The visual Perforce application (P4V) provides an elegant interface for writers and other authors to use as a cockpit for their documentation management tasks.
  • 29. 29   A Perforce-based Automatic Documentation System Chris Shaw chris_shaw@mentor.com Mentor Graphics Corporation, 46871 Bayside Parkway, Fremont, California, 94538