It's truly a critical moment, as the winds of change are shifting over the landscape of source control. Major projects, such as PostgreSQL, KDE, and emacs are discussing the dumping of CVS for an alternative. Smaller Projects, such as wxRuby and Rhythmbox have already switched.
A Source Control Management (SCM) system is important because this software choice impacts a whole group of developers, and changing systems can be very disruptive to a project. The larger the project, the greater the inertia, and higher the cost to switch.
Here's my analysis of trends that will emerge:
What won't happen: No "CVS replacement" will emerge, at least not with the dominance that CVS has had. Instead, what we will see will follow the patterns of the expanding offerings of scripting languages. Although Perl has long dominated this category, other languages have dared to challenge the heavyweight, and they have prospered. Python, PHP, and ruby are all doing well, with growing communities building up around them.
Don't expect to see one clear SCM leader, with the rest hopelessly out of sight in terms of popularity and usability. Many sufficiently capable alternatives are emerging. The diverse environment we will see will play a part in determining which projects stand out. Those projects that grasp the importance of playing well with other SCMs will see increased popularity.
The young svk project seems to understand this issue. They integrate with VCP, a framework designed for interchanging formats of various SCMs. Svk is being designed so that at maturity, you will be able to use it as a client for several other SCMs.
Consider the following situation for a typical open-source programmer: The programmer would like to contribute to one project that uses CVS, another which uses Subversion, and a third which uses Arch. Rather than learning all three, she can use svk, reduce her overhead time, and improve her overall efficiency. Currently, svk can mirror a CVS archive, but not perform a "commit through" on your changes.
As people contribute to this 'glue' project, it will be easier for participating SCMs to update their own offerings to allow better interoperability.
One important trend is the removal the "single central server" limitation of CVS. New distributed systems allow developers to share changes in a peer-to-peer mode without going through a central server. This feature will gain prominence for two reasons. Most importantly, the centralized model is a subset of what a distributed system can do. So users don't have to pick an "either or" solution. Also, a distributed design maps extremely well onto the organic global network of open source software development.
Developers who do not have "commit access" benefit from distributed systems because they are given a much expanded toolkit, giving them access to the same command set that the core developers have. With better tools for more developers, more time can be spent writing code instead of managing it.
Distributed SCMs should be equally beneficial to corporations, with their increasingly distributed structures. More activity can happen locally to the developers, making a fast link to a distant central server less critical for developer productivity.
I have followed two distributed SCMs in particular, Arch and Darcs. Arch currently has a larger user base, and arch repositories exist for popular projects such as the Emacs and Vim editors. Arch is also noticeably more complex to set up and use.
Darcs, which just turned 1.0, shines because of its ease of use, clear documentation, and powerful underlying unique "theory of patches". Svk is working on emulating the Darcs interface, while Arch would like to support the Darcs patch handling features.
It's not all roses for Darcs, though. While it receives praise for use on small projects, it is known to hang for hours on large trees like the Linux kernel as well as when large scale conflicts occur.
This much is clear: If you are still using CVS, it's time to evaluate the alternatives, and think distributed.
Database Softwarehas been announced. "Being the first version preceded by a public beta, we hope that JabRef 1.6 will be the most stable release so far. There are many new features since version 1.55, including greatly improved handling of bibtex strings, export to MODS format and facilities for detecting and handling external changes to open files. Many bugs have been fixed, and the user interface has been improved in many small ways." has been announced. "Its been almost 4 weeks since Beta4. After a lot of work involving a lot of bug fixes and documentation improvements to the source tree, we have just released our 5th Beta of 8.0.0. All of our major Open Items have now been completed, and we're slowly entering the final stages, involving a lot of testing and documentation changes."
LibrariesThe very first xmodmap-enabled release of libxklavier is out. The API/ABI were broken again (sure, compatbility in GNOME CVS HEAD is maintained). Really hope to keep 1.1x series API stable from this point."
Mail SoftwarePython 2.4 final will probably be released in a few hours so this seems like a good time to release the standalone email package, version 3.0 final. Unless there's some last second snafu, this will be identical to the version released with Python 2.4."
Networking ToolsThe program features a friendly setup wizard, a real time firewall event monitor and an advanced rules based system for creating traffic policy. The program also helps you set up Internet connection sharing in just a few clicks, or port forwarding when used on a LAN." Changes include a redesigned user interface, a new security policy system, DHCP service support, a view of connections, and more.
Web Site DevelopmentBIG SAM, the Built-In Guestbook / Stand-Alone Module (written in PHP) is out. mnoGoSearch web site search engine has been released. See the Change Log for details. has been announced. "This PHP lgpl library is intended to make quickly a user friendly web interface to a postgresql database. It is thought to be configurable, manage automatically references between tables, has multilanguage support, and could be extended quite easily. It is not intended as admin tool (see phpPgAdmin), but as an intuitive web mask to a database." We still have a lot of work to do before a stable release. The documentation needs to be updated. The mod_python publisher is broken. The Quixote 1 style publisher probably needs some more work." writes about XAMPP on IBM developerWorks. "Open source stacks such as XAMPP from Apache Friends are simplifying open source development by making it easier to write and distribute applications in a stable and standardized environment. Traditionally, AMPP -- Apache, MySQL, PHP, and Perl -- have all been installed and configured as separate products. The trend of combining them into integrated middleware stacks promises to make open source development more competitive with J2EE application development, at least for low-end applications. In this article, you'll learn how to install, configure, and back up XAMPP on Mandrake Linux 10.0 and also how to configure and administer XAMPP, as well as how to install your own applications in an XAMPP environment."
Web Servicescovers web services versioning issues on IBM developerWorks. "Web services versioning doesn't really exist. To achieve new versions of a service, you have to create a new set of WSDL/XSD files with new namespaces, essentially creating a new Web service. That's a rather drastic solution. There are some changes you can make to an existing set of WSDL and XSD files that are backward compatible so that you can evolve your service, to a limited degree, without the drastic measure of creating a new one."
Data VisualizationMultiPlot, an FLTK-based graph plotting utility, has been released. Here is the change summary: "new version with minor bugfixes. sould now easily compile under linux and windows."
Desktop EnvironmentsElektra Project is an attempt to rationalize Linux configuration files by bringing them all into a standard key/value pair format (apply your favorite registry analogy here). The project has just released a major proof of its concept: an "elektrified" version of the X.org server. Click below for lots of details. KDE CVS-Digest is online. Here's the content summary: "Extended password dialog can define length and strength thresholds. Dell Laptop Buttons Plug-in for KMilo . As-you-type spellchecking with aspell. KAddressbook import/export filter GMX addressbook format. X-Face support for Kmail and KNode. New blogging resource for Korganizer." The biggest change overall is that GNOME Screenshot has been moved from gnome-panel to gnome-utils." Since gnome-panel 2.9.2, the gnome-panel use the /apps/panel gconf directory to store its settings. The settings that were previously stored in /apps/panel/profiles will be automatically migrated."
ElectronicsOpen Collector include new versions of annotate_gschem, gschem2xpcb, and Oregano.
Financial ApplicationsSQL-Ledger, a web-based accounting system, has been released. Changes include a couple of bug fixes.
Gamesintroduces interactive fiction languages in an O'Reilly article. "IF languages have various structural and syntactic optimizations for writing games. Turn-based time (or even, in some cases, real time) is a built-in. It's easy to define conditions on which the game can be won or lost. An IF language already knows not only that GET HAMSTER means the player would like to perform an action called GET on an object called HAMSTER, but it also knows that PUT HAMSTER ON TABLE is an entirely different matter than PUT TABLE ON HAMSTER and that PUT NORTH ON HAMSTER is something altogether nonsensical."
InteroperabilityWine Traffic is available with the latest Wine project news.
Multimediahave been announced. "Lots of bugs fixed in this release (44 bugzilla items closed). New polypaudio sound server plugin and support for musepack files. Another important addition to this release is support for chained ogg files, which is important for many ogg web radio streams for instance. Some important fixes to our ALSA support was also made, so people who had troubles with ALSA output with earlier releases are advised to give this one a go."
Office Suitesthe announcement for OpenOffice.org 1.1.3-kde. This is a version of ooo-build which has been reworked to fit into the KDE environment; it uses the KDE native widget framework and features KDE icons. This package contains Desktop integration work for OpenOffice.org, several back-ported features & speedups, and a much simplified build wrapper, making an OO.o build / install possible for the common man. It is a staging ground for up-streaming patches to stock OO.o."
Web BrowsersIndependent Status Reports are available. Here's the content summary: "The latest set of independent status reports includes updates from mozImage, Biobar, fireFTP, Habari Xenu, Checky, citations nd Linkvisitor."
Languages and Tools
Javaexamines the JDistro project on O'Reilly. "Appropriately enough, running multiple Java applications at once can be akin to drinking too much coffee in one sitting: You get erratic results and ultimately crash hard. But having more than one Java program running can be helpful for development. Java programmer Guillaume Desnoix wanted such a robust environment, so he created his own: JDistro." looks at for/in in Java 5.0 in an IBM developerWorks article. "The for/in loop -- often called either enhanced for or foreach is largely a convenience feature in Java 5.0. It doesn't really offer any new functionality, but certainly makes several routine coding tasks simpler. In this article, you'll learn about many of those, including using for/in to iterator over arrays and collections, as well as how it can help avoid unnecessary (or just plain annoying) typecasts. You'll also learn how for/in is implemented, glean details about the new Iterable interface, and even understand how to make your own custom objects usable with this new construct." examines the JDK 5.0 license on IBM developerWorks. "Sun recently released the JDK 5.0 source through the Sun Community Source License (SCSL) and Java Research License (JRL). This month, Tiger columnist John Zukowski takes a break from the details of the new release and overviews the licensing terms and what access to the source offers developers. He also provides a quick look at the surprise early access drop for Mustang, the J2SE 6.0 release."
LispThe main new feature of this version is Unicode support."
Perlhas been announced. "The Perl 5 developer team is pleased to announce the Perl Release 5.8.6, the sixth maintenance release of Perl 5.8."
PHPPHP is available. "This is the first release candidate and should have a very low number of problems and/or bugs. Nevertheless, please download and test it as much as possible on real-life applications to uncover any remaining issues." PHP Weekly Summary for November 22, 2004 is out. Topics include: Broken pipe in fork, Overloaded class registration, CLI and go-pear in win32 installer, Binary compatibility broken, SPL's Countable, Cleanup for sprintf, libgd fonts, and Browscap. PHP Weekly Summary for December 1, 2004 is out. Topics include: Detached processes, php_iconv_string exportable, Segfault in PHP 5, PHP 4.3.10 RC1, Additional module registration, Per-directory magic quotes, Binary compatibility and Reverted commits.
PostScripthas been announced. Numerous changes are included. "Please send in bug reports before the GSview 4.7 release, scheduled for mid December 2004."
Pythonthe Python 2.4 page for download and change information. There is also a 2.4 highlights page for those in a hurry. This is a release candidate matching the recently tagged core Python 2.4.0. Builds for Linux, Solaris and Windows are available."
XMLdiscusses the Geography Markup Language (GML) on O'Reilly. "Geography Markup Language (GML), now at Version 3.1, is a specification of the Open Geospatial Consortium (OGC). (This standards body was formerly known as the Open GIS Consortium--GIS being an acronym for Geographic Information Systems.) If you're used to W3C-sized specs--even behemoths like XML Schema--you'd better sit down before glancing at the GML "Recommendation Paper"; it's a monster, weighing in at over 600 PDF-formatted pages, supplemented by nearly three dozen separate schemas." writes about XML locations in an O'Reilly article. "It is often useful to keep track of the location of some data in an XML file being processed. If you are parsing a file in order to perform sophisticated search and analysis tasks, you may want to know in which element or other such node a specific pattern was found (or even at what file location). XPath is the standard way to convey the location of an XML node. In the case of DOM, you might like to be able to compute an XPath expression selecting a specific node. In the case of SAX, you might want to have an XPath location for a current event, or you may want to get information on a current file location from the parser. In this article, I cover techniques for figuring out such location information. Along the way, I shall be providing some examples of marginally documented corners of Python's SAX libraries."
Build Toolshas been announced. "NAnt is a free .NET build tool, allowing applications to be built targeting both Microsoft .NET and Mono while supporting both win32 and Linux." See the latest release notes for change information.
IDEsis available. "I added Optional Text Drag and Drop (Thanks Robin Dunn), and finally nailed the encoding bug (swedish character display). The Plugin List is now updated from the website, so version number do not need to be updated by developers." See the announcement for the full list of changes.
Page editor: Forrest Cook
Next page: Linux in the news>>
Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds