Skip to content

Latest commit

 

History

History
71 lines (39 loc) · 3.97 KB

CONTRIBUTING.md

File metadata and controls

71 lines (39 loc) · 3.97 KB

Contributing guide

Want to contribute? Great! We try to make it easy, and all contributions, even the smaller ones, are more than welcome. This includes bug reports, fixes, documentation, examples... But first, read this page.

Reporting an issue

This project uses GitHub issues to manage the issues. Open an issue directly in GitHub.

If you believe you found a bug, and it's likely possible, please indicate a way to reproduce it, what you are seeing, and what you would expect to see. Don't forget to indicate your Quarkus, Java, Maven/Gradle, and GraalVM versions.

Tests and documentation are not optional

Don't forget to include tests in your pull requests. Also don't forget the documentation (reference documentation, javadoc...).

RESTEasy Reactive and RESTEasy Classic

This extension supports RESTEasy Reactive and RESTEasy Classic. We have one profile for each implementation. By default, tests are run with RESTEasy Classic.

Using the RESTEasy Reactive profile

To run the tests using RESTEasy Reactive, use the resteasy-reactive profile, like the following:

mvn verify -Presteasy-reactive

Using the RESTEasy Classic profile

To run the tests using RESTEasy Classic, use the resteasy-classic profile, like the following:

mvn verify -Presteasy-classic

Specific tests for each implementation

Most of the tests are the same for both RESTEasy implementations, but a few of them require different code, like the multipart-request integration test. For these cases, we have one test for each implementation, using the org.junit.jupiter.api.Tag annotation to specify the profile for each of them.

Code Style

Maven automatically formats code and organizes imports when you run mvn verify. So, we recommend you do that before sending your PR. Otherwise, PR checks will fail.

Quarkus 3 and Quarkus 2 support

This extension supports versions 3 and 2 of Quarkus and the code base is different for each Quarkus version. Therefore, we have the main branch supporting Quarkus 3, and the quarkus2 branch supporting Quarkus 2. Preferably send your PRs to the main branch and we will backport them to the quarkus2 branch.

For the maintainers

Backporting between branches

We have a GitHub action for backporting PRs between different branches. To use that, you must set a label named backport-<destination_branch_name>.

Let's say you want to backport a PR from the main branch to the quarkus2 branch. You would have to add a label named backport-quarkus2 to the original PR. When that PR is merged, the GitHub actions bot will send a copy of the PR to the quarkus2 branch.

See an example:

Known limitation

GitHub does not initiate checks for pull requests opened by the GitHub Actions bot. Therefore, when we backport a PR to another branch the PR checks are not run automatically.

Backlog

We have a Kanban board, which is currently visible only by members of the Quarkiverse organization.

Staling issues and PRs

We have a GitHub action to automatically close issues and PRs that didn't have interactions for a while. If you want to disable it for a specific issue or PR, you can add the pinned label and it will never stale.