Repository: systemml Updated Branches: refs/heads/gh-pages 0ff267404 -> e6aff89bf
[SYSTEMML-1751] Add snapshot deployment instructions to release guide Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/e6aff89b Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/e6aff89b Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/e6aff89b Branch: refs/heads/gh-pages Commit: e6aff89bfe1b4bfd797f28d570486da6c5105e5b Parents: 0ff2674 Author: Deron Eriksson <de...@us.ibm.com> Authored: Fri Jul 7 14:32:17 2017 -0700 Committer: Deron Eriksson <de...@us.ibm.com> Committed: Fri Jul 7 14:32:17 2017 -0700 ---------------------------------------------------------------------- release-process.md | 119 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 114 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/e6aff89b/release-process.md ---------------------------------------------------------------------- diff --git a/release-process.md b/release-process.md index 36528bd..987ab30 100644 --- a/release-process.md +++ b/release-process.md @@ -27,6 +27,116 @@ limitations under the License. {:toc} +# Snapshot Deployment + +The following instructions describe how to deploy artifacts to the Apache Snapshot Repository during development. + +## Snapshot Deployment Setup + +**Maven Password Encryption** + +Follow the instructions at [https://maven.apache.org/guides/mini/guide-encryption.html](https://maven.apache.org/guides/mini/guide-encryption.html). + +**Create an Encrypted Master Password** + +``` +mvn --encrypt-master-password +``` + +This will generate an encrypted password. Create a `settings-security.xml` file at `~/.m2/settings-security.xml` if it doesn't exist. +Add the encrypted master password to this file. + +``` +<settingsSecurity> + <master>{ENCRYPTED_PASSWORD_GOES_HERE}</master> +</settingsSecurity> +``` + +**Create an Encrypted Version of your Apache Password** + +``` +mvn --encrypt-password +``` + +Add a server entry to your `~/.m2/settings.xml` file (create this file if it doesn't already exist). This server entry will have the +Apache Snapshot ID, your Apache ID, and your encrypted password. + +``` +<settings> + <servers> + <server> + <id>apache.snapshots.https</id> + <username>YOUR_APACHE_ID</username> + <password>{ENCRYPTED_PASSWORD_GOES_HERE}</password> + </server> + </servers> +</settings> +``` + +**Install and Configure GPG** + +On OS X, download GPG from [https://gpgtools.org/](https://gpgtools.org/). One such release is +[https://releases.gpgtools.org/GPG_Suite-2016.08_v2.dmg](https://releases.gpgtools.org/GPG_Suite-2016.08_v2.dmg). + +Install GPG. + +Generate a public/private key pair. For example, you can use your name and Apache email. + +``` +gpg --gen-key +``` + +Your public and private keys can be verified using: + +``` +gpg --list-keys +gpg --list-secret-keys +``` + +**Clone SystemML Repository** + +Since the artifacts will be deployed publicly, you should ensure that the project is completely clean. +The deploy command should not be run on a copy of the project that you develop on. It should be a completely +clean project used only for building and deploying. + +Therefore, create a directory such as: + +``` +mkdir ~/clean-systemml +``` + +In that directory, clone a copy of the project. + +``` +git clone https://github.com/apache/systemml.git +``` + + +## Deploy Artifacts to Snapshot Repository + +Before deploying the latest snapshot artifacts, ensure you have the latest code on the master branch. + +``` +git pull +``` + +In the `pom.xml` file, the `maven-gpg-plugin`'s `sign` goal is bound to the `verify` stage of the Maven lifecycle. +Therefore, you can check that signing works by installing the snapshot to your local Maven repository. + +``` +mvn clean install -DskipTests -Pdistribution +``` + +If this succeeds, you can deploy the snapshot artifacts to the Apache Snapshot Repository using the following: + +``` +mvn clean deploy -DskipTests -Pdistribution +``` + +Verify that the snapshot is now available at +[https://repository.apache.org/content/repositories/snapshots/org/apache/systemml/systemml](https://repository.apache.org/content/repositories/snapshots/org/apache/systemml/systemml). + + # Release Candidate Build and Deployment To be written. (Describe how the release candidate is built, including checksums. Describe how @@ -263,13 +373,12 @@ include 80MB, 800MB, 8GB, and 80GB data sizes. <a href="#release-candidate-checklist">Up to Checklist</a> -The unit tests for NN operators for GPU take a long time to run and are therefor not run as part of the Jenkins build. +The unit tests for NN operators for GPU take a long time to run and are therefore not run as part of the Jenkins build. They must be run before a release. To run them, edit the -[NeuralNetworkOpTests.java|https://github.com/apache/systemml/blob/master/src/test/java/org/apache/sysml/test/gpu/NeuralNetworkOpTests.java] +[NeuralNetworkOpTests.java](https://github.com/apache/systemml/blob/master/src/test/java/org/apache/sysml/test/gpu/NeuralNetworkOpTests.java) file and remove all the `@Ignore` annotations from all the tests. Then run the NN unit tests using mvn verify: -``` -mvn -Dit.test=org.apache.sysml.test.gpu.NeuralNetworkOpTests verify -PgpuTests -``` + + mvn -Dit.test=org.apache.sysml.test.gpu.NeuralNetworkOpTests verify -PgpuTests # Voting