Thursday, July 21, 2005

The Quiet Revolution

Python Eggs are popping up everywhere now. The Trac project will apparently become the first extensible, open-source Python application to use eggs as a plugin format. (I had thought Chandler would have earned that distinction, but it's going to be a good few months before it will really get on the roadmap.) There's been talk on the Python Mac SIG about platform version tags for eggs on OS X. Ian Bicking is blogging about eggs as a packaging and deployment mechanism for web components. The ever-linkable Django uses setuptools to simplify its setup, although none of the tutorials or installation instructions mention it. (If they would just run "setup.py register" after adding a little more info to "setup.py", then people could use "easy_install Django" to find and download it via PyPI.)

I've also gotten emails from a few people who are using eggs to manage software projects in their workplaces, as well as to manage external dependencies, and Ian Bicking also recently asked about using egg metadata for an at-work project, too. Not bad for an 0.5 alpha. Not bad at all.

There's a CVS version of 0.6 in the works too. If you're planning to extend or embed setuptools or the pkg_resources API, you should be working with the CVS version, because the APIs went through some changes relative to 0.5, as I refactored them to conform with eggs' new architecture overview and terminology guide.

All in all, it looks like the beginning of a quiet revolution in open source software development with Python. I'm still not promoting these things to the wider world of Python users, though, as I don't want too many people stubbing their fingers and toes on my rough alpha edges. (In fact, I sometimes worry that Django's current popularity might lead to lots of people bumping into problems with setuptools, and creating a backlash. So far that hasn't happened, though.)

So how long till beta? How the heck would I know? Try the alphas and send me bug reports, feature requests, and patches. Better yet, try the CVS version and build more tools that work with eggs. Paul Moore has volunteered to create some simple package management tools, for example, to list or delete installed packages. What ideas do you have?