diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..fc5b735
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,57 @@
+
+<!---
+# 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.
+-->
+# HBASE Changelog
+
+## Release hbase-filesystem-1.0.0-alpha1 - Unreleased (as of 2019-06-04)
+
+
+
+### NEW FEATURES:
+
+| JIRA | Summary | Priority | Component | Reporter | Contributor |
+|:---- |:---- | :--- |:---- |:---- |:---- |
+| [HBASE-22149](https://issues.apache.org/jira/browse/HBASE-22149) | HBOSS: A FileSystem implementation to provide HBase's required semantics on object stores |  Critical | Filesystem Integration | Sean Mackrory | Sean Mackrory |
+
+
+### IMPROVEMENTS:
+
+| JIRA | Summary | Priority | Component | Reporter | Contributor |
+|:---- |:---- | :--- |:---- |:---- |:---- |
+| [HBASE-22437](https://issues.apache.org/jira/browse/HBASE-22437) | HBOSS: Add Hadoop 2 / 3 profiles |  Major | hboss | Sean Mackrory | Sean Mackrory |
+| [HBASE-22415](https://issues.apache.org/jira/browse/HBASE-22415) | HBOSS: Reduce log verbosity in ZKTreeLockManager when waiting on a parent/child node lock |  Minor | . | Wellington Chevreuil | Wellington Chevreuil |
+
+
+### BUG FIXES:
+
+| JIRA | Summary | Priority | Component | Reporter | Contributor |
+|:---- |:---- | :--- |:---- |:---- |:---- |
+| [HBASE-22386](https://issues.apache.org/jira/browse/HBASE-22386) | HBOSS: Limit depth that listing locks check for other locks |  Major | . | Sean Mackrory | Sean Mackrory |
+| [HBASE-22416](https://issues.apache.org/jira/browse/HBASE-22416) | HBOSS: unit tests fail with ConnectionLoss when IPv6 enabled and not set up locally |  Minor | Filesystem Integration | Josh Elser | Josh Elser |
+| [HBASE-22393](https://issues.apache.org/jira/browse/HBASE-22393) | HBOSS: Shaded external dependencies to avoid conflicts with Hadoop and HBase |  Critical | Filesystem Integration | Sean Mackrory | Sean Mackrory |
+| [HBASE-22427](https://issues.apache.org/jira/browse/HBASE-22427) | HBOSS: TestTreeLockManager fails on non-ZK implementations |  Major | Filesystem Integration | Sean Mackrory | Sean Mackrory |
+
+
+### OTHER:
+
+| JIRA | Summary | Priority | Component | Reporter | Contributor |
+|:---- |:---- | :--- |:---- |:---- |:---- |
+| [HBASE-22493](https://issues.apache.org/jira/browse/HBASE-22493) | HBOSS: Document supported hadoop versions. |  Minor | documentation, hboss | Wellington Chevreuil | Wellington Chevreuil |
+| [HBASE-22515](https://issues.apache.org/jira/browse/HBASE-22515) | Document HBOSS test cases known to fail under Null lock implementation |  Minor | Filesystem Integration | Sean Busbey | Wellington Chevreuil |
+
+
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
new file mode 100644
index 0000000..a9bf5c1
--- /dev/null
+++ b/RELEASENOTES.md
@@ -0,0 +1,53 @@
+
+<!---
+# 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.
+-->
+# HBASE  hbase-filesystem-1.0.0-alpha1 Release Notes
+
+These release notes cover new developer and user-facing incompatibilities, important issues, features, and major improvements.
+
+
+---
+
+* [HBASE-22149](https://issues.apache.org/jira/browse/HBASE-22149) | *Critical* | **HBOSS: A FileSystem implementation to provide HBase's required semantics on object stores**
+
+<!-- markdown -->
+
+Initial implementation of the hbase-oss module. Defines a wrapper implementation of Apache Hadoop's FileSystem interface that bridges the gap between Apache HBase, which assumes that many operations are atomic, and object-store implementations of FileSystem (such as s3a) which inherently cannot provide atomic semantics to those operations natively.
+
+The implementation can be used e.g. with the s3a filesystem by using a root fs like `s3a://bucket/` and defining
+
+* `fs.s3a.impl`  set to `org.apache.hadoop.hbase.oss.HBaseObjectStoreSemantics`
+* `fs.hboss.fs.s3a.impl` set to `org.apache.hadoop.fs.s3a.S3AFileSystem`
+
+more details in the module's README.md
+
+NOTE: This module is labeled with an ALPHA version. It is not considered production ready and makes no promises about compatibility between versions.
+
+
+---
+
+* [HBASE-22393](https://issues.apache.org/jira/browse/HBASE-22393) | *Critical* | **HBOSS: Shaded external dependencies to avoid conflicts with Hadoop and HBase**
+
+<!-- markdown -->
+
+HBOSS now generates a single jar file that can be dropped into an HBase installation. This jar contains the thirdparty dependencies needed for HBOSS's implementation and communication with ZK (for the ZK Lock Manager).
+
+HBOSS still relies on both HBase and Hadoop jars to be present at runtime. It also relies on the slf4j-api jar. It no longer includes an slf4j binding by default.
+
+
+
diff --git a/hbase-oss/pom.xml b/hbase-oss/pom.xml
index 74cbc0a..e21c84d 100644
--- a/hbase-oss/pom.xml
+++ b/hbase-oss/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.apache.hbase.filesystem</groupId>
     <artifactId>hbase-filesystem</artifactId>
-    <version>1.0.0-alpha1-SNAPSHOT</version>
+    <version>1.0.0-alpha1</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>hbase-oss</artifactId>
diff --git a/pom.xml b/pom.xml
index 319c990..97c697d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
 
   <groupId>org.apache.hbase.filesystem</groupId>
   <artifactId>hbase-filesystem</artifactId>
-  <version>1.0.0-alpha1-SNAPSHOT</version>
+  <version>1.0.0-alpha1</version>
 
   <name>Apache HBase FileSystem-related Modules</name>
   <description>
