The BFD Homepage


News Announcements

Sept 9. 2004

The BFD installation process has changed. The Icecube centric download tarball has been replaced with just the core tools and Java jars required to checkout and manage projects. If you want to continue your development with BFD for Icecube, please refer to the Getting started with your project section on glacier.lbl.gov. There you will find all the current information.

Sept. 27, 2004

BFD2 is now ready for beta-testing download. Checkout the quick HOWTO guide to get you up and running.

What is BFD?

BFD is the Baseline File Development environment. This python based application is designed to help both the software developer and project manager solve the problems associated with massive software projects.

BFD bridges the gap between code versioning and building of numerous related software components.
Example 1, Consider a code base gets updated. It relies on and provides interfaces to other code bases. While this code may have of built by itself just fine, will it in fact build and pass its unit tests in concert with the rest of project?
BFD helps to solve this problem by managing the dependency tree and building. If problems arise, BFD tells you where and why.
Example 2, My massive software project has been building every night. Suddenly all my developers start submitting revisions to their code bases. The project stops building every night. In fact manual builds rarely work during the intermittent periods of code clarity and compatibility. How do I recover?
BFD keeps track of when the ENTIRE software project last had a complete build. Leveraging the features of CVS, BFD can go back into one or more code bases and pull out the revisions that existed when the build worked. Once all the projects play nice together, BFD can take a snapshot of all the revisions and allow the developers to continue their updates.

What BFD isn't

While BFD is great for keeping track of multiple project versions and complex depependcy checking, it is not designed as a day-to-day developent environment. Bluntly, It is not an IDE! NetBeans, Eclipse, and various other code development environments have made great in-roads into facilitating the developer in their coding environments.

BFD is designed to promote the correct execution of the development cycle itself. As you will see in documentation here, at lot of convenient structure has been put in place to help delineate the stages in the development cycle. Effort has also been put in to make the cycle a more lock-step event. I.e., testing must occur before a delivery which must occur before an integration, etc...

Is BFD right for me?

If you have a software project that can be built with one Makefile and takes enough time to build while you check email. BFD is way too large of a tool for you.

However, if your software project spans multiple code bases (consider a CVS project a code base), has multiple complex dependencies, and requires exhaustive unit & regression testing before a build is considered successful. BFD may very well save your sanity and salvage your social live*

I'm sold on BFD, let's get going!

If you'd like to give BFD a try, check out our download & installation page. Since it's python, installation is a cinch. There are some steps to follow to guarantee that your environment is setup right, so be sure to review and understand the documentaion.

*The BFD developers make no guarantee on this claim
This page maintained by Martin Stoufer
Page last modified: Monday, 04-Oct-2004 10:04:01 PDT