diff --git a/CHANGES.txt b/CHANGES.txt
index bde6c03..b1f96c1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -26,6 +26,8 @@
 
   IMPROVEMENTS
 
+  HCAT-619 Update HCatalog test/release script with post-release improvements (traviscrawford via gates)
+
   OPTIMIZATIONS
 
   BUG FIXES
diff --git a/build-support/scripts/release.py b/build-support/scripts/release.py
new file mode 100644
index 0000000..a270cc9
--- /dev/null
+++ b/build-support/scripts/release.py
@@ -0,0 +1,117 @@
+#!/usr/bin/env python
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+import os
+import os.path
+import subprocess
+import sys
+
+from optparse import OptionParser
+
+def get_snapshot_version():
+  with open('build.properties') as f:
+    for line in f.readlines():
+      if line.startswith('hcatalog.version='):
+        return line.strip().split('=')[1]
+
+def update_poms(release_version):
+  snapshot_version = get_snapshot_version()
+  for root, dirs, files in os.walk(os.getcwd()):
+    for filename in files:
+      if filename in ['build.properties', 'pom.xml']:
+        abs_filename = os.path.join(root, filename)
+        lines = []
+        with open(abs_filename) as f:
+          for line in f:
+            lines.append(line.replace(snapshot_version, release_version))
+        with open(abs_filename, 'w') as f:
+          f.write(''.join(lines))
+
+def main():
+  parser = OptionParser(usage=('usage: %prog [options])\n\n'
+      'This tool automates HCatalog release-releated tasks, providing '
+      'flexibility around the build and deploy process (useful for '
+      'site-specific customization). For more information, see '
+      'https://cwiki.apache.org/confluence/display/HCATALOG/HowToRelease'))
+  parser.add_option('--dry-run',
+      dest='dry_run',
+      default=False,
+      action='store_true',
+      help=('Perform a release dry run, which appends `dryrun` to the version '
+            'and does not publish artifacts to Maven. (default: %default)'))
+  parser.add_option('--release-version',
+    dest='release_version',
+    default=None,
+    help='HCatalog release version. (default: %default)')
+  parser.add_option('--forrest-home',
+    dest='forrest_home',
+    default='/usr/local/apache-forrest-0.9',
+    help='Path to the Apache Forrest home. (default: %default)')
+  parser.add_option('--mvn-deploy-repo-id',
+    dest='mvn_deploy_repo_id',
+    default='apache.releases.https',
+    help=('Maven repo id to publish to. This id must exist in your '
+          'settings.xml, along with your username/password to publish '
+          'artifacts. For more information, see '
+          'http://maven.apache.org/settings.html#Servers (default: %default)'))
+  parser.add_option('--mvn-deploy-repo-url',
+    dest='mvn_deploy_repo_url',
+    default='https://repository.apache.org/service/local/staging/deploy/maven2',
+    help='Maven repo URL to publish to. (default: %default)')
+  parser.add_option('--ant-args',
+    dest='ant_args',
+    default=None,
+    help=('Extra args for ant, such as overriding something from '
+          '`build.properties`. (default: %default)'))
+  (options, args) = parser.parse_args()
+
+  if len(sys.argv) == 0:
+    parser.print_help()
+    sys.exit(-1)
+
+  if options.release_version is None:
+    print('Required option --release-version not set!')
+    parser.print_help()
+    sys.exit(-1)
+
+  ant_args = []
+  if os.environ.has_key('ANT_ARGS'):
+    ant_args.append(os.environ['ANT_ARGS'])
+  if options.ant_args is not None:
+    ant_args.append(options.ant_args)
+
+  if options.dry_run:
+    options.release_version = '%s-dryrun' % options.release_version
+  else:
+    ant_args.extend([
+      '-Dmvn.deploy.repo.id=%s' % options.mvn_deploy_repo_id,
+      '-Dmvn.deploy.repo.url=%s' % options.mvn_deploy_repo_url,
+    ])
+    os.environ['HCAT_MVN_DEPLOY'] = 'true'
+
+  os.environ['FORREST_HOME'] = options.forrest_home
+  os.environ['ANT_ARGS'] = ' '.join(ant_args)
+
+  update_poms(options.release_version)
+
+  subprocess.Popen(os.path.join(os.path.dirname(__file__), 'test.sh'),
+      env=os.environ, stdout=sys.stdout, stderr=sys.stderr).communicate()
+
+if __name__ == '__main__':
+  main()
diff --git a/build-support/scripts/release.sh b/build-support/scripts/release.sh
deleted file mode 100755
index 2e0ea1a..0000000
--- a/build-support/scripts/release.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you 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.
-
-# HCatalog uses maven for resolving dependencies and publishing artifacts.
-# Maven requires project version numbers be hard-coded in pom.xml files,
-# rather than being typical variables. Tooling in provided by maven to ease
-# managing these version numbers, however, as our build is ant-based
-# we cannot use that tooling. This release script is a workaround to
-# update pom.xml version numbers to properly build release artifacts.
-
-if [ "${HCAT_RELEASE_VERSION}" == "" ]; then
-  echo "Required environment variable HCAT_RELEASE_VERSION not set."
-  exit -1
-fi
-
-snapshot_version=$(awk -F= '/hcatalog.version=/ { print $2 }' build.properties)
-
-find . -name pom.xml -exec sed -i '' "s/${snapshot_version}/${HCAT_RELEASE_VERSION}/" {} \;
-sed -i '' "s/${snapshot_version}/${HCAT_RELEASE_VERSION}/" build.properties
-
-# useful to pass in "-Dtestcase=Foo" to bypass tests when troubleshooting builds
-export ANT_ARGS="${ANT_ARGS}"
-
-./build-support/scripts/test.sh
diff --git a/build-support/scripts/test.sh b/build-support/scripts/test.sh
index 528d2f6..ea15634 100755
--- a/build-support/scripts/test.sh
+++ b/build-support/scripts/test.sh
@@ -55,8 +55,10 @@
 
 # Build and run tests with hadoop20. This must happen afterwards so test results
 # are available for CI to publish.
-cmd='ant -Dtest.junit.output.format=xml clean releaseaudit package test'
+cmd="ant -Dtest.junit.output.format=xml -Dforrest.home=${FORREST_HOME} clean releaseaudit package test"
 if [ "${HUDSON_URL}" == "https://builds.apache.org/" ]; then
   cmd="${cmd} mvn-deploy"
+elif [ "${HCAT_MVN_DEPLOY}" == "true" ]; then
+  cmd="${cmd} mvn-deploy-signed"
 fi
 run_cmd
diff --git a/build.properties b/build.properties
index 7695db1..a335e39 100644
--- a/build.properties
+++ b/build.properties
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-hcatalog.version=0.6.0-SNAPSHOT
+hcatalog.version=1.0-gates
 jar.name=${ant.project.name}-${hcatalog.version}.jar
 hcatalog.jar=${ant.project.name}-${hcatalog.version}.jar
 hcatalog.core.jar=${ant.project.name}-core-${hcatalog.version}.jar
diff --git a/core/pom.xml b/core/pom.xml
index 7ee60f1..4cbbbf6 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.hcatalog</groupId>
         <artifactId>hcatalog</artifactId>
-        <version>0.6.0-SNAPSHOT</version>
+        <version>1.0-gates</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -32,7 +32,7 @@
     <groupId>org.apache.hcatalog</groupId>
     <artifactId>hcatalog-core</artifactId>
     <packaging>jar</packaging>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>1.0-gates</version>
     <name>hcatalog-core</name>
     <url>http://maven.apache.org</url>
 
diff --git a/hcatalog-pig-adapter/pom.xml b/hcatalog-pig-adapter/pom.xml
index c294b31..fa2eea5 100644
--- a/hcatalog-pig-adapter/pom.xml
+++ b/hcatalog-pig-adapter/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.hcatalog</groupId>
         <artifactId>hcatalog</artifactId>
-        <version>0.6.0-SNAPSHOT</version>
+        <version>1.0-gates</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -32,7 +32,7 @@
     <groupId>org.apache.hcatalog</groupId>
     <artifactId>hcatalog-pig-adapter</artifactId>
     <packaging>jar</packaging>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>1.0-gates</version>
     <name>hcatalog-pig-adapter</name>
     <url>http://maven.apache.org</url>
 
diff --git a/pom.xml b/pom.xml
index 12433d4..f818451 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,7 +51,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.hcatalog</groupId>
   <artifactId>hcatalog</artifactId>
-  <version>0.6.0-SNAPSHOT</version>
+  <version>1.0-gates</version>
   <packaging>pom</packaging>
 
   <build>
diff --git a/server-extensions/pom.xml b/server-extensions/pom.xml
index aab7553..3a26b63 100644
--- a/server-extensions/pom.xml
+++ b/server-extensions/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.hcatalog</groupId>
         <artifactId>hcatalog</artifactId>
-        <version>0.6.0-SNAPSHOT</version>
+        <version>1.0-gates</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -32,7 +32,7 @@
     <groupId>org.apache.hcatalog</groupId>
     <artifactId>hcatalog-server-extensions</artifactId>
     <packaging>jar</packaging>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>1.0-gates</version>
     <name>server-extensions</name>
     <url>http://maven.apache.org</url>
 
diff --git a/storage-handlers/hbase/pom.xml b/storage-handlers/hbase/pom.xml
index 3fce57d..6298c08 100644
--- a/storage-handlers/hbase/pom.xml
+++ b/storage-handlers/hbase/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.hcatalog</groupId>
     <artifactId>hcatalog</artifactId>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>1.0-gates</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
@@ -32,7 +32,7 @@
   <groupId>org.apache.hcatalog</groupId>
   <artifactId>hbase-storage-handler</artifactId>
   <packaging>jar</packaging>
-  <version>0.6.0-SNAPSHOT</version>
+  <version>1.0-gates</version>
   <name>hbase-storage-handler</name>
   <url>http://maven.apache.org</url>
 
diff --git a/webhcat/java-client/pom.xml b/webhcat/java-client/pom.xml
index e545221..b1b732c 100644
--- a/webhcat/java-client/pom.xml
+++ b/webhcat/java-client/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.hcatalog</groupId>
         <artifactId>hcatalog</artifactId>
-        <version>0.6.0-SNAPSHOT</version>
+        <version>1.0-gates</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -32,7 +32,7 @@
     <groupId>org.apache.hcatalog</groupId>
     <artifactId>webhcat-java-client</artifactId>
     <packaging>jar</packaging>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>1.0-gates</version>
     <name>webhcat-java-client</name>
     <url>http://maven.apache.org</url>
 
diff --git a/webhcat/svr/pom.xml b/webhcat/svr/pom.xml
index bd270ed..a0dc59e 100644
--- a/webhcat/svr/pom.xml
+++ b/webhcat/svr/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.hcatalog</groupId>
         <artifactId>hcatalog</artifactId>
-        <version>0.6.0-SNAPSHOT</version>
+        <version>1.0-gates</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -32,7 +32,7 @@
     <groupId>org.apache.hcatalog</groupId>
     <artifactId>webhcat</artifactId>
     <packaging>jar</packaging>
-    <version>0.6.0-SNAPSHOT</version>
+    <version>1.0-gates</version>
     <name>webhcat</name>
     <url>http://maven.apache.org</url>
 
