I've been putting this off for a long time but I decided that it was time to push my source code for my custom STSADM commands and PowerShell CmdLets to CodePlex. You can find the project here: http://stsadm.codeplex.com/.
Note that if you want to download the latest tested release you should still do so from my downloads page on this blog but if you want to see the version history or get some checked in changes that are not yet released (think beta) then feel free to download from the CodePlex project. Ultimately I think this will make it easier for people to see the specific changes I've made from one build to another and thus make it easier to decide whether they should re-deploy the latest version.
Have you ever been working with a web part page (either a standard web part page or a publishing page) and made a bunch of changes to your web part configurations and content over a period of time only to realize sometime down the road that you need to revert to a previous version? You then go to the version history for the page and find the one you want, do the revert and then return to the page only to find that none of your web parts were affected by the revert? If you haven't already encountered this "feature", don't worry, you eventually will
The problem is that SharePoint stores its web part configurations differently than item level (meta data, page fields, whatever) data. So there is no ability to roll back to a previous version of your web part changes.
In order to address this deficiency I decided to put together my first "real" CodePlex project. Of course I have my STSADM extensions that have been quite popular but for the time being I'm not ready to open that project up for collaboration. For this new project, however, I'm much more open to the idea - mainly because I simply can't test it and there may be lots of ways in which people way smarter than me may be able to improve upon what I started (note that initially I'll be very selective as to who can directly contribute but please don't hesitate to share any improvement ideas).
You can find the project here: http://www.codeplex.com/wph. I've also created a reasonably details document that explains how to use the project and how it works. The initial release is very much an alpha release - I've done enough testing to know that it works for simple cases. My goal was to get something, even if it's rough, out to the public so that I can get a sense of what people think of the approach and if there's even a need for it (if you think there is please share your feedback so I know that my time on this was worth it).
I decided I would make it easier for people who wish to create their own stsadm templates. I've gone ahead and created a CodePlex project (http://www.codeplex.com/customstsadmtemplate) where you can download a starter project based on my custom commands. I thought about doing this as a Visual Studio template but I both didn't have the time and didn't think there would be enough demand to create lots of these projects so I figured a simple project would be good enough. The project contains all the base stuff that I'm using in my own commands (I've moved some things around though) without all of my custom commands. The nice thing about using this template is that you get lots of validation code for free which makes working with the command line parameters a lot easier (before I built the base classes a large chunk of my code was parameter validation). I put it up on CodePlex so that people can extend it and add to it if desired (I'd like to keep actual commands out of it though). Speaking of CodePlex - I'm curious to know if people think I should move my custom commands there - is there any interest to contribute to what I've done in a community format like CodePlex? If so, please post a comment and let me know.