#summary Melange discussion on IRC channel #melange
#labels Contents-Complete,Phase-Guidelines,Importance-Useful

The [MelangeIntro Melange] community uses the `#melange` channel on
`irc.freenode.net` ([http://freenode.net Freenode]) for conversations and
discussions about the project.

  * It's logged [MelangeIrcLogs here].

Everyone is welcome to participate on the `#melange` IRC channel, even those
who are not project owners or members.  Most of the time, the channel will
be open (no `+m` moderation).  

Contributors listed as "project owners" on the
[http://code.google.com/p/soc/ SoC project] hosted on
[http://code.google.com Google Code] are set to `ACCESS` template `AOP` in the
channel, which is the `AUTOOP` level for the channel.  Contributors listed
as "project members" on that project page are set to
`ACCESS` template `VOP` in the channel, which is the `AUTOVOICE` level for the
channel.

Occasionally, the project contributors (owners and members) may need to hold
an IRC meeting on the channel, and in those cases the `+m` moderation
_might_ be enabled if the meeting participants deem necessary.  (This is
why project members are set to `ACCESS` template `VOP`, the `AUTOVOICE` level
for the channel.)

----
_Copyright 2008 Google Inc._
_This work is licensed under a_
[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License].
[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]