diff --git a/Jenkinsfile.release b/Jenkinsfile.release
index d2b808c..76b81bf 100644
--- a/Jenkinsfile.release
+++ b/Jenkinsfile.release
@@ -1,16 +1,16 @@
-# Copyright 2017-present Open Networking Foundation
-#
-# Licensed 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.
+// Copyright 2017-present Open Networking Foundation
+//
+// Licensed 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.
 
 def app = ${app}
 def version = ${version}
@@ -32,20 +32,20 @@
 
 node ('master') {
     stage 'Checkout code'
-    #checkout([$class: 'RepoScm', currentBranch: true, manifestRepositoryUrl: 'https://gerrit.opencord.org/manifest', #quiet: true])
+    //checkout([$class: 'RepoScm', currentBranch: true, manifestRepositoryUrl: 'https://gerrit.opencord.org/manifest', quiet: true])
     checkout([$class: 'GitSCM',
         userRemoteConfigs: [[url: 'https://gerrit.opencord.org/' + app]]
     ])
 
     
-    #stage 'Create support branch'
-    # TODO add a sanity check from human
-    #if (checkBranchExists(app, branch) == 0) {
-	#	echo "Branch " + branch + " doesn't exist, creating
-		#createBranch(app, version, 'opencord/master')
-	#} else {
-	#	echo "Support branch " + branch + " already exists"
-	#}
+    //stage 'Create support branch'
+    //TODO add a sanity check from human
+    //if (checkBranchExists(app, branch) == 0) {
+	//	echo "Branch " + branch + " doesn't exist, creating
+		//createBranch(app, version, 'opencord/master')
+	//} else {
+	//	echo "Support branch " + branch + " already exists"
+	//}
 	
 	stage 'Checkout branch'
 	sh 'cd ' + app + ' && git checkout ' + branch
@@ -53,16 +53,16 @@
 	stage 'Bump versions'
 	sh 'cd ' + app + ' && mvn change-version'
 	
-	#stage 'Commit'
+	//stage 'Commit'
 	
-	#stage 'Push to Gerrit'
+	//stage 'Push to Gerrit'
 	
-	#stage 'Tag'
+	//stage 'Tag'
     
-    #stage 'Build and Publish apps'
-    #sh 'cd onos-apps && ./gradlew release'
+    //stage 'Build and Publish apps'
+    //sh 'cd onos-apps && ./gradlew release'
     
-    #stage 'Bump versions forward on branch'
+    //stage 'Bump versions forward on branch'
     
-    #stage 'Bump versions forward on master'
+    //stage 'Bump versions forward on master'
 }
