How to contribute

1) Discuss substantial changes first

If your change is clear and well-scoped, simply open a pull request.

For a substantial or complex change (a new feature, a new module, a change of behavior…), discuss it first on the pac4j-dev Google group, so that we agree on the approach before you invest time in it.

Never report a vulnerability through a public pull request: follow the security policy instead.

2) Open a pull request

3) Build and test

The project requires Java 17 and Maven. Before submitting, run:

mvn clean verify

It runs Checkstyle, PMD, SpotBugs and the unit tests: the build must pass.

Your code should be easy to read and use Lombok to reduce boilerplate (@Getter, @Setter, @Slf4j, val…).

Any change must come with the appropriate tests: unit test classes are suffixed by Tests.

4) Documentation

The documentation lives in the documentation directory and is published as this website. You can browse it locally at http://localhost:4000 by running bundle exec jekyll serve in that directory: changes are visible immediately.