Monday, May 21, 2007

A quick look at some package repositories

When I visited Python's cheese shop today, I stop for a moment at the total number of packages. This raised my curiosity to look at other languages' package repositories.

1. Perl (11643) http://cpan.org/
2. Python (2392) http://cheeseshop.python.org/pypi
3. Ruby (1587) http://raa.ruby-lang.org/
4. PHP (442) http://pear.php.net/packages.php


Well, I am not making any conclusion out of this, because there are many other factors required for an analysis.

Thursday, May 3, 2007

My $HOME/.buildout/default.cfg

Buildout is a tool which can used for any kind of applications, though
it is more suitable for Python based applications. href="http://cheeseshop.python.org/pypi/zc.buildout">Buildout is a
cool program which provides support for creating, assembling and
deploying applications, especially Python applications. You can build
applications using Buildout recipes. Recipes are Python programs
which follows a pattern to build various parts of an application. For
example, a recipe will install Python eggs and another one will
install test runner etc. Applications can be assembled from multiple
parts with different configurations. A part can be a Python egg or
any other program. Buildout make use Python eggs and so href="http://peak.telecommunity.com/DevCenter/setuptools">setuptools.
To install, Buildout just enter this command: easy_install zc.buildout
(Of course, you should have installed href="http://peak.telecommunity.com/DevCenter/EasyInstall">easy_install
to run this command)

I would like to share my default Buildout configuration
($HOME/.buildout/default.cfg) here:

[buildout]
newest = false
eggs-directory = /mbaiju/eggs
find-links = http://download.zope.org/distribution/


These options are available for all buildouts in my system. Sure, I
can override these options for individual buildouts. One of my
earlier post
had given hint for using simple buildouts. There, I used
"./bin/buildout -N" to run the buildout. See yourself what -N do from
help:


$ buildout --help
...
-N

Run in non-newest mode. This is equivalent to the assignment
buildout:newest=false. With this setting, buildout will not seek
new distributions if installed distributions satisfy it's
requirements.
...


So adding "newest=false" option helps to avoid the "-N" switch.
IMO, this should be the default for buildout.

The "eggs-directory" option is really useful if you want to use
multiple buildouts from same machine, especially when developing
applications. If this option is not set each buildout will download
and store all egg dependencies in it's own folder, by default "./eggs"
directory in your buildout.

I set "find-links = http://download.zope.org/distribution/", because
my normal buildouts are Zope 3 related, and Zope 3 project place all
new eggs there. If this option is not set, buildout will fetch egg
from
Python's cheeseshop.