diff --git a/README.rst b/README.rst
index 888247a4578803b3ce3f40a26d605c0325e75bc5..0805cc44e53181555c78f7bb5d1c92acc1792b15 100644
--- a/README.rst
+++ b/README.rst
@@ -39,6 +39,20 @@ License
 This software is licnesed under the MIT licese (see the :code:`LICENSE.txt`
 file).
 
+Testing
+-------
+
+Tests require Python 2.7, Python 3.2 or later and Tox and are run by running
+:code:`tox`. Also, Travis CI is used to test on multiple Python versions for
+every push.
+
+Release
+-------
+
+Releases require Python 2.7 or Python 3.2 or later and Tox. To release a new
+version bump the version in the :code:`VERSION` file and run :code:`tox -e
+release`.
+
 Author
 ------
 
@@ -52,5 +66,5 @@ TODO
 
 - Fix Travis CI run on Python 3.2
   (https://travis-ci.org/adarnimrod/eb-prune/jobs/187705346).
-- Release to PyPI on tagged commits.
+- Release to PyPI on tagged commits from Travis CI.
 - Add tests using moto.
diff --git a/fabfile.py b/fabfile.py
deleted file mode 100644
index c34c2fa119ddd89ac49e57e02aa64e247947d770..0000000000000000000000000000000000000000
--- a/fabfile.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from __future__ import (absolute_import, division, print_function,
-                        unicode_literals)
-from fabric.api import (local, task, env)
-
-env.use_ssh_config = True
-
-
-@task
-def build():
-    '''Build wheel.'''
-    local('''python setup.py sdist bdist_wheel''')
-
-
-@task
-def clean():
-    '''Clean.'''
-    local('''rm -rf *.pyc *.egg-info build dist''')
-
-
-@task
-def upload():
-    build()
-    local('''twine upload -s dist/*''')
diff --git a/tox.ini b/tox.ini
index bccdba005ef0efcc7a9d1d002867a6845d2782c2..637b451f1863c59fd938da4a75764fbc82ec76bd 100644
--- a/tox.ini
+++ b/tox.ini
@@ -31,6 +31,6 @@ deps =
     twine
     wheel
 commands =
-    sh -c 'git tag -f "$(cat VERSION)"'
+    sh -c 'git tag "$(cat VERSION)" && git push --tags'
     python setup.py bdist_wheel
-#   twine upload --skip-existing dist/*.whl
+    twine upload --skip-existing dist/*.whl