diff --git a/README.rst b/README.rst
index 886f9888eebf36774ca38573488d39e194932809..08b827554042d7a98cd292f5a23f7d2f8797b739 100644
--- a/README.rst
+++ b/README.rst
@@ -16,6 +16,7 @@ Testing is done by running :code:`tox`. Auto-generated code (for now just
 :code:`unshare/constants.py`) is generated by running :code:`make all`. For Mac
 developers there's a Vagrant box defined (it optionally uses
 `vagrant-gatling-rsync <https://github.com/smerrill/vagrant-gatling-rsync>`_).
+Finally, releasing a version is done by running :code:`tox -e release`.
 
 TODO
 ----
diff --git a/Vagrantfile b/Vagrantfile
index 5000998ad402fe6e78497e65798c49602b8db610..c5221535c132dd157cf12be29a9cdab68c778941 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -9,7 +9,7 @@ Vagrant.configure(2) do |config|
   config.vm.synced_folder ".", "/home/vagrant/python-unshare",
     type: "rsync",
     auto: true,
-    rsync__exclude: [".cache", ".tox", "*.egg-info", "*.swp", ".DS_Store", ".idea", "*.pyc", "__pycache__"]
+    rsync__exclude: [".cache", ".tox", "*.egg-info", "*.swp", ".DS_Store", ".idea", "*.pyc", "__pycache__", "dist"]
   config.vm.provision "shell", inline: <<-SHELL
     sudo apt-get update
     sudo apt-get install -yf build-essential linux-libc-dev python-pip python3-pip git
diff --git a/tox.ini b/tox.ini
index 9992870f6645683dd8f5e9f6e22d41cdcdff2350..1e63f79936dd0656f96095e5497bdb712ba82ccc 100644
--- a/tox.ini
+++ b/tox.ini
@@ -15,3 +15,16 @@ commands =
     python setup.py check -m -r -s
     flake8 .
     py.test --verbose
+
+[testenv:release]
+basepython = python
+whitelist_externals =
+    sh
+    git
+deps =
+    twine
+    wheel
+commands =
+    sh -c 'git tag -f $(cat VERSION)'
+    python setup.py bdist_wheel
+#   twine upload --skip-existing dist/*