blob: e920b79434923fb2226093ea0974d206a190f9ad [file] [log] [blame]
Ignite Fabric Maven Build Instructions
======================================
Without LGPL dependencies (default):
mvn clean package -DskipTests
Without LGPL dependencies and Scala 2.10:
mvn clean package -DskipTests -Dscala-2.10
With LGPL dependencies:
mvn clean package -DskipTests -Prelease,lgpl -Dignite.edition=fabric-lgpl
With LGPL dependencies and Scala 2.10:
mvn clean package -DskipTests -Prelease,lgpl -Dignite.edition=fabric-lgpl -Dscala-2.10
With Apache Ignite.NET:
Build Apache Ignite.NET as described at modules/platforms/dotnet/DEVNOTES.txt.
Then build Ignite Fabric with Apache Ignite.NET:
mvn clean package -DskipTests -DclientDocs
Note that 'doxygen' should be installed before running this command.
Look for apache-ignite-fabric-<version>-bin.zip in ./target/bin directory.
NOTE: JDK version should be 1.7.0-* or >= 1.8.0-u40.
Schema Import module use JavaFX, under OpenJDK may be compiled and run only on OpenJDK 8 with installed OpenJFX.
Ignite Hadoop Accelerator Maven Build Instructions
============================================
mvn clean package -DskipTests -Dignite.edition=hadoop [-Dhadoop.version=X.X.X] [-Dspark.version=x.y.z]
Use 'hadoop.version' parameter to build Ignite against a specific Hadoop version.
Use 'spark.version' parameter to build ignite-spark module for a specific Spark version.
Look for apache-ignite-hadoop-<version>-bin.zip in ./target/bin directory. Resulting binary
assembly will also include integration module for Apache Spark.
NOTE: JDK version should be 1.7.0-* or >= 1.8.0-u40.
Ignite C++ Build Instructions
======================================
Instructions can be found at modules/platforms/cpp/DEVNOTES.txt.
Ignite Release Instructions
===========================
Use your people.apache.org/keys/committer/<username>.asc key to generate KEYS file.
Download https://dist.apache.org/repos/dist/release/ignite/KEYS and append you key using commands:
gpg --list-sigs <keyname> >> KEYS
gpg --armor --export <keyname> >> KEYS
Upload modified KEYS file.
Specify gpg profile at settings.xml. It will be used to sign sources and artifacts.
<profile>
<id>gpg</id>
<properties>
<gpg.keyname>keyname</gpg.keyname>
<gpg.passphrase>passphrase</gpg.passphrase>
</properties>
</profile>
Ensure you have RELEASE (not SNAPSHOT) version at Ignite poms.
Maven release plugin release:prepare goal can be used to make release tag.
Deploy Ignite release candidate to maven repository and dev-svn, make tag:
Following command deploys Ignite to maven repository, prepares sources and fabric edition binaries.
mvn deploy -P apache-release,gpg,release,scala,lgpl,deploy-ignite-site -Dignite.edition=fabric -DskipTests -B
In case you want to release both fabric and hadoop editions you have to build hadoop edition first using command
mvn package -P apache-release,gpg,release,scala,lgpl -Dignite.edition=hadoop -DskipTests -B
save /target/bin/*.zip, make "mvn clean" and restore saved files before deploying fabric.
Binary artifact name can be changed by setting additional property -Dignite.zip.pattern. Binary artifact will be
created inside /target/bin folder when release profile is used.
Sources artifact name is fixed. Sources artifact will be created inside /target dir when apache-release profile is used.
Nexus staging (repository.apache.org) should be closed with appropriate comment contains release version and
release candidate number, for example "Apache Ignite 1.0.0-rc7", when mvn deploy finished.
Checkout https://dist.apache.org/repos/dist/dev/ignite svn. Create release candidate folder with name
equals to release version with "-rc*" ending, for example "1.0.0-rc7", at svn root.
Copy /target/site folder content to svn/ignite/<rc-version> folder and commit with appropriate comment.
Make appropriate git tag for release candidate, for example "ignite-X.Y.Z-rc1".
Start vote based on https://dist.apache.org/repos/dist/dev/ignite/<rc-version>.
Release nexus staging, move binaries and sources from https://dist.apache.org/repos/dist/dev/ignite/<rc-version>
to https://dist.apache.org/repos/dist/release/ignite/<version> when version accepted.
Use svn mv ^/dev/ignite/<rc-version> ^/release/ignite/<version> command for proper moving.
Make appropriate git tag for released version, for example "ignite-X.Y.Z".
Send an email to dev@ignite.apache.org contains release svn url.
JCache TCK compliance
======================
To test compliance with JCache TCK use:
mvn test -P-release,jcache-tck -pl :ignite-core -am
Ignite Mesos Maven Build Instructions
============================================
cd to ./modules/mesos
mvn clean package
Look for ignite-mesos-<version>.jar in ./target directory.
Ignite Yarn Maven Build Instructions
============================================
cd to ./modules/yarn
mvn clean package
Look for ignite-yarn-<version>.jar in ./target directory.
Run tests
==========
To run tests locally use:
mvn clean test -U -Plgpl,examples,-clean-libs,-release -Dmaven.test.failure.ignore=true -DfailIfNoTests=false -Dtest=%TEST_PATTERN%
For example, %TEST_PATTERN% can be 'org.apache.ignite.testsuites.IgniteBasicTestSuite' or 'GridCacheLocalAtomicFullApiSelfTest#testGet'
Apache RAT Instructions
=======================
To check license headers use:
mvn clean validate -Pcheck-licenses
For more information (e.g. exclude list) see "check-licenses" profile in "parent/pom.xml".
Useful Release Commands
========================
ZIP: zip -r9 apache-ignite-X.X.X-src.zip apache-ignite-X.X.X-src
GPG: gpg --armor --output apache-ignite-X.X.X-src.zip.asc --detach-sig apache-ignite-X.X.X-src.zip