<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file 
	distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under 
	the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may 
	obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to 
	in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 
	ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under 
	the License. -->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
		<title>IRC Channel</title>
	</properties>
	<body>

		<section name="IRC Channel">
			<p>
				There is an IRC channel dedicated to Bigtop at irc.freenode.org. The name of the channel is #bigtop.
				<br />
				<br />
				The IRC channel can be used for online discussion about bigtop related stuff, but developers should be
				careful to transfer all the official decisions or useful discussions to the issue tracking system.
			</p>
		</section>
	</body>
</document>
