We welcome new members to
extJWNL project. If you want to fix a bug, update the documentation, implement or suggest a new feature - join the project.
There are many ways to contribute. Lets list few options, starting from simple and easy ones to better ones:
Below I describe the best way which will lead your changes into
extJWNL project is hosted on SourceForge, so create a SourceForge user account or login with OpenID. Then send a message with your SourceForge user id to Aliaksandr Autayeu telling why you would like to join the project and what you would like to contribute.
If you don't want to deal with SourceForge, it is enough that you clone the !Git repository and later on it will be easier to merge your changes into main
Tell us you want to contribute and ask to join the project. We will help you to get started. We appreciate any help, especially programmers help and technical writers help.
For Javadoc and code comments read Sun's How to Write Doc Comments for the Javadoc Tool and pick up bits of common sense in the following places:
Read Sun's "Code Conventions for the Java Programming Language":
We recommend that those working under Windows configure Git to ignore file permissions by issuing the following configuration command in the repository:
git config core.filemode false
As a general recommendation we advise to make atomic well-commented commits:
We adopt the following development scheme. There is a master repository. In addition, each developer has own repository. The developer keeps own repository updated from the master repository. It might be useful to group development steps in features (or bug fixes) and organize those as branches. This will make the code review easier. When the developer is ready to contribute the code, the developer merges the latest code from the master into own repository, making sure the code merges smoothly and resolving conflicts as necessary. After all conflicts have been resolved, the developer commits and pushes the changes into the developer's own repository and signals Aliaksandr Autayeu to merge the new code into the master. I will review and merge the code and it will become public.
Now, step by step.
jsmith is your login. Master
extJWNL repository has the following address:
ssh://email@example.com/gitroot/extjwnl/extjwnl. It has main branch called
master. We will create a repository for you. Your repository is called
jsmith and has the following address:
ssh://firstname.lastname@example.org/gitroot/extjwnl/jsmith. In the beginning it also has only one branch, called
To set up your local repository execute
git clone ssh://email@example.com/gitroot/extjwnl/jsmith. This will create a local copy of your own repository. This copy synchronizes with SourceForge servers using remote called
Now add a reference to the master
git remote add extjwnl ssh://firstname.lastname@example.org/gitroot/extjwnl/extjwnl. Now your repository contains two remotes:
origin, pointing to your own repository, and
extjwnl, pointing to main
Your repository has a reference to the main
extJWNL repository, called
git fetch extjwnl to get changes from main
extJWNL repository. Then execute
git merge extjwnl/master to merge changes from
master branch of the main
extJWNL repository. After you merge successfully, resolving conflicts if they arise, build and test the code again. When you are sure it works, execute
git push. Now your repository is ready for contribution to the main repository.
Develop your code in your preferred way, test it, commit it. The usual commands for that are:
git add -A,
git commit -m "implemented foo.bar". See
git help or
man git for help on git. You may create your own branches and in general do whatever pleases you the most in your own repository. Write meaningful commit messages and from time to time update SourceForge servers by pushing your changes:
git push. This will upload your commits to the SourceForge.
After you have done the steps above, write Aliaksandr Autayeu that your repository has a contribution ready to be merged, mentioning the branch where it is located. I will pull your changes into the main repository and make a release.