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

  * It's logged [here](MelangeIrcLogs.md).

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
[SoC project](http://code.google.com/p/soc/) hosted on
[Google Code](http://code.google.com) 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_
[Creative Commons Attribution 2.5 License](http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html).
[![](http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png)](http://creativecommons.org/licenses/by/2.5/)