Posts Tagged ‘Software Configuration Management’
A Framework for Evaluating Continuous Integration Tools
For those of you interested in the methodology behind my ongoing series on CI tools, you should check out a new article that I wrote for CMCrossroads. In it I provide a framework for evaluating CI tools, and give you a checklist and ranking system to help you organize and rate your evalution.
The 2nd installment of the hands-on tool evaluation is a few days away – stay tuned for how the four tools (Hudson, Mojo, Bamboo and TeamCity) fare on providing access to common development tools and on enabling you to assemble complex build workflows.
Happy Building!
– Matt
Integrating OpenMake Meister with Archiva
Archiva (http://archiva.apache.org) is an open source repository manager that lets users access binary and other objects for use during software builds and deploys. Its functionality is similar in many ways to traditional version control systems, and OpenMake Meister (http://www.openmakesoftware.com) integrates with it as such. There are three ways to integrate with Archiva using Meister.
1. Via the file system. Archiva stores objects transparently in a structured way on the file system. To include the contents of an Archiva repository, create an entry in a Meister Dependency Directory with an appropriate name, that contains a path to the repository location. For example, the default archiva installation includes JUnit 3.8.1. Creating a Dependency directory with the name ‘JUNIT381’ and the value ‘C:\tools\archiva-1.2.2\data\repositories\internal\junit\junit\3.8.1’ will enable Meister to include any libraries found in this directory as part of Meister builds. I don’t really recommend this method, since someday the transparency of the files may change in Archiva. But it works in a quick and dirty way.
2. Through a webdav client. The native interface to Archiva is WebDAV (see http://www.ietf.org/rfc/rfc2518.txt for the WebDAV RFC). A Meister activity can be easily created to execute a command line GET operation against the Archiva repository. For example, if you use the BitKinex file transfer client, you can retrieve junit-3.8.1.jar by using a Meister activity that runs the following command:
URL=http://localhost:8080/archiva/repository/internal/junit/junit/3.8.1/junit-3.8.1.jar
bitkinex.exe cp /noinfo /force $(URL) c:\temp
This retrieves the file and copies it to c:\temp, where it can be used as part of a build. This is probably the best solution. When building, you really want a local copy of the files, at the very least for audit purposes, and there are plenty of WebDAV clients out there.
3. Mapping a web drive. Most operating systems support mapping a network drive to a web location. For example, on Windows, you can add access to the JUnit 3.8.1 repository by mapping a drive in DOS as:
net use Z: “http://localhost/archiva/repository/internal/junit/junit/3.8.1”
Once this is complete, you can access the files in the repository simply by referencing drive Z: in a Meister Dependency Directory. One restriction, on Windows XP your repository must be running on port 80, as Windows does not support web drives on any other port. This is also a pretty good method, but it eats up drive letters fairly quickly if you have many libraries that you want to uniquely map.
I’ve tried all three methods in my build lab, and while I don’t think I would use Archiva in a production environment (my bias is towards actual SCM systems or a managed file system for storing 3rd party build dependencies), it definitely ‘worked’ and was fairly easy to integrate with.
Happy Building!
– Matt
A Tale of Four Builds
After a long break from blogging, I’m back. I’d like to invite all my viewers to a webinar that I’m hosting on Wednesday October 21, 2pm EST. The webinar is titled ‘A Tale of Four Builds’. In it I take a single piece of code and build it using four different build technologies. This survey of build methodologies moves from manual, error-prone processes to highly controlled and repeatable processes. If you’re a software engineer, development manager or build and tools manager, this webinar will help you sort out the pros and cons of the various build technologies that are common in today’s software environment.
Hope to see you there. To register, go to: https://www1.gotomeeting.com/register/554771256
Developing in streams, releasing from streams
Here’s a link to yet another post I did for AccuRev. It’s a critique of some so-called best practices around branching. Eventually every developer will realize that branches are old and dead, so here’s my small contribution to that end.
Build Management with AccuRev and Maven
This is a cross post of a blog I did for the company I work for, AccuRev, Inc. In it I describe how to use the recently released m2eclipse Maven integration with the AccuRev software configuration management (SCM) product. Maven is a very cool build and project management tool, and the combination of working with Maven via m2eclipse and Accuev via the AccuBridge for Eclipse plugin is pretty powerful. If you are interested, please click here to view the original post.
Getting your software tools ready for agile
Just to kick-start this site, here is a link to a post I did for the company I work for, AccuRev, Inc. It is a summary of a webinar that I participated in recently as a panelist about proper tooling for Agile Software Development. The webinar covered how to evaluate your development toolset, particularly SCM (software configuration management), to get ready for agile. (I’m the Technical Marketing Manager at AccuRev. Opinions expressed herein are my own, etc.)