When I was growing up in Indiana, a bazaar was akin to a fancified garage sale--right in there with white elephant sales. Now, of course, having been a part of this community for almost a decade, whenever I hear "bazaar," the counter-image of a huge gothic cathedral immediately pops into my head.
Gee, thanks, Eric Raymond. :)
Of course, after today, another meaning will be attached to this beguiling word, thanks to the auspices of Mark Shuttleworth and his band of coders over at Canonical.
Early this morning (because according to the Laws of Business, thou shalt always announce new stuff at 12:01 a.m.), Canonical officially announced the release of Bazaar 1.0, a built-from-scratch version control system (VCS) that Canonical built for its own projects and is now releasing to the community-at-large. What will make this new system different is the fact that it's a distributed VCS.
The use of the word "distributed" was a bit confusing to me. After all, I knew that developers all over the world user VCS apps like Subversion and git to develop free software... isn't that "distributed?"
Not quite, according to Shuttleworth, with whom I spoke about the new release. He explained that while many free and open source projects have distributed developers, the VCS itself is actually centralized, usually on one main server. From such a server, code is checked out, worked on, then (hopefully) carefully merged back into the single "mainline" code. And while any authorized user can get to said code, heaven help the developers if the dedicated server is down.
Bazaar works on a pure distributed model, Shuttleworth told me. That means no dedicated, central server. All you need is to run the software on any given web server machine and allow FTP access to that server. The method of checking out and merging code is more intuitive in Bazaar; active development can be happening at multiple places in the code, and there can be multiple "lines" of code development.
"It's more elegant," he said, "and more cleaner."
This is not the first distributed VCS out there--a lot of this distributed functionality is present in the GNU Arch or TLA systems. In fact, there's some data out there on the Web that suggests that Bazaar is directly based on GNU Arch. In actuality, this is not the case.
Shuttleworth corrected me on this presumption, indicating that when the Canonical teams were first looking for a VCS like this, they did indeed turn to GNU Arch.
"The best thing at the time was Arch," he said. But, in the end, it turned out not to be the best overall. To add a bit to the confusion, this implementation of Arch was internally codenamed "Baz."
After the Arch/Baz experiment, it was decided to build a new distributed VCS from scratch. To foster better cross-platform implementation, Canonical decided to build the new VCS with the Python development language. This means that Bazaar 1.0 is compatible with Linux, OS X, and Windows--anything that's running at least Python 2.4.
Anticipating my unspoken question, Shuttleworth stated "It actually performs really well for something that's in Python." He added that he's seen the system handle anywhere from 5,000-10,000 file trees with nary a performance hit.
The Bazaar code itself is licensed under the GPL, and also has extensibility through the Python API. According to a press release from the company, there are already 20 additional plug-ins ready to go for Bazaar.
That same press release mentioned some 50 known open source projects using a pre-release version of Bazaar. Shuttleworth said he's been surprised by the uptake of the VCS. Not too long ago, the Bazaar developers got a question from a project team inside British Telecom, who indicated to the Bazaar folks that they loved working with the system thus far.
If you want to check it out for yourself, head on over to the Bazaar download page and see if it's something you can use.