= Contributing

Anyone is welcome to open link:https://github.com/jreleaser/jreleaser/issues[issues] and/or pull-requests for bugfixes,
feature-requests and/or ideas. If unsure where to start we encourage you to open a
link:https://github.com/jreleaser/jreleaser/discussions[discussion] topic first.

== Code of Conduct

This project and everyone participating in it is governed by our link:CODE_OF_CONDUCT.md[Code of Conduct].
By participating, you are expected to uphold this code. Please report unacceptable behavior to jreleaser@kordapm.org.

== Contributor License Agreement

Contributions to JReleaser are protected by a link:CLA.adoc[CLA]. Please read the document before making a contribution.
You'll be asked to digitally sign the document on your first contribution. Feel free to open a
link:https://github.com/jreleaser/jreleaser/discussions[discussion] topic if you have questions.

== How to build

.Prerequisites
Java 11.

1. `git clone https://github.com/jreleaser/jreleaser.git`
2. `cd jreleaser`
3. `./gradlew build`

If you'd like to test out the Maven or Gradle plugins then you must install all dependencies into your local Maven
repository at least once:

`./gradlew publishToMavenLocal`

From then on you just have to re-install those dependencies that changed, for example

`./gradlew :jreleaser-model:publishToMavenLocal` when changes were made to the `jreleaser-model` project.

IMPORTANT: The Gradle plugin responsible for building the Maven plugin descriptor is not that realiable. You'll have to
clean and regenerate the plugin descritptor on every change that modifies/affects the MOJO descriptors such as adding/removing
 parameters to a MOJO, that is
`./gradlew :jreleaser-maven-plugin:clean :jreleaser-maven-plugin:publishToMavenLocal --no-build-cache`.

TIP: You maye use link:https://github.com/kordamp/gm[] instead in which case the commands are shorter, for example
`./gradlew publishToMavenLocal` becomes `gm install`.

=== Git Commit Messages

 * Use the present tense ("Add feature" not "Added feature")
 * Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
 * Reference issues and pull requests liberally after the first line
 * When only changing documentation, include [ci skip] in the commit title
 * If fixing a bug, append "Fixes #<n>" to the first line
 * If fixing a feature, append "Resolves #<n>" to the first line

== Documentation

Documentation changes should be posted to link:https://github.com/jreleaser/jreleaser.github.io[jreleaser/jreleaser.github.io].
