diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..f07b584f
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,96 @@
+# Contributing Guidelines
+
+Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
+documentation, we greatly value feedback and contributions from our community.
+
+Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
+information to effectively respond to your bug report or contribution.
+
+
+## Reporting Bugs/Feature Requests
+
+We welcome you to use the GitHub issue tracker to report bugs or suggest features.
+
+When filing an issue, please check [existing open](https://github.com/aws/sagemaker-tensorflow-training-toolkit/issues), or [recently closed](https://github.com/aws/sagemaker-tensorflow-training-toolkit/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20), issues to make sure somebody else hasn't already
+reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
+
+* A reproducible test case or series of steps
+* The version of our code being used
+* Any modifications you've made relevant to the bug
+* Anything unusual about your environment or deployment
+
+
+## Contributing via Pull Requests
+Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
+
+1. You are working against the latest source on the *master* branch.
+2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
+3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
+
+To send us a pull request, please:
+
+1. Fork the repository.
+2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
+3. Ensure local tests pass.
+4. Commit to your fork using clear commit messages.
+5. Send us a pull request, answering any default questions in the pull request interface.
+6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
+
+GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
+[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
+
+
+### Committing your change
+
+We use commit messages to update the project version number and generate changelog entries, so it's important for them to follow the right format. Valid commit messages include a prefix, separated from the rest of the message by a colon and a space. Here are a few examples:
+
+```
+feature: support VPC config for hyperparameter tuning
+fix: fix flake8 errors
+documentation: add README documentation
+```
+
+Valid prefixes are listed in the table below.
+
+| Prefix | Use for... |
+|----------------:|:-----------------------------------------------------------------------------------------------|
+| `breaking` | Incompatible API changes. |
+| `deprecation` | Deprecating an existing API or feature, or removing something that was previously deprecated. |
+| `feature` | Adding a new feature. |
+| `fix` | Bug fixes. |
+| `change` | Any other code change. |
+| `documentation` | Documentation changes. |
+
+Some of the prefixes allow abbreviation ; `break`, `feat`, `depr`, and `doc` are all valid. If you omit a prefix, the commit will be treated as a `change`.
+
+For the rest of the message, use imperative style and keep things concise but informative. See [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/) for guidance.
+
+
+### Sending a pull request
+
+GitHub provides additional document on [creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
+
+Please remember to:
+* Use commit messages (and PR titles) that follow the guidelines under [Committing your change](#committing-your-change).
+* Send us a pull request, answering any default questions in the pull request interface.
+* Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
+
+## Finding contributions to work on
+Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/aws/sagemaker-tensorflow-training-toolkit/labels/help%20wanted) issues is a great place to start.
+
+
+## Code of Conduct
+This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
+For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
+opensource-codeofconduct@amazon.com with any additional questions or comments.
+
+
+## Security issue notifications
+If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.
+
+
+## Licensing
+
+See the [LICENSE](https://github.com/aws/sagemaker-tensorflow-training-toolkit/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
+
+We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
diff --git a/README.rst b/README.rst
index 6e6d5f25..864b2756 100644
--- a/README.rst
+++ b/README.rst
@@ -5,6 +5,8 @@ SageMaker TensorFlow Training Toolkit
The SageMaker TensorFlow Training Toolkit is an open source library for making the
TensorFlow framework run on `Amazon SageMaker `__.
+This toolkit depends and extends the base `SageMaker Training Toolkit `__ with TensorFlow specific support.
+
This repository also contains Dockerfiles which install this library, TensorFlow, and dependencies
for building SageMaker TensorFlow images.
diff --git a/tox.ini b/tox.ini
index aafda72d..bb7bd60e 100644
--- a/tox.ini
+++ b/tox.ini
@@ -68,7 +68,7 @@ deps = .[test]
[testenv:flake8]
basepython = python
deps =
- flake8
+ flake8==4.0.1
flake8-future-import
flake8-import-order
commands = flake8