We encourage the reporting of issues and bugs, along with pull requests to help make Nailgun codebase better. The following are some information and guidelines to help you contribute to Nailgun.
This is a high-level overview of how the Nailgun repository is organized.
That is where server side code lives, written in Java. It contains both core code under src/main
and test code under src/tests
.
Client part of Nailgun, both C and Python versions in appropriate folders.
Some simple implementations of a Nail, helpful to understand how to write server-side code. One can also execute one of those nails for debugging or integration testing.
Automation scripts, mostly for continuous integration (i.e. Travis CI).
Third-party dependencies used in tooling, like linter or code formatter.
As simple as running mvn clean package
.
Unit tests and integration tests are JUnit and they are run by Maven when you say 'mvn package'. To run E2E test, just execute ./scripts/travis_ci.sh
. It will also run mvn package
first with all unit tests.
Just open project from Nailgun's root folder
Code is autoformatted with Maven plugin and Google code style is used. Be ready to have some changed files after building the project with Maven, so you may have to amend the change to git.