diff --git a/.gitignore b/.gitignore
index 521fc2b461b75eaee51a2ed0f189b5ba8c49b557..3ac07fc417810bd5def54408dcdf073b9383b478 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,3 +48,4 @@ __pycache__
 MANIFEST
 _skbuild/
 dist
+*.egg-info
diff --git a/pyproject.toml b/pyproject.toml
index 091476c5fcd299ba3fa7c4d28c7c261a1fb99e84..562fd5e7ec1eafe724c9483195224d8b50674ce7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,3 +1,3 @@
 [build-system]
-requires = ['setuptools', 'wheel', 'scikit-build', 'cmake', 'ninja', 'requests', 'dune-common>=2.8.0.dev0', 'dune-grid>=2.8.0.dev0', 'dune-localfunctions>=2.8.0.dev0', 'dune-istl>=2.8.0.dev0', 'dune-alugrid>=2.8.0.dev0']
+requires = ['setuptools', 'wheel', 'scikit-build', 'cmake', 'ninja', 'requests', 'dune-common<=2.8.0.dev20201218', 'dune-grid<=2.8.0.dev20201218', 'dune-localfunctions<=2.8.0.dev20201218', 'dune-istl<=2.8.0.dev20201218']
 build-backend = 'setuptools.build_meta'
diff --git a/setup.py b/setup.py
index 24d51ef9493c88d1c44fc479e05500fb4e0d562e..09b97f44dcb49cdf4afd87a5fdcb7c64c2bbc650 100644
--- a/setup.py
+++ b/setup.py
@@ -1,19 +1,36 @@
 try:
-    from dune.packagemetadata import metaData, Description
+    from dune.packagemetadata import metaData
 except ImportError:
-    from packagemetadata import metaData, Description
+    from packagemetadata import metaData
 from setuptools import find_namespace_packages
 from skbuild import setup
 
-description = Description('dune.module')
-version = description.versionstring.replace('-git', '')
+# When building a new package, update the version numbers below and run:
+# > python setup.py sdist
+# > python -m twine upload dist/*
 
-buildVersion = '.0.dev20201212'
-duneVersion = '2.8' + buildVersion
+dumuxVersion = '3.4.0.dev20210114'
+duneVersion  = '2.8.0.dev20201218'
 
 metadata = metaData(duneVersion)[1]
-metadata['version'] = version + buildVersion
-metadata['long_description'] = metadata['long_description'].replace('doc/logo/dumux_logo_hires_whitebg.png', 'https://dumux.org/images/logo.svg')
+metadata['version'] = dumuxVersion
+metadata['long_description'] = metadata['long_description'].replace(
+    'doc/logo/dumux_logo_hires_whitebg.png',
+    'https://dumux.org/images/logo.svg'
+)
 metadata['packages'] = find_namespace_packages(where='python', include=['dumux.*'])
 
+# auto-generate pyproject.toml with duneVersion when building sdist
+from skbuild.command.sdist import sdist
+class mysdist(sdist):
+    def run(self):
+        requires = ['setuptools', 'wheel', 'scikit-build', 'cmake', 'ninja', 'requests']
+        requires += metadata['install_requires']
+        with open('pyproject.toml', 'w') as f:
+            f.write("[build-system]\n")
+            f.write("requires = ['"+"', '".join(requires)+"']\n")
+            f.write("build-backend = 'setuptools.build_meta'\n")
+        sdist.run(self)
+metadata['cmdclass'] = {'sdist': mysdist}
+
 setup(**metadata)