I am looking for the environment or process that should be used to set up a collaborative project. It would seem that one must protect oneself from certain on-line elements (who simply are out to cause problems) and attempt to find through some sort of process the most appropriate collaborators. Obviously, I have never tried to set up such a project out of total ignorance. Thank you for your input.
Depending upon the size of your collaborative group, you may also want to check out Team City.
Collaboration processes consist of:
- documenting
- storing source code
- bug tracking
At first there were tools dedicated solely to just one of these processes, but with time they are becoming multi-functional. E.g. most bugtracking tools are kind of documenting tools too.
Which tool you're going to use also might depend on your development/production platform.
Check out Backpack by 37signals, they do have free accounts.
I personally host ProjectThingy on my website, extremely simple, works very well.
For documenting best practices, tutorials, configuration settings, other collaborative user input, I recommend some sort of wiki, such as Confluence (http://www.atlassian.com/software/confluence/) or MediaWiki (free, used by WikiPedia): http://www.mediawiki.org/
For bug tracking / task management / requirements tracking, I recommend JIRA: http://www.atlassian.com/software/jira/
For source versioning, it doesn't get better than SVN. Free and open source: http://subversion.tigris.org/
It has a slight learning curve, but I recommend Maven for project management. It'll allow different developers to use: http://maven.apache.org/. Also free.
You should also consider a continuous integration server. I've used Continuum and enjoy it. I've also heard good things about CruiseControl.
Cheers