Venice Workspace Setup
Checking out the code
Venice’s source code is hosted on GitHub. Check out the code using:
git clone https://github.com/linkedin/venice.git
Setting up the IDE
We recommend using IntelliJ IDEA for development, and provide instructions for it. However, any IDE of your choice should work. To set up IntelliJ, run:
./gradlew idea
Setting up your system
Set the maximum number of open files limit
There are many resources on the web for updating the limits of maximum number of open files for each operating system. We recommend setting a soft limit of at least 64000
and a hard limit of at least 524288
. Feel free to experiment with various values and find ones that work for you.
Build the project
./gradlew clean assemble
Run the test suite
./gradlew check --continue
Gradle Cheatsheet
# Build project classes and artifacts
./gradlew assemble
# Run all checks (spotbugs, code coverage, tests etc)
./gradlew check --continue
# Run only enabled checks that may fail the build
./gradlew spotbugs
# Run all checks, including ones that are in review/incubating stage, and do not fail the build
./gradlew spotbugs -Pspotallbugs -Pspotbugs.ignoreFailures
# Run jacoco code coverage check, which will also generate jacoco report
./gradlew jacocoTestCoverageVerification
# Run jacoco code coverage check along with jacoco report and diff coverage check
./gradlew jacocoTestCoverageVerification diffCoverage --continue
# Run enabled checks only for main code and in da-vinci-client subproject
./gradlew :clients:da-vinci-client:spotbugsMain
# Run jacoco code coverage check for a specific module along with jacoco report
./gradlew :clients:da-vinci-client:jacocoTestCoverageVerification
# Run jacoco code coverage check for a specific module along with jacoco report and diff coverage check
./gradlew :clients:da-vinci-client:jacocoTestCoverageVerification diffCoverage
# Run a specific test in any module
$ ./gradlew :sub-module:testType --tests "fully.qualified.name.of.the.test"
# To run a specific integration test
$ ./gradlew :venice-test-common:integrationtest --tests "fully.qualified.name.of.the.test"