blob: aea5d4d7b7b2df5d0d0fc549edb85ace3131104c [file] [log] [blame]
---
title: Contributing - Community
section_name: Community
license: >
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
---
# Contributing
We welcome contributions to the Apache DataFu. If you're interested, please read the following guide:
https://cwiki.apache.org/confluence/display/DATAFU/Contributing+to+Apache+DataFu
## Working in the Code Base
Common tasks for working in the DataFu code can be found below. For information on how to contribute patches, please
follow the wiki link above.
### Get the Code
If you haven't done so already:
git clone https://git-wip-us.apache.org/repos/asf/datafu.git
cd datafu
### Generate Eclipse Files
The following command generates the necessary files to load the project in Eclipse:
./gradlew eclipse
To clean up the eclipse files:
./gradlew cleanEclipse
Note that you may run out of heap when executing tests in Eclipse. To fix this adjust your heap settings for the TestNG plugin. Go to Eclipse->Preferences. Select TestNG->Run/Debug. Add "-Xmx1G" to the JVM args.
### Building
All the JARs for the project can be built with the following command:
./gradlew assemble
This builds SNAPSHOT versions of the JARs for DataFu Pig, Spark and Hourglass. The built JARs can be found under `datafu-pig/build/libs`, `datafu-spark/build/libs` and `datafu-hourglass/build/libs`, respectively.
A single project - for example, DataFu Pig - may be built by running the command below.
./gradlew :datafu-pig:assemble
### Running Tests
Tests can be run with the following command:
./gradlew test
All the tests can also be run from within eclipse.
To run a single project's test - for example, for DataFu Pig only:
./gradlew :datafu-pig:test
To run a specific set of tests from the command line, you can define the `test.single` system property with a value matching the test class you want to run. For example, to run all tests defined in the `QuantileTests` test class for DataFu Pig:
./gradlew :datafu-pig:test -Dtest.single=QuantileTests
You can similarly run a specific Hourglass test like so:
./gradlew :datafu-hourglass:test -Dtest.single=PartitionCollapsingTests