Matt,

Can you the ability for self.installNeeded to check the date from hg log for the particular package? Something such as:

hg log -l 1 config/PETSc/packages/metis.py --template '{date|isodatesec}'
2012-03-20 15:11:27 -0500

and then redownload && reinstall based on this information (as well as the current method of checking options written to a file). Since buildsystem is already written in python, this could be implemented with a fancy call to a mercurial command server, or whatever you prefer.

While we're at it, can the mkfile argument self.installNeeded be optional and default to self.package?

Thanks!