community.html (374 lines of code) (raw):

--- active_crumb: Community layout: interior --- <!-- 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. --> <h1 class="page-title"> <span><i class="fas fa-fw fa-users"></i> {{ page.active_crumb }}</span> </h1> <div id="community" class="three-cols-container"> <div class="col-md-2 first-column"> <ul class="side-nav"> <li class="side-nav-title"><!--suppress CheckImageSize --> <img src="/images/asf_logo-h36.png" alt=""></li> <li><a target="asf" href="https://www.apache.org/">Foundation</a></li> <li><a target="asf" href="https://www.apache.org/licenses/">License</a></li> <li><a target="asf" href="https://www.apache.org/security">Security</a></li> <li><a target="asf" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> <li><a target="asf" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li> </ul> {% include left-side-menu.html %} </div> <div class="col-md-8 second-column"> <section id="start"> <h2 class="section-title">Start Contributing <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> Before you get involved in Apache NLPCraft development, please sign up to the dev mailing list by sending an empty email to <a href="mailto:dev-subscribe@nlpcraft.apache.org">dev-subscribe@nlpcraft.apache.org</a> and follow simple instructions in the reply. Once subscribed, say "Hello" to everyone in the community. Tell us as much as you can about your areas of expertise mentioning how exactly you would like to contribute. We are a friendly and inclusive community and will try to simplify your "onboarding" considering your strengths or areas of interest. </p> <p> Also, make sure to share your <a target="jira" href="https://issues.apache.org/jira/secure/Dashboard.jspa">ASF JIRA</a> ID in the same email (create a <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT">new one</a> if you don't have an ASF JIRA account yet). One of our community members will add you to the contributors' list and you will be able to go ahead and book NLPCraft tasks you would like to work on. </p> <h2 class="section-sub-title">Dev List <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> <a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter channel</a> and the <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> list is the primary and the default communication channel. </p> <p> Send an email to <a href="mailto:dev-subscribe@nlpcraft.apache.org">dev-subscribe@nlpcraft.apache.org</a> to subscribe to the list. If you are an ASF committer, then it's better to use your <code>@apache.org</code> address for NLPCraft communications. </p> <p> All the discussions related to contributions, changes, new ideas have to be started on the dev list first. Remember the mantra - <b>"If it's not on the dev list, it didn't happen".</b> The project is being developed and moved forward by individuals living across the globe and speaking different languages. Thus, <a target="asf" href="https://www.apache.org/foundation/how-it-works.html#communication">asynchronous written communication</a> is a preferred way of engagement at ASF as well as within the NLPCraft community. </p> <p> For the sake of openness, speed and transparency, the community members are free to use Slack, <a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a>, Skype or meet via the tools like Google Meeting. But, as mentioned above, if any conversation took place between contributors using channels like Slack, a summary of the discussion/decision has to be shared via the dev list letting other contributors share their opinions. As a summary, final decisions are made only on the dev list. </p> <h2 class="section-sub-title">Contribution Process <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> Before you start contributing, spend some time to get to know how <a target="asf" href="https://apache.org/foundation/how-it-works.html">Apache Software Foundation</a> works and <a target="asf" href="https://www.apache.org/theapacheway/index.html">The Apache Way</a> that helps us, as a group of professionals, drive the project forward in a respectful and inclusive way. </p> <h2 class="section-sub-title">JIRA Tickets <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">NLPCraft JIRA</a> drives all activities in the project. Any tasks, of any complexity, for any component in the main project or satellite projects has corresponding ticket in JIRA. </p> <p> Before you can start contributing you need to pick an unassigned ticket and assign to yourself. Look through all tickets paying attention to <a target="jira" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20NLPCRAFT%20AND%20status%20%3D%20Open%20AND%20labels%20%3D%20newbie%20AND%20assignee%20in%20(EMPTY)">unassigned tickets with label <code>newbie</code></a> suited for the quick start. Still haven't found anything suitable? As always, check the latest discussions on <a target="asf" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">dev@nlpcraft.apache.org</a> </p> <h2 class="section-sub-title">Git Workflow <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> NLPCraft project uses Git as its version control system. The same Git workflow rules apply to all sub-projects. </p> <p>ASF GitBox repos (committers only):</p> <ul> <li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft">https://git.apache.org/repos/asf/incubator-nlpcraft</a></li> <li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-java-client">https://git.apache.org/repos/asf/incubator-nlpcraft-java-client</a></li> <li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-ui">https://git.apache.org/repos/asf/incubator-nlpcraft-ui</a></li> </ul> <p> GitHub mirrors (contributors pull-requests): </p> <ul> <li><a target="github" href="https://github.com/apache/incubator-nlpcraft">https://github.com/apache/incubator-nlpcraft</a></li> <li><a target="github" href="https://github.com/apache/incubator-nlpcraft-java-client">https://github.com/apache/incubator-nlpcraft-java-client</a></li> <li><a target="github" href="https://github.com/apache/incubator-nlpcraft-ui">https://github.com/apache/incubator-nlpcraft-ui</a></li> </ul> <p>General Git workflow rules:</p> <ul> <li> <code>master</code> branch represents current work-in-progress and is generally maintained so that all tests are passing in <code>master</code>. <ul> <li>Nightly builds can be cut from the master.</li> </ul> </li> <li> Once all tickets for the current sprint are fixed and merged to <code>master</code>, the tagged branch (<code>v0.7.4, v0.7.5</code>) is created for the release. <ul> <li>Each release has a Git tag associated with it.</li> </ul> </li> <li> Committers use feature branches for their work, while contributors use pull-requests from GitHub mirror. <ul> <li> Feature branches should be named after their JIRA tickets, i.e. for ticket <code>NLPCRAFT-012</code> the branch should be named <code>NLPCRAFT-012</code>. </li> </ul> </li> <li> Committers create feature branches off the <code>master</code> branch. </li> <li> Merging should use Git <code>squashing</code> to minimize number of intermittent commits. </li> </ul> <h2 class="section-sub-title">Creating GitHub Pull-Request <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <pre> +------------+ +---------------+ +-----------------+ | | replica | | fork | | | Apache Git | ==========> | GitHub Mirror | ---------> | John Doe's Fork | | | | | | | +------------+ +---------------+ +-----------------+ ^ ^ ^ | | | | +------------------------+ | origin | upstream | | | | | | +-----------------+ | *Apache Git remote handle for committers* | | +------------------------------------------------| Local clone | | | +-----------------+ </pre> <p>To start:</p> <ul> <li> Create a local fork of Apache NLPCraft mirror on GitHub. <ul> <li> Your remote origin will refer to <code>https://github.com/&lt;your_github_username&gt;/incubator-nlpcraft.git</code> (assuming the main project). </li> </ul> </li> <li> You will need to regularly update local <code>master</code> to merge up upstream changes: <ul> <li> Add remote for Apache NLPCraft mirror as a remote (you need to do it <b>once</b>): <pre class="brush: bash"> git remote add upstream https://github.com/apache/incubator-nlpcraft.git </pre> </li> <li> Each time when you want to update your local <code>master</code> do the following: <pre class="brush: bash"> git pull upstream git checkout master </pre> </li> </ul> <div class="bq info"> <p><b>Branch Naming in Forks</b></p> <p> Note that you can use any naming scheme for the branches in your local forks (i.e. you can work in <code>master</code> branch in your local fork). However, when you up-merge from the GitHub mirror you need to make sure to use <code>master</code> branch to get the latest work-in-progress from the upstream. </p> </div> </li> </ul> <p>To make the contribution:</p> <ul> <li> Fix or implement JIRA ticket in your fork. Provide JavaDocs or ScalaDocs whenever required. If you add a new package make sure that <code>package-info.java</code> file in it is in place with a description. Double-check all publicly visible JavaDoc. </li> <li> Commit branch to your local fork. </li> <li> Create pull request from the new remote branch in your fork to <code>master</code> of Apache NLPCraft mirror. Please, start a title of the pull request from <code>NLPCRAFT-xxx</code> referring to the JIRA ticket this pull-request is related to. An email about the pull request will be send to dev-list and the same JIRA comment will be added to the NLPCRAFT-xxx ticket. </li> <li> Move a corresponding JIRA ticket to <code>Patch Available</code> state by clicking on <b>"Submit Patch"</b> button and let the community know that you're ready for review. </li> </ul> <div class="bq info"> <p><b>Existing Pull-Requests</b></p> <p> Existing pull request should be updated instead of creation of new one. Do not create more than one pull request for one issue. </p> </div> <h2 class="section-sub-title">Become A Committer And PMC Member <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> We love contributions and gladly promote active contributors to committers and PMC members! If you are new to Apache Software Foundation then NLPCraft will be an excellent starting point. </p> <p> The most important point of becoming a committer for Apache projects is active participation within the community. Being an active community member means participating in mailing list discussions, helping to answer questions, being respectful towards others, and following the meritocratic principles of community management. </p> <p> Of course, code contributions are also important. Once you make a few code contributions, you will become eligible to join NLPCraft committers, and possibly NLPCraft PMC. Candidates for new committers or PMC members are suggested by the current committers, mentors, or PMC members, and then must be approved by the PMC voting process. </p> </section> <section id="pmc"> <h2 class="section-title">Committers <span class="amp">&</span> PMC <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> Visit the <a target="github" href="https://github.com/apache/incubator-nlpcraft/graphs/contributors">Apache NLPCraft Contributors</a> page to see a list of top contributors and committers for the main project. The table below summarizes <a target="asf" href="https://people.apache.org/phonebook.html?podling=nlpcraft">committers and PMC members</a> of Apache NLPCraft: </p> <table class="gradient-table checks"> <thead> <tr> <th>Name</th> <th>Organization</th> <th>PMC Member?</th> </tr> </thead> <tbody> <tr> <td>Aaron Radzinski</td> <td>DataLingvo</td> <td></td> </tr> <tr> <td>Dmitriy Monakhov</td> <td></td> <td></td> </tr> <tr> <td>Evans Ye</td> <td>Trend Micro</td> <td style="text-align: center;"><i class="fas fa-check"></i></td> </tr> <tr> <td>Konstantin Boudnik</td> <td>Apache Software Foundation</td> <td style="text-align: center;"><i class="fas fa-check-double"></i></td> </tr> <tr> <td>Furkan Kamaci</td> <td></td> <td style="text-align: center;"><i class="fas fa-check"></i></td> </tr> <tr> <td>Nikita Ivanov</td> <td>GridGain Systems, Apache Ignite</td> <td style="text-align: center;"><i class="fas fa-check"></i></td> </tr> <tr> <td>Paul King</td> <td></td> <td style="text-align: center;"><i class="fas fa-check"></i></td> </tr> <tr> <td>Sergey Makov</td> <td></td> <td></td> </tr> <tr> <td>Roman Shaposhnik</td> <td>Pivotal</td> <td style="text-align: center;"><i class="fas fa-check"></i></td> </tr> <tr> <td>Sergey Kamov</td> <td>DataLingvo</td> <td></td> </tr> <tr> <td>Dave Fisher</td> <td></td> <td style="text-align: center;"><i class="fas fa-check"></i></td> </tr> <tr> <td>Gleb Ifropc</td> <td></td> <td></td> </tr> </tbody> </table> </section> <section id="resources"> <h2 class="section-title">Resources <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> There are many ways you can get help from Apache NLPCraft community. The mailing lists are the easiest way to get answers or to get involved with the project. </p> <h2 class="section-title">Stack Overflow <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> NLPCraft community members watch Stack Overflow for the tag <code>nlpcraft</code> or "apachenlpcraft", so you can post your questions there as well. </p> <h2 class="section-title">Mailing Lists <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <ul> <li> <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> for contributor discussions (<a href="mailto:dev-subscribe@nlpcraft.apache.org">subscribe</a>, <a href="mailto:dev-unsubscribe@nlpcraft.apache.org">unsubscribe</a>, <a href="https://lists.apache.org/list.html?dev@nlpcraft.apache.org">archive</a>) </li> <li> <a href="mailto:commits@nlpcraft.apache.org">commits@nlpcraft.apache.org</a> for Git commits (<a href="mailto:commits-subscribe@nlpcraft.apache.org">subscribe</a>, <a href="mailto:commits-unsubscribe@nlpcraft.apache.org">unsubscribe</a>, <a href="https://lists.apache.org/list.html?commits@nlpcraft.apache.org">archive</a>) </li> </ul> <h2 class="section-title">Git <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p>ASF GitBox repos (committers only):</p> <ul> <li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft">https://git.apache.org/repos/asf/incubator-nlpcraft</a></li> <li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-java-client">https://git.apache.org/repos/asf/incubator-nlpcraft-java-client</a></li> <li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-ui">https://git.apache.org/repos/asf/incubator-nlpcraft-ui</a></li> </ul> <p> GitHub mirrors (contributors pull-requests): </p> <ul> <li><a target="github" href="https://github.com/apache/incubator-nlpcraft">https://github.com/apache/incubator-nlpcraft</a></li> <li><a target="github" href="https://github.com/apache/incubator-nlpcraft-java-client">https://github.com/apache/incubator-nlpcraft-java-client</a></li> <li><a target="github" href="https://github.com/apache/incubator-nlpcraft-ui">https://github.com/apache/incubator-nlpcraft-ui</a></li> </ul> <h2 class="section-title">JIRA Issue Tracking <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2> <p> Visit <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">NLPCraft Jira</a> if you would like to file a new issue or view existing issues. If you would like to assign an issue to yourself and start contributing, please send an email to the <a href="mailto:dev@nlpcraft.apache.org">dev list</a>, so you can be granted proper Jira permissions. </p> </section> </div> <div class="col-md-2 third-column"> <ul class="side-nav"> <li class="side-nav-title">On This Page</li> <li><a href="#start">Start Contributing</a></li> <li><a href="#pmc">Committers <span class="amp">&</span> PMC</a></li> <li><a href="#resources">Resources</a></li> {% include quick-links.html %} </ul> </div> </div>