Title: Mailing Lists
Notice:    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.

## Allura Mailing Lists

We welcome you to join our mailing lists and let us know about your thoughts or ideas about Apache Allura.

To subscribe to a particular list, send a ***plain-text*** (not html format) email to the appropriate *-subscribe@incubator.apache.org email addresses below and follow the instructions in automated email responses.

## Development Mailing List

This is where the community hangs out and where the technical direction
of the project is discussed.

  - Subscribe: [allura-dev-subscribe@incubator.apache.org][1]
  - Post (after subscription): [allura-dev@incubator.apache.org][2]
  - Unsubscribe: [allura-dev-unsubscribe@incubator.apache.org][3]
  - Archives
    - [Markmail][4]
    - [Apache][6]

## Commits Mailing List

This is where the community receives automated notifications of any changes to the
Allura code and documentation. 

  - Subscribe: [allura-commits-subscribe@incubator.apache.org][7]
  - Unsubscribe: [allura-commmits-unsubscribe@incubator.apache.org][8]
  - Archives
    - [Markmail][9]
    - [Apache][10]

## Users Mailing List

This is where the users ask questions, suggest features, etc.

  - Subscribe: [allura-user-subscribe@incubator.apache.org][11]
  - Unsubscribe: [allura-user-unsubscribe@incubator.apache.org][12]
  - Archives
    - [Markmail][13]
    - [Apache][14]


  [0]: http://www.apache.org/dev/contrib-email-tips.html
  [1]:  mailto:allura-dev-subscribe@incubator.apache.org
  [2]:  mailto:allura-dev@incubator.apache.org
  [3]:  mailto:allura-dev-unsubscribe@incubator.apache.org
  [4]:  http://markmail.org/search/+list:org.apache.incubator.allura-dev

  [6]:  http://mail-archives.apache.org/mod_mbox/incubator-allura-dev/
  [7]:  mailto:allura-commits-subscribe@incubator.apache.org
  [8]:  mailto:allura-commmits-unsubscribe@incubator.apache.org
  [9]:  http://markmail.org/search/+list:org.apache.incubator.allura-commits
  [10]: http://mail-archives.apache.org/mod_mbox/incubator-allura-commits/
  [11]:  mailto:allura-user-subscribe@incubator.apache.org
  [12]:  mailto:allura-user-unsubscribe@incubator.apache.org
  [13]:  http://markmail.org/search/+list:org.apache.incubator.allura-user
  [14]: http://mail-archives.apache.org/mod_mbox/incubator-allura-user/

