| --- |
| 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/<your_github_username>/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> |