John Heaton is no stranger to the often frustrating process of migrating code between environments after software updates. While release management and version control may often be afterthoughts, Heaton cautions that ignoring them could be “time consuming and disastrous should errors occur.” His winning SAS Global Forum paper SAS® Release Management and Version Control offers step-by-step instructions for setting up and using a release management environment for SAS applications.
Setting up the basics. Heaton uses the open source Subversion (SVN) server to maintain current and historical versions of source code and other software elements. Because most SAS 9.3 software tools don’t provide native support for Subversion, he uses TortoiseSVN interface to manage releases. The folder structure in Subversion is relatively straightforward. Heaton recommends defining repositories for each source environment (such as development) and target environment (such as testing). Within each environment, he recommends setting up a baseline folder for complete code and backups and a releases folders for each incremental push of software. SAS Data Integration Studio is one product that does integrate with Subversion through a set of plug-ins for CVS version control and there are step-by-step details for incorporating these as well as Base SAS batch import and export tools.
Using version control. The ability to archive software as files or objects in SAS Data Integration Studio enables developers to track development changes at a granular level. Heaton walks through the steps for archiving and comparing files and explains some of the benefits and drawbacks of the process.
Promoting an initial release. Once development is complete and code is ready to promote from the source environment to the target. Some tips for successful handling of a full export include:
- Create a root folder that contains all your code.
- Ensure your source and target environments are as identical as possible.
- Determine if you need to replicate security in your target environment.
- Remember to set up security for objects once moved and redeploy an jobs necessary.
Handling batch releases. Heaton offers these insights for an effective release management process:
- Changes and code should be captured at the lowest practical level in the version control repository. However, the import-export process in SAS creates a single file for all objects.
- Incremental or patch releases are recommended as a practical work-around.
- Plan incremental releases on a regular schedule and number each release using a date-based format.
- Use a Releases folder and standard naming conventions to support use of automated scripts.
See these additional SAS Global Forum 2013 papers for release management and version control topics: