## Log4JNA Parent

# Contributing to Log4JNA

Log4JNA is work of many contributors. You’re encouraged to submit pull requests, propose features and discuss issues.

#### Fork the Project

Fork the project on Github and check out your copy.

    git clone https://github.com/contributor/log4jna.git
    cd log4jna
    git remote add upstream https://github.com/dblock/log4jna.git

#### Create a Topic Branch

Make sure your fork is up-to-date and create a topic branch for your feature or bug fix.

    git checkout master
    git pull upstream master
    git checkout -b my-feature-branch

#### Build and Test

Ensure that you can build the project and run tests.

    mvn test

##### Notes on building

See Win32EventLogAppender README for requirements on building the the message file.

The build does not complain and skips the message file if it can’t be build.

#### Write Tests

Try to write a test that reproduces the problem you’re trying to fix or describes a feature that you want to build.

We definitely appreciate pull requests that highlight or reproduce a problem, even without a fix.

#### Write Code

Implement your feature or bug fix.

Make sure that `mvn test` completes without errors.

#### Write Documentation

Document any external behavior in the README.

#### Update Changelog

Add a line to CHANGELOG under Next Release. Make it look like every other line, including your name and link to your Github account.

#### Commit Changes

Make sure git knows your name and email address:

    git config --global user.name "Your Name"
    git config --global user.email "contributor@example.com"

Writing good commit logs is important. A commit log should describe what changed and why.

    git add ...
    git commit

#### Push

    git push origin my-feature-branch

#### Make a Pull Request

Go to https://github.com/contributor/log4jna and select your feature branch. Click the ‘Pull Request’ button and fill out the form. Pull requests are usually reviewed within a few days.

#### Rebase

If you’ve been working on a change for a while, rebase with upstream/master.

    git fetch upstream
    git rebase upstream/master
    git push origin my-feature-branch -f

#### Update CHANGELOG Again

Update the CHANGELOG with the pull request number. A typical entry looks as follows.

    * [#123](https://github.com/dblock/log4jna/pull/123): Created some new feature - [@contributor](https://github.com/contributor).

Amend your previous commit and force push the changes.

    git commit --amend
    git push origin my-feature-branch -f

#### Check on Your Pull Request

Go back to your pull request after a few minutes and see whether it passed muster with Travis-CI. Everything should look green, otherwise fix issues and amend your commit as described above.

#### Be Patient

It’s likely that your change will not be merged and that the nitpicky maintainers will ask you to do more, or fix seemingly benign problems. Hang on there!

#### Thank You

Please do know that we really appreciate and value your time and work. We love you, really.