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

Reply via email to