# How to contribute Want to show Apache JMeter some love? Help out by contributing! ## :beetle: Found a bug Log it in GitHub issues: * https://github.com/apache/jmeter/issues * or send a note to the [user mailing list](https://jmeter.apache.org/mail2.html#JMeterUser). Be sure to include all relevant information, like the versions of JMeter you’re using as long as Java version. A Test plan that caused the issue as well as any error messages are also very helpful. ## :question: Need help Contact: * [Our users mailing list](https://jmeter.apache.org/mail2.html#JMeterUser) * or ask question on [stackoverflow](https://stackoverflow.com/questions/tagged/jmeter). ## :bar_chart: What needs to be developed See: * [Open issues for JMeter](https://github.com/apache/jmeter/issues) * [Enhancement requests for JMeter](https://github.com/apache/jmeter/issues?q=is%3Aopen+label%3Aenhancement) ## Development setup ### Gradle You might find useful Gradle commands in [gradle.md](gradle.md) ### IntelliJ IDEA You require IntelliJ 2018.3.1 or newer. 1. Open the build.gradle.kts file with IntelliJ IDEA and choose `Open as Project` 1. Make sure `Create separate module per source set` is selected 1. Make sure `Use default gradle wrapper` is selected 1. In the `File already exists` dialogue, choose `Yes` to overwrite 1. In the `Open Project` dialogue, choose `Delete Existing Project and Import` ### Eclipse Eclipse can import Gradle projects automatically via `Import...->Gradle project` wizard. Optionally you can generate an Eclipse project by running ./gradlew eclipse The steps to import the sources (based on Eclipse 2019-06) into Eclipse are as follows: 1. Install `Eclipse IDE for Java Developers` 1. Install `Kotlin for Eclipse` plugin (JMeter code uses Java and Kotlin) 1. Make sure you have a Java 17 compatible JDK configured in your workspace 1. Open `File->Import...` 1. Select `Existing Gradle Project` and click `Next` 1. Read `How to experience the best Gradle integration` and click `Next` 1. Then you might just click `Finish` ## :star2: Have a patch The best way to make sure your issue or feature is addressed is to submit a patch. We accept patches through: * pull requests * patch attached to [JMeter developers mailing list](https://jmeter.apache.org/mail2.html#JMeterDev). However, before sending a patch, please make sure that the following applies: * Your commit message is descriptive. * Your patch doesn't have useless merge commits. * Your coding style is similar to ours. * Your patch is 100% tested. JUnit are welcome. * All tests checks pass (run `./gradlew check`) * You understand that we're very grateful for your patch! ## :heart: Adding something new We do love to enhance Apache JMeter with you to become more powerful! The best way to work out your idea is to discuss it first at our dev mailing list: * [JMeter developers mailing list](https://jmeter.apache.org/mail2.html#JMeterDev) Please, if you can, don't just throw us the code of a new feature; lets figure first together what would be the best approach regarding the current architecture and future plans, before any development. This way we all get sure that your idea is aligned with the codebase, and you can enjoy your happy coding even more :) ## :closed_book: Want to write docs Documentation is very valuable to us. It is located in **[xdocs](xdocs)** folder in XML format. You can contribute as you would for code through patch or *PR* (pull request).