# Contributing

Each pull request should address a single issue, and contain both the fix and a description of how the pull request and
tests that validate that the PR fixes the issue in question.

For significant feature additions, we like to have an open issue
in [MariaDB JIRA](https://mariadb.atlassian.net/secure/RapidBoard.jspa?projectKey=CONJ). It is expected that discussion
will have taken place in the attached issue.

# Install Prerequisites

These are the set of tools which are required in order to complete any build. Follow the links to download and install
them on your own before continuing.

* At least one GPG Key see https://help.github.com/en/articles/generating-a-new-gpg-key
* [Oracle JDK 8](http://www.oracle.com/technetwork/java/javase/downloads/index.html) (
	with [JCE policies](http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html) if using
	TLS/SSL)
* IDE (eclipse / netbean / intelliJ) with maven and GIT plugins

# Fork source

Before downloading source, fork the project to your own repository, and use your repository as source.

## Branch signification

* master : correspond to the last released version
* develop : Develop new features for upcoming releases (compatible with java 8)
* develop-jre6 : maintenance branch compatible with java 6 / 7

# Run local test

Before any submission :
Run the test locally : by default, you need to have a MySQL/MariaDB server on localhost:3306 with a database named "
testj" and a user root without password.
so you can run

```script
		mvn test
```

You can change this parameter by adding -DdbUrl parameter. like :

```script
		mvn test -DdbUrl=jdbc:mariadb://127.0.0.1:3306/testj?user=root&password=*****
```

You can launch a specific test by adding -Dtest

```script
		mvn test -Dtest=org.mariadb.jdbc.JdbcParserTest
```

When all test are passing, you can package project.
Additional tests , like javadoc formatting, code style validation will be done :

```script
		mvn package -Dmaven.test.skip=true
```

If operation succeed, a new mariadb-java-client jar will be on the target folder.

# Run travis test

You can activate travis to validate your repository.
The advantage of travis compare to running test locally is that it will launch tests for a combination of those
parameters :

jdk:

* oraclejdk8
	and if your work is on develop-jre6 branch
* openjdk6
* openjdk7

server :

* MariaDB 5.5
* MariaDB 10.0
* MariaDB 10.1
* MariaDB 10.2
* MySQL 5.6
* MySQL 5.7

max_allowed_packet : (this permit to check multipacket send)

* 8M
* 20M
* 40M

For that, you have to go on [travis website](https://travis-ci.org), connect with your github account, and activate your
mariadb-connector-j repository.
After this step, every push to your repository will launch a travis test.

## Submitting a request

When your repository has the correction/change done, you can submit a pull request by clicking the "Pull request" button
on github.
Please detail the operation done in your request.

## License

Distributed under the terms of the GNU Library or "Lesser" General Public License (LGPL).
