separate support tools
Choice of support tools depends largely on the project/product that is being supported. By 'support tools', in this instance, I am referring to thinks like bug trackers, user forums, wiki, code browsers, SCMs, and other useful utilities that help support products/projects/communities/programmers.
From a user standpoint, tool integration is generally preferred. Singe-sign on, and account continuity across support tools, are generally sought after 'niceties'.
For developers, such continuity is not such an issue. Developers are far more used to juggling multiple accounts, tool chains, resources, and other disjoint processes.
I have found the following tools to fall under my 'best of breed' list. I recognize, and so should you dear reader, that the following is colored by my experiences and my opinion.
Forum Software
I prefer punBB for forum software. It doesn't have excessive graphics that get in my way. This helps make pages lighter, and load quicker. I really like the fact that I can choose postgres as a database backend.Bug Tracking
Two really great options for bugtracking are mantis and Flyspray. Mantis supports postgres, so that is a big win for me. Flyspray is a bit easier to use and setup, so that is a win there. Both are very good. Definately try each, or check out the many examples of real life projects using them, and see which works better for you.Wiki
Dokuwiki is a wiki that uses a file system backend. I like the fact that to backup the wiki, you just archive a directory. This makes sense to me, from the perspective that a wiki is a set of living text documents. The filesystem backend is idea for data retention, and makes migration nearly trivial.
The wiki syntax is easy, and dokuwiki is surprisingly fast. It also features the possibility of a user based permission set, which is nice for internal project wiki's.SCM
As previously noted, I like distributed SCM's. I currently use Mercurial for my source control management needs. I have used many in the past. The 'best' here very much so depends on need. I find subversion very good, and well suited to central repository usage. I prefer distributed, and here mercurial really shines. Bazaar-ng is also quite usable. It still needs a bit of work though.
All the separate tools are great when you use 1 or two of them. When you get to the point where you start having several such resources, you can run into a significant 'tool overload'. When people have too many places to get information from, they generally self limit themselves to a few that they prefer, and in so doing limit the scope of information sharing and of information they can access.
If you have a forum, bugtracker, and wiki, for instance, that is three separate locations where people can look up information that is often very much related. If you add a mailing list, irc channel, and a static document repository....well, you get the point.
This is not to say that having these other resources is not important. I am merely stating that it is often important to consolidate this information whenever possible.
Take, for instance, Trac. Trac combines a wiki, bugtracker, some aspects of project management, and a subversion source viewer. This allows the relation of bugs, wiki documentation, and source code view, in a single usage 'package'. This makes for a nice end user experience. Add to this, a unified search across the wiki and bugtracker, and you have a recipe for users finding solutions.
Now, if there was just an easy way to get punbb account integration... ;)