I just finished reading the NAnt release schedule and noticed there are not any documented plans for adding transactionality to NAnt. I would personally like to see this added so that complex build systems can be "self-healing" so that a partial build doesn't break a system. I know that you could simulate a transaction engine with flags and spaghetti code, but it would be really nice if a task could participate in transactions and have an Undo method that would be called by the framework when a transaction fails. This would of course walk backwards through the execution tree so that the rollback would be in the reverse order of the build from the point of failure. This would greatly enhance the usefulness of the tool for creating deployment scripts and running things in a production environment.
It would also be great to see a NAnt service that can be called transactionally from another system. This would allow a single system to instigate a build on a web farm, then allow the systems to operate in series or parallel, and if a fault happens that causes a rollback then the centralized server could instigate the rollback through the transaction system on each server.
Such features would be post 1.0 features, of course, and would also require a lot of discussion and planning. I'm just throwing it out there now to get the ball rolling.
Trane eBusiness
QED Team
Phone: 931-905-5386
Fax: 931-648-5901