Thank you for your interest in contributing to QuickPerf!
Code of conduct
Various types of contribution
Submission guidelines
Build QuickPerf
Test several JDK with Docker
Technical resources
Paris Hackergarten
Legal stuff
Help us keep QuickPerf open and inclusive. We have adopted the Contributor Covenant Code of Conduct that we expect project participants to adhere to. Please read our code of conduct.
You can contribute in many ways to QuickPerf:
- Report a bug
- Request for new feature
- Work on an issue
You can start with good first issues - Improve documentation
- Submit a documentation issue
- Or submit a PR
To clone the doc repository:git clone https://github.com/quick-perf/doc.wiki.git
- ...
When you start to work on an issue, please leave a comment "I start to work on this issue", so we can assign it to you. Do not hesitate to ask for information about the issue.
Please rebase your PR on master (no merge). We prefer integrating PR by squashing all the commits and rebase it to master, if your PR has diverged and needs to integrate with master, please rebase on master but do not merge as it will prevent rebasing later on.
Need some help with Git or Github? Don't worry, you can read this blog spot or watch these videos.
Please add a license header on each new file: mvn license:format
The JDK must have a version equal to or greater than 1.8.
Also, the JDK must be able to profile with the JDK Flight Recorder that is available with
- OpenJDK JDK >= 11
- OpenJDK JDK 8 with a version greater than u262/u272 (following vendors)
👉 Article from Marcus Hirt giving details: http://hirt.se/blog/?p=1235 - Oracle JDK >= 1.7u40
-
Clone the repository
Execute
git clone https://github.com/quick-perf/quickperf.git
. -
Navigate to the quickperf repository
-
Build QuickPerf with Maven
-
Use Maven installed locally
You need Maven 3.
Execute
mvn clean install
. -
Use a Maven wrapper
The QuickPerf repository includes Maven Wrapper scripts (./mvnw or mvnw.bat) to build QuickPerf without having to install Maven locally.
On Mac or Linux run
./mvnw clean install
.On Windows run
mvnw.cmd clean install
.
-
💡 To disable Spring Boot tests: mvn clean install -P -SpringBootTests
💡 To disable the jfr-annotations
module: mvn clean install -P -jfr
💡 To build with the Testcontainers tests: mvn clean install -P testcontainers
To quickly test multiple linux openjdk locally, you can execute the following command line:
$> docker container run --rm --name mvn-quickperf-cleaninstall -v $HOME/.m2:/root/.m2 -v $(pwd):/usr/src/quickperf -w /usr/src/quickperf maven:3-jdk-11 mvn clean install
$> docker container run --rm --name mvn-quickperf-cleaninstall -v $HOME/.m2:/root/.m2 -v $(pwd):/usr/src/quickperf -w /usr/src/quickperf maven:3-jdk-12 mvn clean install
You can look at the versions available for the Maven image in the dockerhub.
The following command line allows to test a list of openjdk on unix systems :
$> for i in {11..12}; do echo "******** Testing with maven:3-jdk-$i **********"; docker container run --rm --name mvn-quickperf-cleaninstall -v $HOME/.m2:/root/.m2 -v $(pwd):/usr/src/quickperf -w /usr/src/quickperf maven:3-jdk-$i mvn clean install; if [[ $? != 0 ]]; then break; fi; done
It will fail as soon as one mvn clean install fails.
Notice: Maven images are packaged only with openjdk not oraclejdk.
- The Ultimate Git Beginner Reference Guide
- How to Contribute to an Open Source Project on GitHub
- Create an annotation
- Debug annotations with @DebugQuickPerf
You live in Paris? Jean Bisutti, a QuickPerf contributor, regularly attends Paris Hackergarten. He can help you to contribute to QuickPerf during this event.
Project License: Apache License Version 2.0
- You will only Submit Contributions where You have authored 100% of the content.
- You will only Submit Contributions to which You have the necessary rights. This means that if You are employed You have received the necessary permissions from Your employer to make the Contributions.
- Whatever content You Contribute will be provided under the Project License(s).