diff --git a/.gitsuper b/.gitsuper
index ed41a60c613c1294746c7f1cb7d1893e081ed58a..f149efcc241a82fa9418eb4e71d50b8f39cff616 100644
--- a/.gitsuper
+++ b/.gitsuper
@@ -1,7 +1,7 @@
 [supermodule]
 remote = git@github.com:dune-community/dune-xt-super.git
 status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
-	 33fc7f40a234a184895dc65091eee504d1a87190 config.opts (heads/master)
+	 5af7224dda0addd6cde1a0073ff93fc9be1f5095 config.opts (heads/master)
 	 8f2c5aba441417bf2c42f22272f538c68a89cc4a dune-alugrid (remotes/origin/releases/2.5)
 	 707acf201d5a754c80f87cc4d71aa36bf29a6e3f dune-common (v2.5.1-9-g707acf20)
 	 e6350271b8d014adab51467a35b6ad8ef48212a0 dune-geometry (v2.5.1-6-ge635027)
@@ -11,14 +11,14 @@ status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
 	 0d757d65e5d57134a7ecf304e35d063f4ccc7116 dune-localfunctions (v2.5.1rc1)
 	 1c43ee1eb2815912ba570917c6f17aa85dc7010c dune-pybindxi (v2.2.1-13-g1c43ee1)
 	 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5)
-	 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest)
+	 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (heads/dune_xt)
 	 8fe883e99c58c9f0c2f92457d546a0ac9f5a9bf9 dune-uggrid (v2.5.2-1-g8fe883e9)
-	 22b33bc19b32a93ea42e3483827fd5d50adc1079 dune-xt-common (heads/master)
-	+c6454e05c174df88a58b1e80729ac661ca94ad37 dune-xt-functions (heads/debian-unstable)
-	 524bc84e9cc86f2f2864ce2823c7a43aaa377875 dune-xt-grid (heads/master)
-	 4bad9ce8823aacf0b9de3295ad17039a02833844 dune-xt-la (heads/master)
+	+1f6938bbfcd86b367db854b8f22765d16aa3df23 dune-xt-common (heads/fix_python_coverage_report)
+	+9c381e5cff0dd37742288651531fb6b470773e48 dune-xt-functions (heads/coverage_upload)
+	+0885a17fce55d5e5d8f5ff32b66a454b3d57a9de dune-xt-grid (heads/coverage_upload)
+	 4bad9ce8823aacf0b9de3295ad17039a02833844 dune-xt-la (heads/coverage_upload)
 	 60cd896bf3f1eb99066563aa1a07113e5a791d47 scripts (remotes/origin/HEAD)
-commit = b59319c7ed9a6e2be7a604259b8d5a3b5351d658
+commit = 3334da25b478cbb7148376bf1eafe904108e2f48
 
 [submodule.bin]
 remote = git@github.com:dune-community/local-bin.git
@@ -28,7 +28,7 @@ commit = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8
 [submodule.config.opts]
 remote = git@github.com:dune-community/config.opts.git
 status = 
-commit = 33fc7f40a234a184895dc65091eee504d1a87190
+commit = 5af7224dda0addd6cde1a0073ff93fc9be1f5095
 
 [submodule.dune-alugrid]
 remote = https://github.com/dune-mirrors/dune-alugrid.git
@@ -76,7 +76,7 @@ status =
 commit = 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c
 
 [submodule.dune-testtools]
-remote = https://github.com/dune-mirrors/dune-testtools.git
+remote = https://github.com/dune-community/dune-testtools
 status = 
 commit = 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79
 
@@ -88,17 +88,17 @@ commit = 8fe883e99c58c9f0c2f92457d546a0ac9f5a9bf9
 [submodule.dune-xt-common]
 remote = git@github.com:dune-community/dune-xt-common.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 22b33bc19b32a93ea42e3483827fd5d50adc1079
+commit = 1f6938bbfcd86b367db854b8f22765d16aa3df23
 
 [submodule.dune-xt-functions]
 remote = git@github.com:dune-community/dune-xt-functions.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = c6454e05c174df88a58b1e80729ac661ca94ad37
+commit = 9c381e5cff0dd37742288651531fb6b470773e48
 
 [submodule.dune-xt-grid]
 remote = git@github.com:dune-community/dune-xt-grid.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 524bc84e9cc86f2f2864ce2823c7a43aaa377875
+commit = 0885a17fce55d5e5d8f5ff32b66a454b3d57a9de
 
 [submodule.dune-xt-la]
 remote = git@github.com:dune-community/dune-xt-la.git
diff --git a/.travis.make_env_file.py b/.travis.make_env_file.py
index f2e925bdb01bd5d371402a58d12c2bb878745fd7..e77c120910f8c5cb251fa582f8fd6e920c7a3128 100644
--- a/.travis.make_env_file.py
+++ b/.travis.make_env_file.py
@@ -5,7 +5,7 @@ from os.path import expanduser
 from shlex import quote
 home = expanduser("~")
 
-prefixes = os.environ.get('ENV_PREFIXES', 'TRAVIS CI encrypt TOKEN TESTS').split(' ')
+prefixes = os.environ.get('ENV_PREFIXES', 'TRAVIS DRONE GITLAB CODECOV CI encrypt TOKEN TESTS').split(' ')
 blacklist = ['TRAVIS_COMMIT_MESSAGE']
 env_file = os.environ.get('ENV_FILE', os.path.join(home, 'env'))
 with open(env_file, 'wt') as env:
diff --git a/.travis.script.bash b/.travis.script.bash
index 82579525536bf5dd448bde598b83e64ff588effc..a9484b0d6e7c6c474922e98cf6f50dd7311a1cbc 100755
--- a/.travis.script.bash
+++ b/.travis.script.bash
@@ -31,4 +31,21 @@ fi
 ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} install | grep -v "Installing"
 ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} package_source
 
+# clang coverage currently disabled for being to mem hungry
+if [[ ${CC} == *"clang"* ]] ; then
+    exit 0
+fi
+
+pushd ${DUNE_BUILD_DIR}/${MY_MODULE}
+COVERAGE_INFO=${PWD}/coverage.info
+lcov --directory . --output-file ${COVERAGE_INFO} -c
+for d in "dune-common" "dune-pybindxi" "dune-geometry"  "dune-istl"  "dune-grid" "dune-alugrid"  "dune-uggrid"  "dune-localfunctions" ; do
+    lcov --directory . --output-file ${COVERAGE_INFO} -r ${COVERAGE_INFO} "${SUPERDIR}/${d}/*"
+done
+lcov --directory . --output-file ${COVERAGE_INFO} -r ${COVERAGE_INFO} "${SUPERDIR}/${MY_MODULE}/dune/xt/*/test/*"
+cd ${SUPERDIR}/${MY_MODULE}
+${OLDPWD}/dune-env pip install codecov
+${OLDPWD}/dune-env codecov -v -X gcov -X coveragepy -F ctest -f ${COVERAGE_INFO} -t ${CODECOV_TOKEN}
+popd
+
 # ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
\ No newline at end of file
diff --git a/.travis.test_python.bash b/.travis.test_python.bash
index 9006594963ed9dc140034d1be3b8b3521ab27043..93c8e211dfd0315f7f7beda5fcfc1f2847593ffe 100755
--- a/.travis.test_python.bash
+++ b/.travis.test_python.bash
@@ -14,4 +14,8 @@ ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD}
 ${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} bindings
 ${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} test_python
 
+cd ${SUPERDIR}/${MY_MODULE}
+${DUNE_BUILD_DIR}/${MY_MODULE}/dune-env pip install codecov
+${DUNE_BUILD_DIR}/${MY_MODULE}/dune-env codecov -X gcov -F pytest -t ${CODECOV_TOKEN}
+
 # ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
\ No newline at end of file