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.
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.
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.
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
NLPCraft project uses Git as its version control system. The same Git workflow rules apply to all sub-projects.
ASF GitBox repos (committers only):
GitHub mirrors (contributors pull-requests):
General Git workflow rules:
master
branch represents current work-in-progress and is generally maintained so that all tests are passing in master
.master
, the tagged branch (v0.7.4, v0.7.5
) is created for the release.NLPCRAFT-012
the branch should be named NLPCRAFT-012
.master
branch.squashing
to minimize number of intermittent commits.+------------+ +---------------+ +-----------------+ | | replica | | fork | | | Apache Git | ==========> | GitHub Mirror | ---------> | John Doe's Fork | | | | | | | +------------+ +---------------+ +-----------------+ ^ ^ ^ | | | | +------------------------+ | origin | upstream | | | | | | +-----------------+ | *Apache Git remote handle for committers* | | +------------------------------------------------| Local clone | | | +-----------------+
To start:
https://github.com/<your_github_username>/incubator-nlpcraft.git
(assuming the main project).master
to merge up upstream changes:git remote add upstream https://github.com/apache/incubator-nlpcraft.git
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:
package-info.java
file in it is in place with a description. Double-check all publicly visible JavaDoc.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.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.
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.
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:
Name | Organization | PMC Member? |
---|---|---|
Aaron Radzinski | DataLingvo | |
Dmitriy Monakhov | ||
Evans Ye | Trend Micro | |
Konstantin Boudnik | Apache Software Foundation | |
Furkan Kamaci | ||
Nikita Ivanov | GridGain Systems, Apache Ignite | |
Paul King | ||
Sergey Makov | ||
Roman Shaposhnik | Pivotal | |
Sergey Kamov | DataLingvo | |
Dave Fisher | ||
Gleb Ifropc |
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.
NLPCraft community members watch Stack Overflow for the tag nlpcraft
or "apachenlpcraft", so you can post your questions there as well.
ASF GitBox repos (committers only):
GitHub mirrors (contributors pull-requests):
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.