Thank you for considering contributing to natls
!
We're looking for all kinds of contributions in all the different subprojects, may it be additional statements that get parsed, new analyzers, language server endpoints, updates to the docs, filing issues or feature requests.
-
Fork this repository on GitHub.
-
Clone your fork locally:
$ git clone <url-to-your-fork>
-
Add the official repository (
upstream
) as a remote repository:$ git remote add upstream https://github.com/MarkusAmshove/natls.git
-
Build the project once to download all dependencies (or import it in your IDE):
$ ./gradlew build
This will download gradle and a JDK if they aren't already on your machine and also download all dependencies of
natls
. Furthermore it'll build the project and execute all tests. -
Create a branch for your bugfix or feature based off the
main
branch:$ git checkout -b <name-bugfix-or-feature> main
You can also name the branch based on subprojects, e.g.
natparse/parse-read-by
etc. -
If the changes you make take a few days, be sure to occasionally pull the latest changes from
upstream
, to ensure that your local branch is up-to-date:$ git pull upstream main
-
When your work is done, push your local branch to your fork:
$ git push origin <name-of-bugfix-or-feature>
-
Create a pull request on GitHub.
NOTE: When the build fails after your changes and you don't know why, don't hesitate to create a pull request anyway, we might be able to help you!
All projects of natls
are built with Gradle
The default gradlew build
will do a complete build of all subprojects.
The default build task will also run all tests and do a check on the coding style.
If you want to get information about code coverage, you can run gradlew cover
to run all tests and get an aggregated report. The report will be locateld in <repository-root>/build/reports/jacoco/cover/html/index.html
To adhere to the formatting of the project, you can find formatter profiles in the repository, namely EclipseFormatter.xml
and IntelliFormatter.xml
.
Additionally, the formatting is checked by Spotless in the Gradle build.
Formatting can also be run with gradlew spotlessApply
.