<div dir="ltr"><pre lang="plaintext"><span id="m_-3227220427575423451gmail-LC1" lang="plaintext">Dear Dune developers,</span>
<span id="m_-3227220427575423451gmail-LC2" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC3" lang="plaintext">TL;DR: Steffen is leaving academia at the end of the year. The Heidelberg group needs your help in reconsidering/redistributing maintenance work previously carried out by him.</span>
<span id="m_-3227220427575423451gmail-LC4" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC5" lang="plaintext">This email is sent to you by the Heidelberg Dune Core Developers: Peter, Steffen and Dominic.</span>
<span id="m_-3227220427575423451gmail-LC6" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC7" lang="plaintext">If you have seen Steffen's email to the list, you know that he will be leaving academia at the end of the year.</span>
<span id="m_-3227220427575423451gmail-LC8" lang="plaintext">For the Heidelberg group this is a drastic change, as we do not only lose a valuable mentor, but also need to reorganize our group processes w.r.t. server/software maintenance.</span>
<span id="m_-3227220427575423451gmail-LC9" lang="plaintext">Discussion of the topic has shown that the Heidelberg group does not have the manpower and expertise to continue to provide all the services we currently do.</span>
<span id="m_-3227220427575423451gmail-LC10" lang="plaintext">We therefore think that this is a good point in time to discuss these services with the aim of either distributing parts of the workload to other people or - even better - simplify the maintenance overhead of our infrastructure by switching to simpler, external solutions.</span>
<span id="m_-3227220427575423451gmail-LC11" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC12" lang="plaintext">This is a summary of services we currently supply and the opinion of the Heidelberg group on how to proceed with them.</span>
<span id="m_-3227220427575423451gmail-LC13" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC14" lang="plaintext"><a href="http://gitlab.dune-project.org" target="_blank">gitlab.dune-project.org</a></span>
<span id="m_-3227220427575423451gmail-LC15" lang="plaintext">-----------------------</span>
<span id="m_-3227220427575423451gmail-LC16" lang="plaintext">Currently, the Dune GitLab instance is running on our webserver and has a few customizations applied to it (whitespace hook and better formatting for merge commit messages).</span>
<span id="m_-3227220427575423451gmail-LC17" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC18" lang="plaintext">The current GitLab setup in Heidelberg is too complicated to maintain with our resources in the future. We see two options:</span>
<span id="m_-3227220427575423451gmail-LC19" lang="plaintext">- Find another volunteer that does the hosting</span>
<span id="m_-3227220427575423451gmail-LC20" lang="plaintext">- Move to <a href="http://gitlab.com" target="_blank">gitlab.com</a></span>
<span id="m_-3227220427575423451gmail-LC21" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC22" lang="plaintext">If we move to another hosted instance that we can run exclusively for Dune, the move is straightforward and we can simply</span>
<span id="m_-3227220427575423451gmail-LC23" lang="plaintext">do a backup of the old server and a restore of the new one.</span>
<span id="m_-3227220427575423451gmail-LC24" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC25" lang="plaintext">Moving to a shared hosting (either somewhere on-premise or on <a href="http://gitlab.com" target="_blank">gitlab.com</a>) would have some implications:</span>
<span id="m_-3227220427575423451gmail-LC26" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC27" lang="plaintext">- It would of course change the URLs for all repositories, e.g:</span>
<span id="m_-3227220427575423451gmail-LC28" lang="plaintext">    <a href="https://gitlab.dune-project.org/core/dune-common" target="_blank">https://gitlab.dune-project.org/core/dune-common</a> -> <a href="https://gitlab.com/dune-project/core/dune-common" target="_blank">https://gitlab.com/dune-project/core/dune-common</a></span>
<span id="m_-3227220427575423451gmail-LC29" lang="plaintext">- <a href="http://gitlab.com" target="_blank">gitlab.com</a> enforces quotas for all projects, and these apply to both free and enterprise projects. Currently they</span>
<span id="m_-3227220427575423451gmail-LC30" lang="plaintext">  are set at 10 GiB per project, which is shared across the actual Git repository, LFS, the wiki, uploaded attachments and</span>
<span id="m_-3227220427575423451gmail-LC31" lang="plaintext">  build artefacts. The container registry currently has no restrictions. At the moment, all of our repositories fit</span>
<span id="m_-3227220427575423451gmail-LC32" lang="plaintext">  within those restrictions.</span>
<span id="m_-3227220427575423451gmail-LC33" lang="plaintext">- We can export the projects from our server and import them into <a href="http://gitlab.com" target="_blank">gitlab.com</a>. This preserves the LFS data as well as all issues</span>
<span id="m_-3227220427575423451gmail-LC34" lang="plaintext">  and merge requests, but the import reassigns all issues, merge requests and comments to the user who performed the import. The</span>
<span id="m_-3227220427575423451gmail-LC35" lang="plaintext">  <a href="http://gitlab.com" target="_blank">gitlab.com</a> importer adds a line to each comment with the original author, but that information is missing from the issue and</span>
<span id="m_-3227220427575423451gmail-LC36" lang="plaintext">  merge request descriptions. It would however be possible to manually patch it in with a bit of PostgreSQL scripting. You</span>
<span id="m_-3227220427575423451gmail-LC37" lang="plaintext">  can take a look at <a href="https://gitlab.com/dune-project/test/dune-common" target="_blank">https://gitlab.com/dune-project/test/dune-common</a> for what it looks like without this additional patching<br>  (of course we would use a dedicated Importer-User for the actual import and not Steffen's account).</span>
<span id="m_-3227220427575423451gmail-LC38" lang="plaintext">- We would have to look at the current build process of the website, which runs up against a stricter <a href="http://gitlab.com" target="_blank">gitlab.com</a> quota regarding</span>
<span id="m_-3227220427575423451gmail-LC39" lang="plaintext">  build artefacts.</span>
<span id="m_-3227220427575423451gmail-LC40" lang="plaintext">- All projects must be moved one at a time, but this could be scripted. We would, however, probably not move personal projects</span>
<span id="m_-3227220427575423451gmail-LC41" lang="plaintext">  and instead give people time to move them themselves to wherever they want.</span>
<span id="m_-3227220427575423451gmail-LC42" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC43" lang="plaintext">Heidelberg opinion:</span>
<span id="m_-3227220427575423451gmail-LC44" lang="plaintext">In the last years, Gitlab has grown to be one of the major players in the field.</span>
<span id="m_-3227220427575423451gmail-LC45" lang="plaintext">Moving our repositories to its cloud-based version at <a href="http://gitlab.com" target="_blank">gitlab.com</a> would remove all our maintenance overhead while maintaining our issue/MR history</span>
<span id="m_-3227220427575423451gmail-LC46" lang="plaintext">(with the restrictions regarding authorship listed above) and workflows.</span>
<span id="m_-3227220427575423451gmail-LC47" lang="plaintext">Using Gitlab.com at Community Level (the one we also had on our own instance) is free.</span>
<span id="m_-3227220427575423451gmail-LC48" lang="plaintext">We may even get an upgraded feature set as Gitlab hands out Enterprise Edition licenses for free to open source projects.</span>
<span id="m_-3227220427575423451gmail-LC49" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC50" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC51" lang="plaintext">Mailserver for @<a href="http://dune-project.org" target="_blank">dune-project.org</a></span>
<span id="m_-3227220427575423451gmail-LC52" lang="plaintext">--------------------------------</span>
<span id="m_-3227220427575423451gmail-LC53" lang="plaintext">The mailserver that receives mail addressed to @<a href="http://dune-project.org" target="_blank">dune-project.org</a> is running on our webserver.</span>
<span id="m_-3227220427575423451gmail-LC54" lang="plaintext">This is mainly used for admin mails from Gitlab and signups at services like Let's encrypt, Cloudflare etc.</span>
<span id="m_-3227220427575423451gmail-LC55" lang="plaintext">Personalized email addresses @<a href="http://dune-project.org" target="_blank">dune-project.org</a> have been given out in the past, but are rarely used.</span>
<span id="m_-3227220427575423451gmail-LC56" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC57" lang="plaintext">Heidelberg opinion:</span>
<span id="m_-3227220427575423451gmail-LC58" lang="plaintext">Those email addresses seem to be rarely used and could be removed without harm. Alternatively, we could move the</span>
<span id="m_-3227220427575423451gmail-LC59" lang="plaintext">mail services to some external, cloud-hosted platform if there is someone willing to take care of it.</span>
<span id="m_-3227220427575423451gmail-LC60" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC61" lang="plaintext">Website <a href="http://dune-project.org" target="_blank">dune-project.org</a></span>
<span id="m_-3227220427575423451gmail-LC62" lang="plaintext">------------------------</span>
<span id="m_-3227220427575423451gmail-LC63" lang="plaintext">The website is currently hosted on the group webserver and the deployment process is managed by Gitlab CI.</span>
<span id="m_-3227220427575423451gmail-LC64" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC65" lang="plaintext">Heidelberg opinion:</span>
<span id="m_-3227220427575423451gmail-LC66" lang="plaintext">We can continue hosting the website, but it might also be a good idea to offload that task to an external service</span>
<span id="m_-3227220427575423451gmail-LC67" lang="plaintext">to improve reliability and uptime.</span>
<span id="m_-3227220427575423451gmail-LC68" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC69" lang="plaintext">One idea (if moving to <a href="http://gitlab.com" target="_blank">gitlab.com</a>) would be to use Gitlab pages, which allows to serve static websites</span>
<span id="m_-3227220427575423451gmail-LC70" lang="plaintext">(cf. <a href="https://about.gitlab.com/blog/2016/04/07/gitlab-pages-setup" target="_blank">https://about.gitlab.com/blog/2016/04/07/gitlab-pages-setup</a>) and is free.</span>
<span id="m_-3227220427575423451gmail-LC71" lang="plaintext">The deployment process could stay in Gitlab CI and we can continue to provide the runner that</span>
<span id="m_-3227220427575423451gmail-LC72" lang="plaintext">performs this specific task (we need it anyway because our group website works similar).</span>
<span id="m_-3227220427575423451gmail-LC73" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC74" lang="plaintext">Continuous Integration</span>
<span id="m_-3227220427575423451gmail-LC75" lang="plaintext">----------------------</span>
<span id="m_-3227220427575423451gmail-LC76" lang="plaintext">Currently, several groups contribute hardware to the Dune CI system by registering runners to our Gitlab instance.</span>
<span id="m_-3227220427575423451gmail-LC77" lang="plaintext">The Heidelberg group also contributes 4 servers to this system.</span>
<span id="m_-3227220427575423451gmail-LC78" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC79" lang="plaintext">Heidelberg opinion:</span>
<span id="m_-3227220427575423451gmail-LC80" lang="plaintext">The distributed nature of the CI system is well-suited for the future.</span>
<span id="m_-3227220427575423451gmail-LC81" lang="plaintext">We will continue to provide this hardware but restructure our servers to remove some moving parts.</span>
<span id="m_-3227220427575423451gmail-LC82" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC83" lang="plaintext">Docker in Docker Continuous Integration</span>
<span id="m_-3227220427575423451gmail-LC84" lang="plaintext">---------------------------------------</span>
<span id="m_-3227220427575423451gmail-LC85" lang="plaintext">The build process for Docker images from the repository <a href="https://gitlab.dune-project.org/docker/ci" target="_blank">https://gitlab.dune-project.org/docker/ci</a></span>
<span id="m_-3227220427575423451gmail-LC86" lang="plaintext">is a very special CI job, as it requires a Docker in Docker setup on the runner side.</span>
<span id="m_-3227220427575423451gmail-LC87" lang="plaintext">Such setups are prone to security issues as malicious code could escape the Docker sandbox.</span>
<span id="m_-3227220427575423451gmail-LC88" lang="plaintext">We currently provide this runner in Heidelberg.</span>
<span id="m_-3227220427575423451gmail-LC89" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC90" lang="plaintext">Heidelberg opinion:</span>
<span id="m_-3227220427575423451gmail-LC91" lang="plaintext">While we can continue to provide this service for the immediate future, we would love to not have to maintain</span>
<span id="m_-3227220427575423451gmail-LC92" lang="plaintext">the DinD-setup anymore.</span>
<span id="m_-3227220427575423451gmail-LC93" lang="plaintext">We consider it worthwhile to move the building of Docker images to a dedicated service. There are multiple options</span>
<span id="m_-3227220427575423451gmail-LC94" lang="plaintext">here that would work and that would need discussing. Using external services at the Dune scale is not free,</span>
<span id="m_-3227220427575423451gmail-LC95" lang="plaintext">but neither is maintaining the process at university.</span>
<span id="m_-3227220427575423451gmail-LC96" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC97" lang="plaintext">DNS for <a href="http://dune-project.org" target="_blank">dune-project.org</a></span>
<span id="m_-3227220427575423451gmail-LC98" lang="plaintext">------------------------</span>
<span id="m_-3227220427575423451gmail-LC99" lang="plaintext">The domain <a href="http://dune-project.org" target="_blank">dune-project.org</a> is registered to Peter with the registrar <a href="http://domaindiscount24.de" target="_blank">domaindiscount24.de</a>. The</span>
<span id="m_-3227220427575423451gmail-LC100" lang="plaintext">actual DNS servers are delegated to Cloudflare. This was done to use DNS validation for obtaining</span>
<span id="m_-3227220427575423451gmail-LC101" lang="plaintext">Let's Encrypt certificates, but could be moved back to <a href="http://domaindiscount24.com" target="_blank">domaindiscount24.com</a> again. Peter will continue</span>
<span id="m_-3227220427575423451gmail-LC102" lang="plaintext">to provide the domain and pay the yearly fee, but we would like to have an additional person with a bit</span>
<span id="m_-3227220427575423451gmail-LC103" lang="plaintext">of knowledge about DNS available when there are problems like the recent mailing list outage, which required</span>
<span id="m_-3227220427575423451gmail-LC104" lang="plaintext">changes to the DNS server.</span>
<span id="m_-3227220427575423451gmail-LC105" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC106" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC107" lang="plaintext">We hope that this email serves as a basis for fruitful discussion.</span>
<span id="m_-3227220427575423451gmail-LC108" lang="plaintext">If discussion becomes unwieldy, we propose to have a telephone conference to resolve these issues more easily.</span>
<span id="m_-3227220427575423451gmail-LC109" lang="plaintext"></span>
<span id="m_-3227220427575423451gmail-LC110" lang="plaintext">Best regards from Heidelberg,</span>
<span id="m_-3227220427575423451gmail-LC111" lang="plaintext">Peter, Steffen and Dominic</span>
</pre></div>