<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- 
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. 
-->
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Community</title>
    <meta name="description" content="Apache Wink -- Community">
    <meta name="author" content="dev@wink.apache.org">

    <META http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <META name="Keywords" content="Apache Wink JSR-237 REST JavaEE6" />
    <META name="Owner" content="dev@wink.apache.org" />
    <META name="Robots" content="index, follow" />
    <META name="Security" content="Public" />
    <META name="DC.Rights" content="Copyright &copy; 2009-2013, The Apache Software Foundation" />

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le styles -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet">
    <style type="text/css">
      body {
        padding-top: 60px;
        padding-bottom: 40px;
      }
    </style>

    <!-- Le fav and touch icons -->
    <link rel="shortcut icon" href="images/wink.png">
    <link rel="shortcut icon" href="images/favicon.ico">
    <link rel="apple-touch-icon" href="images/apple-touch-icon-iphone.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-ipad.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-iphone-retina.png" />
    <link rel="apple-touch-icon" sizes="144x144" href="images/apple-touch-icon-ipad-retina.png" />
  </head>

  <body>
    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner fill">
          <div class="container">
            <!--<a class="brand" href="index.html"><img src="images/favicon.ico" width="15%" height="15%"/></a>-->

            <ul class="nav">
              <li class="active"><a href="index.html">Home</a></li>
              <li class="active"><a href="news.html">News</a></li>
              <li class="active"><a href="downloads.html">Downloads</a></li>
              <li class="active"><a href="documentation.html">Documentation</a></li>
              <li class="active"><a href="community.html">Community</a></li>
              <li class="active"><a href="source.html">Source</a></li>
              <li class="active"><a href="faq.html">FAQ</a></li>
              <li class="active"><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              <li class="active"><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
              <li class="active"><a href="privacy.html">Privacy</a></li>
            </ul>


            <!-- Google CSE Search Box Begins  -->
              <FORM class="navbar-form pull-right" id="searchbox_007756850371322559056:un2ixevjhis" action="http://www.google.com/cse">
                <INPUT type="hidden" name="cx" value="007756850371322559056:un2ixevjhis">
                <INPUT type="hidden" name="cof" value="FORID:0">
                <INPUT name="q" type="text" placeholder="Search">
              </FORM>
              <!--<SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_007756850371322559056:un2ixevjhis"></SCRIPT>-->
              <!-- Google CSE Search Box Ends -->
        </div><!--/container -->
      </div><!--/navbar-inner -->
    </div><!--/navbar -->
    

    
    <div class="container" id="content">
      <h1>Apache Wink Community<a name="Apache_Community"></a></h1>

<hr>

<div class="row">
    <div class="span10">
        <p>Every volunteer project obtains its strength from the people involved in it. We invite you to participate as much or as little as you choose.</p>
        <p>You can:</p>
        <ul>
            <li>Use our project and provide a feedback.</li>
            <li>Provide us with the use-cases.</li>
            <li>Report bugs and submit patches.</li>
            <li>Contribute code, javadocs, documentation.</li>
        </ul>
        <p>Visit the <a href="http://cwiki.apache.org/confluence/display/WINK/Project+Guidelines">Project Guidelines</a> for more information.</p>
    </div>
</div>

<hr>

<h3>Communication<a name="Communication"></a></h3>

<div class="row">
    <div class="span10">

        <h4>Mailing Lists<a name="mailing_list"></a></h4>

        <p>The Apache Wink project uses mailing lists primarily to communicate with its members.</p>
        <p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p>

        <table class="table table-hover">
            <tr class="a">
                <th>Name</th>
                <th>Subscribe</th>
                <th>Unsubscribe</th>
                <th>Post</th>
                <th>Archive</th>
                <th>Other Archives</th>
            </tr>
            <tr>
                <td>Users</td>
                <td><a href="mailto:wink-user-subscribe@incubator.apache.org">Subscribe</a></td>
                <td><a href="mailto:wink-user-unsubscribe@incubator.apache.org">Unsubscribe</a></td>
                <td><a href="mailto:wink-user@incubator.apache.org">Post</a></td>
                <td><a href="http://mail-archives.apache.org/mod_mbox/incubator-wink-user/">mail-archives.apache.org</a></td>
                <td><a href="http://n2.nabble.com/Apache-Wink-Users-f3471013.html">n2.nabble.com</a></td>
            </tr>
            <tr>
                <td>Development</td>
                <td><a href="mailto:wink-dev-subscribe@incubator.apache.org">Subscribe</a></td>
                <td><a href="mailto:wink-dev-unsubscribe@incubator.apache.org">Unsubscribe</a></td>
                <td><a href="mailto:wink-dev@incubator.apache.org">Post</a></td>
                <td><a href="http://mail-archives.apache.org/mod_mbox/incubator-wink-dev/">mail-archives.apache.org</a></td>
                <td><a href="http://n2.nabble.com/Apache-Wink-Dev-f3470905.html">n2.nabble.com</a></td>
            </tr>
            <tr>
                <td>Commits</td>
                <td><a href="mailto:wink-commits-subscribe@incubator.apache.org">Subscribe</a></td>
                <td><a href="mailto:wink-commits-unsubscribe@incubator.apache.org">Unsubscribe</a></td>
                <td><a href="mailto:wink-commits@incubator.apache.org">Post</a></td>
                <td><a href="http://mail-archives.apache.org/mod_mbox/incubator-wink-commits/">mail-archives.apache.org</a></td>
                <td>-</td>
            </tr>
        </table>

        <h4>IRC<a name="IRC"></a></h4>

        <p>IRC is also used for a real-time discussions. </p>
        <p>Log into #apache-wink on Freenode or use a <a class="externalLink" href="http://webchat.freenode.net/?channels=apache-wink">Web Client</a></p>
    </div>

</div>

<hr>

<h3>Issue Tracker<a name="Issue_Tracker"></a></h3>

<div class="row">
    <div class="span10">
        <h4>Bug Reports<a name="Bug_Reports"></a></h4>
        <p>Found bug? Enter an issue in the <a href="./issue-tracking.html">Issue Tracker</a>.</p>
        <p>Before submitting an issue, please:</p>
        <ul>
            <li>Verify that the bug does in fact exist.</li>
            <li>Search the issue tracker to verify there is no existing issue reporting the bug you've found.</li>
            <li>Consider tracking down the bug yourself in the Wink's source and submitting a patch along with your bug report. This is a great time saver for the Wink developers and helps ensure the bug will be fixed quickly. </li>
        </ul>

        <br/>

        <h4>Feature Request<a name="Feature_Request"></a></h4>
        <p>Enhancement requests for new features are also welcome. The more concrete and rationale the request is, the greater the chance it will incorporated into future releases.</p>
    </div>

</div>

<h3>Source Code<a name="Source_Code"></a></h3>

<div class="row">
    <div class="span10">
        <p>The project sources are accessible via the <a href="./source-repository.html">SVN</a>.</p>
    </div>
</div>
    </div> <!-- /container/content -->
    


    <hr>

    <div class="container">
      <footer>
        <div class="xright">
        Copyright &copy; 2009-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</br>
        Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.</br>
        </p>
    </footer>
  </div> <!-- /container/footer -->


  <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="assets/jquery/jquery-1.9.1.min.js"></script>
    <script src="assets/bootstrap/js/bootstrap.min.js"></script>
    
  </body>
</html>
