You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by de...@apache.org on 2017/07/07 21:35:11 UTC

systemml git commit: [SYSTEMML-1751] Add snapshot deployment instructions to release guide

Repository: systemml
Updated Branches:
  refs/heads/master 627a6c40d -> 0523cd490


[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/0523cd49
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/0523cd49
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/0523cd49

Branch: refs/heads/master
Commit: 0523cd49067d9f7bd4bbf1ffecbf1c2b297c041c
Parents: 627a6c4
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

----------------------------------------------------------------------
 docs/release-process.md | 119 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 114 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/0523cd49/docs/release-process.md
----------------------------------------------------------------------
diff --git a/docs/release-process.md b/docs/release-process.md
index 36528bd..987ab30 100644
--- a/docs/release-process.md
+++ b/docs/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