https://gitlab.com/shyft-os/shyft/-/merge_requests/1392
https://gitlab.com/shyft-os/shyft/-/merge_requests/1396
https://gitlab.com/shyft-os/shyft/-/merge_requests/1381
backport for https://gitlab.com/shyft-os/shyft/-/issues/1358
https://gitlab.com/shyft-os/shyft/-/merge_requests/1377
https://gitlab.com/shyft-os/shyft/-/merge_requests/1376
backport of https://gitlab.com/shyft-os/shyft/-/merge_requests/1376
https://gitlab.com/shyft-os/shyft/-/merge_requests/1363