#summary Melange discussion on IRC channel #melange
#labels Contents-Draft,Phase-Guidelines

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

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` level `30` in the
channel, which is the `AUTOOP` level for the channel.  Contributors listed
as "project members" on that project page are set to
`ACCESS` level `15` in the channel, which is the `AUTOVOICE` level for the
channel.

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), but abusive users will be subject to being
kicked or banned, so please be civil.  Channel operators reserve the right
to decide what constitutes abuse.

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` level 15, 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]
