A long time ago I wrote about a program I use to interact with SourceForge. I have been using that script for a while and have made a lot of improvements. You can download it from my CPAN directory or from SourceForge.
My "release" script gives me a single command that will upload distributions to CPAN and SourceForge. It can work without arguments and guess most of the stuff either repository needs to know. It handles most of the monkey work I need to do to make my stuff available to the world so I can spend my time on other things.
Until recently it could not automatically handle the Changes file. I have always had a hard time updating that file. The way I was doing it required a couple of steps, and they were the same steps over and over again. I kept avoiding automating that step though. Now the "release" program can handle that too. I still have to type the change comments myself, but "release" automatically adds them to the Changes file with a timestamp that includes the distribution version number (which it got on its own). Additionally, the Changes comments show up in the SourceForge change log notes.
Along the way, the script makes a fresh copy of the distribution, checks `make disttest` for errors, and ensure everything is committed to CVS before it does anything. If any of those have problems, the script stops---it is my last line of defense from bad releases.
Now I need my own Perl Labs that vets all distributions before I actually upload them.