Skip to content

Latest commit

 

History

History
93 lines (66 loc) · 3.7 KB

CONTRIBUTING.md

File metadata and controls

93 lines (66 loc) · 3.7 KB

Contributing

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:

  1. Fork us

  2. Clone your fork locally

    git clone https://github.com/YOUR_GITHUB_USERNAME/unitex-core.git
    
  3. Configure the upstream remote. To do this, add the remote location of the main unitex-core repository under the name upstream. This will allow you later to keep your fork up to date

    git remote add upstream git://github.com/UnitexGramLab/unitex-core.git
    git fetch upstream
    
  4. 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

  1. For non-trivial changes, if it doesn't already exist, create a new issue

  2. Edit the files and compile your code following the How to Build instructions

  3. 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 the unitex-core-test.sh script, make sure only your local repository is up-to-date by pulling the latest remote changes

  4. 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"
    
  5. Commit your code following the Commit Message Guidelines

  6. Make sure your fork is up to date

    git checkout master
    git pull upstream master
    
  7. Rebase your local branch

    git checkout my-changes
    git rebase master
    
  8. Merge back into master

    git checkout master
    git merge my-changes
    
  9. Push your changes to your remote repository on GitHub

    git push origin
    
  10. Go to https://github.com/YOUR_GITHUB_USERNAME/unitex-core and Request a pull

  11. Give a brief description and refer the issues in your pull request comment

  12. 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