Version Control

Articles

Establishing Effective Software Metrics for the Measures You Want

The goal of software metrics is to have a rich collection of data and an easy way of mining the data to establish the metrics for those measures deemed important to process, team, and product improvement. When you measure something and publish the measurement regularly, improvement happens. This is because a focus is brought on the public results.

Joe Farah's picture Joe Farah
Making an XML bill of materials in GNU Make

In this article I present a simple technique that causes GNU Make to create a XML file containing a "bill of materials" or BoM.  The BoM contains the names of all the files built by the Makefile and is nested to show the prerequisites of target.

John Graham-Cumming's picture John Graham-Cumming
The Renaissance Builder

This month we would like to turn the spotlight on to that oft neglected and under-valued specimen the build engineer. In the physical world, the term “building” has traditionally inspired status and respect. We just have to think of structures from the pyramids to medieval cathedrals to skyscrapers.

Change Management Is Essential to the Building Processes

Building is considered to be one of the fundamentals of configuration management, even though some might argue that building isn't really CM. The reason it is fundamental is that the build/verification cycle provides proof of reproducibility if done correctly. It forces CM to be done correctly so that only the objects from the CM repository are used to reproduce the build. When formal build processes are correct, they need no information that resides outside of a CM repository. When properly done, the build record is created prior to the build (i.e., a build notice) rather than as a result of the build, with that record being used to drive the build process. An integral change management capability is an essential component of such a build process.

Joe Farah's picture Joe Farah
Are You Still Building from the Tip Revisions?

How do you build? How do you select the source code files to include in a build? How do
you identify the revisions, or versions, of the files to include a build? Do you build from the tip revisions in your version control system or do you build by selecting a specific revision of every source code file? Do members of the development team specify the changes to include in each build or do you sweep in all changes implemented at the time of the build? When do you build from revisions in the mainline of the version control system? When do you build from revisions in a branch?

Michael Sayko
The Basics: Getting environment variables into GNU Make

The most basic rule of GNU Make and the environment is that any variable set in the environment when GNU Make is started will be available as a GNU Make macro inside the Makefile.

John Graham-Cumming's picture John Graham-Cumming
The Business of Software Development

The software development business, once the domain of a few advanced technology companies, is now pervasive. Why? Because software is less costly and easier to modify than hardware. At first glance this is obvious; building a software telephone switch is a lot less costly than the hardware equivalent. Looking more closely, though, software products have far more features and, therefore, are more complex than hardware products. Software is easier to change, but this just adds to the level of complexity, especially on the management side. Software allows us to build products that are more complex.

Joe Farah's picture Joe Farah
A Christmas (Configuration) Carol (Abridged)

We have endeavored in this ghostly little tale, to raise the Ghost of an Idea, which shall not put our readers out of humour with themselves, with each other, with the season, or with us. May it haunt their houses pleasingly, and provide inspiration this season!

Makefile Optimization: $(eval) and macro caching

The $(eval) function was introduced in GNU Make 3.80 but was a little buggy, 3.81 has fixed those bugs in $(eval) is ready for prime time.  $(eval)'s argument is expanded and then parsed as if it were part of a Makefile.   

John Graham-Cumming's picture John Graham-Cumming
The Largest Case Study of Code Reviews—Ever

In May 2006, we wrapped up the largest case study of peer code review ever published, done at Cisco Systems®. The software was MeetingPlace® — Cisco's computer-based audio and video teleconferencing solution. Over 10 months, 50 developers on three continents reviewed every code change before it was checked into version control. We collected data from 2500 reviews of a total of 3.2 million lines of code.

This article summarizes our findings.

Jason Cohen

Pages

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.