AccuRev Announces VersionOne Integration

December 22, 2009

AccuRev has announced integration for VersionOne, an Agile product planning and management tool. When implementing and managing Agile development, users can quickly leverage the power of AccuRev’s Agile process change management with their existing investment in VersionOne in order to optimize the software development process.

AccuBridge for VersionOne provides integration through an easy-to-use field mapping and bi-directional integration for issues, defects, tasks, and stories.  With this integration, users have full traceability between stories and defects, and the source code changes are fully automated. By automating manual error-prone processes, the integration makes team collaboration more efficient.

With AccuBridge for VersionOne, users can now:

  • Synchronize VersionOne defects/issues, tasks, and stories with AccuRev directly, to ensure data integrity and easy reporting.
  • Utilize AccuRev change packages for issue-based development within AccuRev, and have full bi-directional integration providing traceability in VersionOne.
  • Have visibility of source code changes within VersionOne, providing comprehensive integrated reporting.

Availability
AccuBridge for VersionOne is available immediately directly from AccuRev. For more information, contact your local AccuRev sales representative at 1-800-383-8170.


Agile Journal Seminar Series: Next Stop Los Angeles

December 15, 2009

AccuRev joins with Coverity, Electric Cloud, Rally Software and BigVisible in bringing the Agile Journal Seminar Series to Los Angeles on December 17, 2009. The seminar focuses on promoting Agile tools and techniques in order to optimize the software development process.

The event agenda includes a keynote presentation from Agile Coach and Co-Founder of BigVisible Solutions, George Schlitz, speaking on ‘Agile Hits Ground in the Organization – Understanding the Beach Head and Expanding the Operation,’ as well as expert presentations on Agile topics such as:

  • An agile approach to requirements management
  • Proving the ROI impact of Agile methods and tools
  • Keys to effective, reliable continuous integration
  • Emerging SCM best practices for Agile development
  • How to ensure software quality/security throughout Agile development cycles

There will also be a product showcase featuring live demonstrations of Agile project management, build and release, change management and test solutions that are helping to improve the effectiveness of development projects and teams.

For more information and registration details, please visit: http://www.accurev.com/seminar/la20091217-7


Agile Journal Seminar Comes to Austin

December 3, 2009

AccuRev joins with Coverity, Electric Cloud, Smart Bear and VersionOne in bringing the Agile Journal Seminar Series to Austin, TX on December 8, 2009. This seminar aims at bringing together many of the industry’s Agile software development thought leaders and promoting Agile tools and techniques in order to improve the effectiveness of development projects and teams.

The seminar will start with a keynote from Agile Expert and Coach, Doug Shimp from 3Back followed by expert presentations on a wide variety of Agile topics such as “Automating Agile software development processes” and “Optimizing your development, build and release.” There will also be a product showcase featuring live demonstrations of Agile project management, build and release, change management and test solutions.

The seminar provides a unique opportunity for attendees in the Austin area to learn more about Agile best practices in a local forum free of charge.

For more information and registration details, please visit:  http://www.accurev.com/seminar/austin20091208-7


Agile Journal Seminars Come to Boston and New Jersey

November 5, 2009

AccuRev joins with Coverity, BigVisible, Electric Cloud and VersionOne in bringing the Agile Journal Seminar Series to Waltham, MA and Newark, NJ on November 10 and 11, 2009. These seminars provide a great opportunity for attendees to learn more about Agile best practices and explore industry-leading software tools in a local forum.

The agenda includes a keynote presentation from Brian Bozzuto, BigVisible, on “Agile is More than Better, Cheaper, Faster,” as well as expert presentations on a wide variety of Agile-related topics including “Automating Agile Software Development Processes” and “The New Face of Project Management.”

For additional details and registration information on these seminars:


Agile Journal Seminar Series: Next Stop Santa Clara

November 2, 2009

AccuRev will be joining with Coverity, Electric Cloud, Enthiosys and Rally Software in bringing the upcoming Agile Journal Live Seminar to Santa Clara, CA on Thursday, November 5, 2009. This event provides a unique opportunity for participants to learn more about Agile software development best practices and explore industry-leading software tools in a local forum free of charge.

The seminar agenda includes expert presentations on a wide variety of Agile-related topics such as “Automating Agile software development processes” and “Managing Software Quality in Agile Environments.” There will also be a technology showcase featuring live demonstrations of Agile project management, build and release, change management and test solutions.

A keynote presentation from Rich Mironov, Enthiosys, on “Mitigating Risk with Agile Development” will kickoff the seminar. An attendee of a recent seminar in Fairfax, VA where this address was given said, “I came to the seminar primarily to hear Rich Mironov’s keynote address. I have read his incredibly insightful book which summarizes many years of experience in the form of colorful short stories. These “parables” serve as great teaching tools for people like me who are in a different line of business, but find the information useful nonetheless. Anyone who listens to Mr. Mironov knows that he has a special way of distilling his vast experience with fledgling companies into understandable suggestions that we all can apply,” Ken Rock, Senior Project Manager, ICF International.

For more information and registration details visit:  http://www.accurev.com/seminar/santaclara20091105-7


Agile Journal Live Seminar Series Continues in Raleigh, NC

October 23, 2009

AccuRev will be participating in the next seminar of the Agile Journal Live Seminar Series being held in Raleigh, NC on October 28, 2009. AccuRev joins with other leading providers of Agile software development solutions including Coverity, Electric Cloud, and Rally Software in sponsoring this event which focuses on promoting Agile tools and techniques to optimize the software development process.

The agenda for the event includes expert presentations on a wide variety of Agile-related topics such as SCM best practices for Agile development and the ROI impact of Agile methods and tools. The event will also include a technology showcase featuring live demonstrations of Agile project management, build and release, change management and test solutions.

The seminar is a unique opportunity for participants to learn more about Agile best practices and explore industry-leading software tools in a local forum free of charge. For more information and registration details visit: http://www.accurev.com/seminar/raleigh20091028-7

The Agile Journal Seminar Series will be coming to the cities of Santa Clara, Boston, Newark, and Austin in the upcoming months. Stay tuned for more details.


Now Shipping HP Quality Center 10.0 Integration

October 22, 2009

AccuRev has announced it is now shipping the HP Quality Center 10.0 integration. With this integration, developers and quality assurance professionals can leverage AccuRev software configuration management (SCM) capabilities while optimizing their existing investment in the quality management functionality of HP Quality Center 10.0. The integration offers a solution that improves the traceability of development work and enables better application lifecycle management (ALM).

With AccuBridge for HP Quality Center 10.0 users can manage all software development assets within the same tool and maintain their HP Quality Center configuration across the integration. This new integration is easier to use with simpler setup and installation procedures and is able to synchronize customized fields eliminating the need to switch between applications.

AccuRev’s Agile SCM and software process optimization capabilities in combination with HP Quality Center offer users an effective collaborative environment that provides a firm foundation for ALM based on strong auditing, transactional, and compliance features of both systems.  For more information, contact your local AccuRev sales representative t 1-800-383-8170.


Using a Perl Debugger with Server Side Triggers

July 31, 2009

By Wayne Blair, Senior Consulting Release Engineer and Development Facilitator

Introduction

This article describes a method to use a perl debugger on trigger scripts without advanced interprocess debugging tools.

Using a perl debugger with a V4.x server side trigger launched by the server is very difficult and encounters two known obstacles:

  1. The server will fire the trigger and the debugger will run in a thread of the detached server process; the debugger will start but will probably not communicate with you. However, if you manually started the server via a shell command then the perl debugger will start, accept input from the keyboard, then you will loose contact with the debugger; it does not have exclusive access to the keyboard because it is running in the context of the detached server process. The next command you type will go to the shell, not the debugger.  It gets messy from there.
  2. Debugging on your live server means another AccuRev command could launch the same trigger in debug mode and the AccuRev client that issued the command will appear to be “hung” because the server thread for that command has called the debugger.  Also, if you started the server from the shell command, you will now have two debuggers trying to communicate with you. Running two different triggers in debug mode will create madness for you and get your users very upset!

Summary

  • Trigger parameter files facilitate communication between the server process and triggers.
  • The AccuRev server does not provide a mechanism to preserve trigger parameter files; they are temporary and removed.
  • XML is used for most trigger parameter files but some still use flat files. Study the original trigger to know how to process the format.
  • Modify the trigger file to capture and preserver the trigger parameter files. There can be many parameter files per transaction. Compose the file name based upon the trigger name, sequence number, and epoch second.
  • Practice continuous process improvement! Use a semaphore file to activate and deactivate the feature to capture the parameter data to a file. You will enable the feature for a few minutes to collect samples then disable it.  The semaphore allows you to reuse the feature without editing the trigger script.
  • Once you have enabled the facility and have collected a few trigger parameter dump files, choose an interesting one and make a copy; the copy step is important because the trigger you are debugging will reinitialize the trigger parameter file to return data back to the server. NOTE: Some triggers expect both an XML and flat parameter files. Study the trigger to determine the correct calling arguments.
  • Use the copy of the parameter file and pass it as a command line parameter to the trigger you run with a Perl debugger.
  • You can now single step through your trigger.
  • You must make a new copy of the original parameter file before restarting the debugging session because the file you passed into your trigger was reinitialized. You do not need to exit the debugger, just make a new copy of the trigger file before you issue the debugger “R” (restart) command.

Details

I extend AccuRev functionality to support development processes and I create complex triggers that are easier to develop with a Perl debugger; this is especially true when your triggers are manipulating issue tracking data.  The AccuRev CLI manual provides good information about the triggers but you might need subtle details that are beyond the scope of the documentation. Walking through trigger execution with a debugger gives details about the content of the parameter files and what is passed from trigger to trigger.

I am not aware of any special options to allow the AccuRev server to run Perl triggers in debug mode and my attempts to do so create an unworkable environment. Since triggers are driven by parameter files, I’ve added routines to all the triggers to collect their parameter files. Once I have a collection of interesting parameter files I can launch the trigger scripts with my own Perl debugging tool of choice instead of them being launched by the AccuRev server.  I can also inject faulty data via the parameter file for testing.

The AccuRev server creates a temporary parameter file for each trigger it is calling.  The file name will be a relative path to a temporary directory and each filename will be a sequence number. Please note that a trigger can be fired more than once for a transaction. The temporary file name does not indicate the target trigger script; the trigger name and the AccuRev command that fired the script are embedded in the parameter file.

I embrace the concept of continuous improvement so I anticipate trigger debugging will used many times over the years.  I used a semaphore file to enable and disable the parameter dump functionality to eliminate edits to the trigger scripts on the live repository.  I’ve even attached captured parameter files to issue tickets I’ve submitted to AccuRev support.

Capturing Parameter Files

The AccuRev server determines what trigger to launch then creates one or more temporary files in the cache directory of the site slice and passes a relative directory name and file name(s) in the argument list to the trigger. The server process will ensure a unique sequence number when multiple threads launch the same trigger at the same time.

The steps I use are:

  1. Set up my environment:
    1. Define the semaphore file name
    2. Define a directory below the accurev root to store the trigger parameter files.
  2. Immediately after the trigger has parsed the XML data, call a utility function and pass it the “hook” name and the relative path to the temporary trigger parameter file that was created by the server. The server created file name will be a sequence number.
  3. The utility function will look for the semaphore file in the AccuRev root directory and will simply exit when not found. When the semaphore file is found, the function will compose a unique file name based upon
    1. The trigger “hook” name
    2. The  server supplied file name (minus the directory)
    3. The current epoch second
  4. The utility function will create the trigger dump directory as needed, create the file name composed in step #3, and write the trigger parameter data to the new file.

Appendix A has an excerpt of my server_admin_trig.pl and trigger utility module. I save off the parameter file immediately after the trigger has digested the XML data.

I strive to write my perl code to be operating system agnostic. I keep my common trigger code in a perl module that resides in the accurev “bin” directory. I like to avoid external environment dependencies so I explicitly state the lib path (in an OS agnostic way) to my trigger utility module.  I do this because the “use” is a compile time directive and is processed before variables are defined.

Debugging the Trigger with the Captured Parameter File

You must make a copy of the captured trigger parameter file before you use it. Triggers re-initialize the parameter file to pass data back to the server so your captured data will be lost.

  1. cd $HOME
  2. cp $ACCUREV/trigDumpDir/server_admin_trig-0_0-1246634816   test.dat.org

You launch a perl debugger and pass the trigger parameter file into the script as the first command line argument. Debug to your heart’s content.

  1. cd $HOME
  2. cp $ACCUREV/storage/site_slice/triggers/server_admin_trig.pl    funTime.pl
  3. cp test.dat.org test.dat
  4. perl -d funTime.pl test.dat

NOTE:  The script will reinitialize the parameter file for output. You must copy “test.dat.org” to “test.dat” before you restart the debugging session.

Appendix A:

Server_admin_trig.pl – You can download this script here

Click to download

Click to download

Trig_utils.pm – You can download this script here

Click to download this script

Click to download

Sample of Captured Trigger Data

Below is the trigger parameter file captured from server_admin_trig.pl for a “mkdepot” command.

This is a simple example. The parameter data gets much more interesting when your objective is to mine transaction or issue tracking details.

Capture file name is: /opt/accurev/ar6060/trigDumpDir/server_admin_trig-0_0-1248023869

<triggerInput>
<depot>test10</depot>
<hook>server_admin_trig</hook>
<command>mkdepot</command>
<principal>ar6060</principal>
<ip>127.0.0.1</ip>
</triggerInput>


Hot Backups and Database Verification Without Down Time

June 5, 2009

By Wayne Blair, Senior Consulting Release Engineer and Development Facilitator

Hot backups are wonderful but one needs two important sanity checks on the backup:

  1. Was this a good backup?
  2. Is the live database okay or did we just backup a corrupted repository?

Unfortunately AccuRev v4.x cannot perform a database integrity check on the running repository so you have to schedule down time but you can run the “maintain” utility on your backup repository on a different machine with a minor change to the acserver.cnf file.

These steps can sanity check both your backup and your live repository at the time of backup without any down time using the behavior of the “maintain” utility.

  1. Write a backup mark using the command “accurev backup mark”.
  2. Replicate your entire accurev installation directory tree to another machine running the same operation system. You want the data, executables, configurations, and license key.
  3. Edit ./bin/acserver.cnf and change the machine name from your live repository to the name of the “other” machine”. MASTER_SERVER = your_other_machine.organization.domain
  4. Run the command “./bin/maintain dbcheck”.

If the command fails due to a host name error then review your edit for faulty white space (the white space before and after the = is required and you must not have trailing white space after the host name).  If the fully qualified name fails, try using the alias (short) name or IP address.

Assuming a successful dbcheck, you have now verified the integrity of your backup and you have verified the integrity of your live repository as of the time of the last backup mark command.

DETAILS

The AccuRev license is tied to a specific host and port number and you must have a different license file to run the AccuRev repository on a different machine.

The maintain utility performs a sanity check on the license and will exit when the license file is missing. It will check on the host name and will exit when the running host name does not match the host in acserver.cnf but will continue to perform the database integrity check when they do match!

My AccuRev server is Linux based so I run an hourly cron job to write the backup mark then rsync the whole installation to another machine.  I intentionally use the –delete option to ensure the backup is identical every time so the edits I apply to acserver.cnf will be eliminated the next time the backup is run.

Here is a trivial sample script to perform the backup with rsync.  I am writing this from memory so please verify the rsync syntax with the trailing slash on the directories.

# ASSUMPTION: ssh keys are already established between this host
#             and the remote host to allow an automatic login.
#
# NOTE: Be sure the previous run of this script has completed before
#       running again.

/opt/accurev/bin/accurev backup mark
sleep 3
rsync -az -e ssh --delete \
/opt/accurev/ \
wblair:/opt/accurev

About The Author

Wayne Blair was invited to contribute to our Distinguished Lecturer Series because of his experience as a consulting release engineer with multiple AccuRev customers.  Mr. Blair has extensive experience creating and extending software development, release, and installation environments, and helping communicate technical information to non-technical people.


AccuRev 5.0 — Some Features of the New Architecture

May 29, 2009

The new AccuRev beta release is customer’s first look at Version 5.0 of the AccuRev server.  The key new element has been porting the AccuRev server to an ODBC database.  Initial reports show that this will provide enhanced scalability and more flexible IT architectures that large AccuRev deployments have been looking for, without degrading the one-user path length. While the functionality will be familiar to any post-R4.5 customer, there are many enhancements and bug fixes that have migrated into 5.0, making this an even larger improvement from R4.0 than it was from R3.0.

The first database supported by AccuRev, and the only one supported with the beta test of Version 5.0, is the PostgreSQL DBMS.  PostgreSQL (pronounced “post-gress”) is a sophisticated DBMS with good concurrency support for complex locking models, rich support of database features, and broad platform availability.  The postgreSQL.org site contains lots of ancillary material, including a list of books on PostgreSQL for the interested developer.

One of the features of ODBC database support is the ability to use familiar database tools to create reports and real-time dashboard data.  The AccuRev server schema is very complicated with multiple databases, many tables, and complex fields.  To simplify reporting, we have developed a database View for this blog post that abstracts AccuRev database internals into a more user friendly form, perfect for use with report generation tools.  This database view will be available from the AccuRev User Forums, and will be updated to include other features based on customer request.  The database is not directly customer accessible for modification and users should not make modifications or additions to the AccuRev database. Fortunately, Views in PostgreSQL are read-only, which is another safety guard against accidental database modification.

Tools such as Crystal Reports® or BIRT™ provide user interfaces for report generation that work directly with tables in a relational database.  They provide a simple drag-and-drop, wizard driven, interface, making report generation and formatting much simpler than coding SQL statements directly.  Business Objects (owned by SAP, and maker of Crystal Reports) and Actuate (BIRT provider) both have real-time update report tools, for creating near-real-time dashboards.  These are not covered by this blog, but would use the same PostgreSQL view.

The first report we want to develop is one that shows the transactions in a stream, broken out by users.  I like this graph because it shows exactly who contributed changes to a particular release candidate. We used Crystal Reports to generate the template.

Crystal Reports Transactions Template

Crystal Reports Transactions Template

All the “action” is in the design area at the bottom.  We used the Group wizard to add the name, sum the number of promotes, and generate the graph.

Crystal Reports Change Contribution

Crystal Reports Change Contribution

Another report is the rate of changes to a series of streams.  This shows the rate of instability in a project, which might not be reflected in the issue tracking system.  Here we show the number of transactions in a series of streams each week, for the past ten weeks.

CrystalReport Rate of Change Template

CrystalReport Rate of Change Template

And we’ve limited the report to just show the three streams of most concern.

Crystal Reports Stream Changes

Crystal Reports Stream Changes

In conclusion, Version 5.0, coupled with AccuRev’s new Web User Interface, is an exciting new version of AccuRev that promises to provide benefits to the AccuRev community, both large and small, for a long time.

Vlad Romanescu &

Rob Mohr