Unitex/GramLab project decision-making is based on a community meritocratic process. Anyone with an interest in Unitex/GramLab can join the community, contribute to the project design and participate in decisions. See http://unitexgramlab.org/how-to-contribute for more detailed information on how to start contributing to Unitex/GramLab.
You are welcome to contribute by forking this repository and sending pull requests with your changes. The recommended workflow to contribute is:
-
Clone your fork locally
git clone https://github.com/YOUR_GITHUB_USERNAME/unitex-core.git
-
Configure the upstream remote. To do this, add the remote location of the main
unitex-core
repository under the nameupstream
. This will allow you later to keep your fork up to dategit remote add upstream git://github.com/UnitexGramLab/unitex-core.git git fetch upstream
-
Create a local branch for your changes
git checkout -b my-changes origin/master
Use a short and descriptive name for your branch. If you are developing a new
feature or enhancement, name your branch as feature/DESCRIPTIVE-NAME
, if
you are fixing a bug, name your branch as fix/N
where N
corresponds to
an issue number,
e.g. fix/5
-
For non-trivial changes, if it doesn't already exist, create a new issue
-
Edit the files and compile your code following the How to Build instructions
-
Execute
./unitex-core-test.sh -p1 -M1
to run non-regression and memory error detection tests. Note that is not necessary or even recommended to fork the unitex-core-tests repository. In this case, since you need only to run theunitex-core-test.sh
script, make sure only your local repository is up-to-date by pulling the latest remote changes -
Make sure git knows your name and email address, e.g.
git config --global user.name "John Doe" git config --global user.email "john.doe@example.org"
-
Commit your code following the Commit Message Guidelines
-
Make sure your fork is up to date
git checkout master git pull upstream master
-
Rebase your local branch
git checkout my-changes git rebase master
-
Merge back into master
git checkout master git merge my-changes
-
Push your changes to your remote repository on GitHub
git push origin
-
Go to
https://github.com/YOUR_GITHUB_USERNAME/unitex-core
and Request a pull -
Give a brief description and refer the issues in your pull request comment
-
Finally, if your are developing or improving a new functionality or module, you can, and should, contribute tests for it. To get further details check the unitex-core-tests repository