ActiveState Scales Development with Perforce Helix
ActiveState has implemented Helix VCS as the standard for version control for all projects, including those for products, product documentation, websites, internal projects, and even system administration data. Helix Core is tightly woven into the company's nightly build and test frameworks on the build farm for all supported platforms.
ActiveState Requirements at a Glance
Scalability for all
Ease of use
Once we settled on Helix, that was it. We used conversion scripts available at the Perforce website to do the database conversion, which involved some 16K files. The conversion took about five hours."
ActiveState is the leading provider of open source-based programming tools and services for dynamic languages such as Perl, Python, Tcl, PHP, and Ruby. ActiveState solutions, including the award-winning Komodo IDE, provide enterprise-wide deployment of open source programming languages, improved programmer productivity, and seamless integration with other technologies. ActiveState's customers encompass over 70% of the Fortune 500. Over two million developers rely on ActiveState's professional development tools, high-quality language distributions, and enterprise services.
Many of ActiveState's products have a basis in rapidly evolving open source repositories. ActiveState must continually track changes to these repositories, while adding features unique to its branded binaries. This means regularly gathering changes from multiple codelines, integrating, and building them on multiple hardware platforms. In addition, ActiveState has private intellectual property that requires more traditional change management and version control approaches.
The development of so many products for so many platforms in a rapidly growing startup presents a number of technical and management challenges. ActiveState needed a product that was:
- Highly available
- Easy to learn
- Competitive alternatives
In late 1998, ActiveState had about six developers and was doing mostly Windows development. But the company was beginning to grow, and felt the need to start developing on other platforms. At the time, the firm's developers were using Microsoft's Visual SourceSafe (VSS) for source code control. Numerous problems made SourceSafe inadequate for ActiveState's demands including: the product's inability to scale (it would take an entire night to run audits on the database of 15K files); propensity for bugs (nightly audits would routinely crash or show unfixable errors); slow performance (which wasted developer time); poor support for automation (the command-line tools were inadequate); no support for remote use via slow network connections; and lack of availability on other platforms.
"I had been using Helix since early 1997 for the public Perl repository, as well as for several internal projects at my previous job," says Gurusamy Sarathy, ActiveState's director of language technologies and one of the world's preeminent Perl programmers. "I had also used Atria (now Rational), ClearCase, and CVS, but appreciated the simplicity, robustness, and performance advantages of Helix over these other tools."
"Switching to Helix was a no-brainer," says Sarathy. "To be honest, we didn't do much looking around. Once we settled on Helix, that was it. We used conversion scripts available at the Perforce website to do the database conversion, which involved some 16K files. The conversion took about five hours."
Sarathy and his team had to address several issues among users when they migrated to Perforce Helix. P4Win, the Helix Windows Client, helped get SourceSafe users accustomed to Helix. Also, since VSS does branching differently (and poorly), the branching relationships had to be established by hand once the database migration was complete. Sarathy says, "This had the pleasant side effect of forcing a big reorganization and cleanup of the tree while setting up the branching relationships. Users had to be educated on branching policies we were going to use, and how to take advantage of p4 features. The tech notes and documentation on Perforce's site helped a lot."
ActiveState has found Helix fast, easy to use, and stable. "Helix has earned my trust primarily because of rock-solid stability," Sarathy says. "We haven't had a single database error/corruption/crash in the two years since we started used it. When mishaps have occurred due to hardware problems or user error, it has been easy to recover from them."
"We've grown to 45 users and 130K files with no noticeable degradation in performance or stability. Helix is available on virtually any platform we care to be on, and using it remotely, even over slow networks, is a cinch. We've also had great experience with Perforce's technical support. Ultimately, it beats anything else we've used, hands down."