• Docs
  • Community
  • Use Cases
  • Downloads
  • v.1.0.0
  • GitHub
  1. Home
  2. Community

Community

  • Foundation
  • License
  • Security
  • Sponsorship
  • Thanks
  • Introduction
  • Overview
  • Installation
  • First Example
  • Developer Guide
  • Key Concepts
  • Intent Matching
  • Short-Term Memory
  • Examples
  • Calculator
  • Time
  • Light Switch
  • Light Switch FR
  • Light Switch RU
  • Pizzeria

Start Contributing

Before you get involved in Apache NLPCraft development, please sign up to the dev mailing list by sending an empty email to dev-subscribe@nlpcraft.apache.org 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.

Also, make sure to share your ASF JIRA ID in the same email (create a new one 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.

Dev List

Gitter channel and the dev@nlpcraft.apache.org list is the primary and the default communication channel.

Send an email to dev-subscribe@nlpcraft.apache.org to subscribe to the list. If you are an ASF committer, then it's better to use your @apache.org address for NLPCraft communications.

All the discussions related to contributions, changes, new ideas have to be started on the dev list first. Remember the mantra - "If it's not on the dev list, it didn't happen". The project is being developed and moved forward by individuals living across the globe and speaking different languages. Thus, asynchronous written communication is a preferred way of engagement at ASF as well as within the NLPCraft community.

For the sake of openness, speed and transparency, the community members are free to use Slack, Gitter, 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.

Contribution Process

Before you start contributing, spend some time to get to know how Apache Software Foundation works and The Apache Way that helps us, as a group of professionals, drive the project forward in a respectful and inclusive way.

JIRA Tickets

NLPCraft JIRA 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.

Before you can start contributing you need to pick an unassigned ticket and assign to yourself. Look through all tickets paying attention to unassigned tickets with label newbie suited for the quick start. Still haven't found anything suitable? As always, check the latest discussions on dev@nlpcraft.apache.org

Git Workflow

NLPCraft project uses Git as its version control system. The same Git workflow rules apply to all sub-projects.

ASF GitBox repos (committers only):

  • https://git.apache.org/repos/asf/incubator-nlpcraft
  • https://git.apache.org/repos/asf/incubator-nlpcraft-java-client
  • https://git.apache.org/repos/asf/incubator-nlpcraft-ui

GitHub mirrors (contributors pull-requests):

  • https://github.com/apache/incubator-nlpcraft
  • https://github.com/apache/incubator-nlpcraft-java-client
  • https://github.com/apache/incubator-nlpcraft-ui

General Git workflow rules:

  • master branch represents current work-in-progress and is generally maintained so that all tests are passing in master.
    • Nightly builds can be cut from the master.
  • Once all tickets for the current sprint are fixed and merged to master, the tagged branch (v0.7.4, v0.7.5) is created for the release.
    • Each release has a Git tag associated with it.
  • Committers use feature branches for their work, while contributors use pull-requests from GitHub mirror.
    • Feature branches should be named after their JIRA tickets, i.e. for ticket NLPCRAFT-012 the branch should be named NLPCRAFT-012.
  • Committers create feature branches off the master branch.
  • Merging should use Git squashing to minimize number of intermittent commits.

Creating GitHub Pull-Request

+------------+             +---------------+            +-----------------+
|            |   replica   |               |    fork    |                 |
| Apache Git | ==========> | GitHub Mirror | ---------> | John Doe's Fork |
|            |             |               |            |                 |
+------------+             +---------------+            +-----------------+
       ^                            ^                            ^
       |                            |                            |
       |                            +------------------------+   | origin
       |                                  upstream           |   |
       |                                                     |   |
       |                                                +-----------------+
       |    *Apache Git remote handle for committers*   |                 |
       +------------------------------------------------|   Local clone   |
                                                        |                 |
                                                        +-----------------+
            

To start:

  • Create a local fork of Apache NLPCraft mirror on GitHub.
    • Your remote origin will refer to https://github.com/<your_github_username>/incubator-nlpcraft.git (assuming the main project).
  • You will need to regularly update local master to merge up upstream changes:
    • Add remote for Apache NLPCraft mirror as a remote (you need to do it once):
                                      git remote add upstream https://github.com/apache/incubator-nlpcraft.git
                                  
    • Each time when you want to update your local master do the following:
                                      git pull upstream
                                      git checkout master
                                  

    Branch Naming in Forks

    Note that you can use any naming scheme for the branches in your local forks (i.e. you can work in master branch in your local fork). However, when you up-merge from the GitHub mirror you need to make sure to use master branch to get the latest work-in-progress from the upstream.

To make the contribution:

  • Fix or implement JIRA ticket in your fork. Provide JavaDocs or ScalaDocs whenever required. If you add a new package make sure that package-info.java file in it is in place with a description. Double-check all publicly visible JavaDoc.
  • Commit branch to your local fork.
  • Create pull request from the new remote branch in your fork to master of Apache NLPCraft mirror. Please, start a title of the pull request from NLPCRAFT-xxx 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.
  • Move a corresponding JIRA ticket to Patch Available state by clicking on "Submit Patch" button and let the community know that you're ready for review.

Existing Pull-Requests

Existing pull request should be updated instead of creation of new one. Do not create more than one pull request for one issue.

Become A Committer And PMC Member

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.

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.

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.

Committers & PMC

Visit the Apache NLPCraft Contributors page to see a list of top contributors and committers for the main project. The table below summarizes committers and PMC members of Apache NLPCraft:

NameOrganizationPMC Member?
Aaron RadzinskiDataLingvo
Dmitriy Monakhov
Evans YeTrend Micro
Konstantin BoudnikApache Software Foundation
Furkan Kamaci
Nikita IvanovGridGain Systems, Apache Ignite
Paul King
Sergey Makov
Roman ShaposhnikPivotal
Sergey KamovDataLingvo
Dave Fisher
Gleb Ifropc

Resources

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.

Stack Overflow

NLPCraft community members watch Stack Overflow for the tag nlpcraft or "apachenlpcraft", so you can post your questions there as well.

Mailing Lists

  • dev@nlpcraft.apache.org for contributor discussions (subscribe, unsubscribe, archive)
  • commits@nlpcraft.apache.org for Git commits (subscribe, unsubscribe, archive)

Git

ASF GitBox repos (committers only):

  • https://git.apache.org/repos/asf/incubator-nlpcraft
  • https://git.apache.org/repos/asf/incubator-nlpcraft-java-client
  • https://git.apache.org/repos/asf/incubator-nlpcraft-ui

GitHub mirrors (contributors pull-requests):

  • https://github.com/apache/incubator-nlpcraft
  • https://github.com/apache/incubator-nlpcraft-java-client
  • https://github.com/apache/incubator-nlpcraft-ui

JIRA Issue Tracking

Visit NLPCraft Jira 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 dev list, so you can be granted proper Jira permissions.

  • On This Page
  • Start Contributing
  • Committers & PMC
  • Resources
  • Quick Links
  • Examples
  • Scaladoc
  • Download
  • Installation
  • Support
  • JIRA
  • Dev List
  • Stack Overflow
  • GitHub
  • Gitter
  • Twitter
Copyright © 2023 Apache Software Foundation asf Events • Privacy • News • Docs release: 1.0.0 Gitter Built in: