Newer
Older
title: Software Development Infrastructure
title_image: adi-goldstein-mDinBvq1Sfg-unsplash_shrinked.jpg
layout: services/default
author: none
additional_css:
- services/services-page-images.css
excerpt: >-
We provide a sustainable, well integrated and easy to
use technology infrastructure for scientific software.
---
<p>
The HIFIS team offers IT services to all Helmholtz communities
which enable scientists to do research and develop research software in
tight collaboration with other scientists from within Helmholtz.
Offering a sophisticated Software Project Management Platform is an
important prerequisite to achieve this.
The Software Project Management Platform
<a href="https://about.gitlab.com">GitLab</a>
has already become a de-facto standard for many Helmholtz centers
in the past years.
Many centers offer GitLab to their scientists.
In order to bundle resources and foster cross-center collaboration
HIFIS Software offers

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud">Helmholtz GitLab</a>
to all Helmholtz disregarding the center affiliation.
The benefits and synergies of using GitLab are manifold.
Nowadays, research software needs to be open, transparent, reproducible,
accessible, findable, reusable just to name a few desired properties.
We believe that a full-fledged feature-rich open-source software like
GitLab is the right tool to support scientists to develop such software
that adheres to these properties.
</p>
<h1>Features of the Helmholtz GitLab Service</h1>
<div class="image-block">
<img
class="help-image left"
alt="A software developer working with version control."
src="{{ site.directory.images | relative_url }}/services/undraw_version_control_9bpv.svg"
/>
<div>
<h3>Version Control with Git</h3>
<p>

Uwe Jandt (DESY, HIFIS)
committed
One reason for many Helmholtz research centres to have chosen GitLab as
the right tool might be the popularity of the Version Control System
<a href="https://git-scm.com/">Git</a>.
GitLab is using Git under the hood and Git and GitLab interact
with each other seamlessly.
With Version Control scientists are able to keep track of their
changes they make during research software development due to the
fact that Git stores the complete history of changes in the
respective Git repository.
One can jump back and forth in the history and for example inspect
previous versions or even restore previous versions of the software.
GitLab or any other Git-based Software Project Management Platform
offer a central point to exchange code and ideas with others and
render close and fruitful collaboration between scientists.
But what if you already use another Git-based Software
Project Management Platform?
That's perfect, no worries.
GitLab offers an

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/user/project/import/index.md">import wizard</a>
with which researchers can migrate their remote Git repositories
just easily if the necessity arises.
</p>
<p>

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/topics/git/index.md" type="button" class="btn btn-outline-secondary btn-sm">
<i class="fas fa-file-alt"></i> Documentation
</a>
</p>
</div>
</div>
<div class="image-block">
<img
class="help-image right"
alt="A software developer working with GitLab."
src="{{ site.directory.images | relative_url }}/services/undraw_developer_activity_bv83.svg"
/>
<div>
<h3>Project Management with GitLab</h3>
<p>
As mentioned in the previous section, collaboration is such a necessity.
Today, there is literally no research project that is not driven
by collaboration.
Hence, project management is an important task and duty of
researchers in order to make good progress in their research
projects.
GitLab is a specialized tool to support software project management.
It offers

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/user/group/index.md">Groups</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/index.md">Projects</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/issues/index.md">Issue Trackers</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/issue_board.md">Issue/Kanban Boards</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/milestones/index.md">Milestones</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/labels.md">Labels</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/repository/branches/index.md">Branches</a>,
<a href="https://codebase.helmholtz.cloud/help/user/project/merge_requests/index.md">Merge Requests</a>
among many other useful features.
This platform is very open in terms of supported workflows in
research software projects and can be adapted to almost any
practical software development workflow you may think of.

Uwe Jandt (DESY, HIFIS)
committed
Using the <a href="https://codebase.helmholtz.cloud">Helmholtz GitLab Service</a>
makes it easier to see and keep track of the progress of your projects.
</p>
<p>

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/user/project/index.md" type="button" class="btn btn-outline-secondary btn-sm">
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<i class="fas fa-file-alt"></i> Documentation
</a>
</p>
</div>
</div>
<div class="image-block">
<img
class="help-image left"
alt="A software developer watching Continuous Integration pipeline stages."
src="{{ site.directory.images | relative_url }}/services/undraw_check_boxes_m3d0.svg"
/>
<div>
<h3>GitLab Continuous Integration</h3>
<p>
Continuous Integration (CI) is a first-class citizen available free-of-charge
and already activated for all users.
Almost every software product benefits from automated tasks.
CI pipelines can automatically build, test and finally deploy the
software product to a container, package registry or a staging/production
environment on which simulations may run.
Often these automated task are used as quality gates which
need to be passed successfully in order to be able to integrate
the code change into some mainline.
Developers are able to "integrate" their contributions
"continuously" and due to a high level of automation many of the time
consuming tasks don't need to be done manually.
Thus, researchers can focus on doing research and not on doing
tedious tasks again and again.
</p>
<p>

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/ci/index.md" type="button" class="btn btn-outline-secondary btn-sm">
<i class="fas fa-file-alt"></i> Documentation
</a>
</p>
</div>
</div>
<div class="image-block">
<img
class="help-image right"
alt="A container ship carrying some containers."
src="{{ site.directory.images | relative_url }}/services/undraw_Container_ship_ok1c.svg"
/>
<div>
<h3>GitLab Container Registry</h3>
<p>
Containers have become very popular: Gitlab takes that into account
by offering Container Registry very similar to Docker Hub.
Once research software developers build their own images they can
be stored centrally in such a registry for later reuse.
</p>
<p>

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/user/packages/container_registry/index.md" type="button" class="btn btn-outline-secondary btn-sm">
<i class="fas fa-file-alt"></i> Documentation
</a>
</p>
</div>
</div>
<div class="image-block">
<img
class="help-image left"
alt="A software developer inspecting some packages."
src="{{ site.directory.images | relative_url }}/services/undraw_order_delivered_p6ba.svg"
/>
<div>
<h3>GitLab Package Registry</h3>
<p>
Package Registries exist already for a long time, GitLab supports
the most prominent candidates like PyPI (Python), Conan (C++),
Maven (Java), NPM (NodeJS), Composer (PHP), NuGet (.NET), etc.
so that packages can be stored independently from these public
registries. On top GitLab also adds access control to
keep the group of project members manageable.
</p>
<p>

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/user/packages/package_registry/index.md" type="button" class="btn btn-outline-secondary btn-sm">
<i class="fas fa-file-alt"></i> Documentation
</a>
</p>
</div>
</div>
<div class="image-block">
<img
class="help-image right"
alt="A software developer with a bookshelf with some books."
src="{{ site.directory.images | relative_url }}/services/undraw_Bookshelves_re_lxoy.svg"
/>
<div>
<h3>GitLab Pages</h3>
<p>
Additionally, there is a feature called GitLab Pages that can be
used to publish static web sites e.g. your documentation.
Like other features, e.g. GitLab Container andd Package Registries,
GitLab Pages can be used during automation with CI pipelines.
Each time a contribution is made to your project
your documentation is rebuilt including the new changes
and automatically made accessible to anyone with the right permissions.
</p>
<p>

Uwe Jandt (DESY, HIFIS)
committed
<a href="https://codebase.helmholtz.cloud/help/user/project/pages/index.md" type="button" class="btn btn-outline-secondary btn-sm">
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
<i class="fas fa-file-alt"></i> Documentation
</a>
</p>
</div>
</div>
<div class="image-block">
<img
class="help-image left"
alt="A helpdesk agent at his/her desk."
src="{{ site.directory.images | relative_url }}/services/undraw_feeling_proud_qne1.svg"
/>
<div>
<h3>Help and Support</h3>
<p>
Please contact us regarding questions, issues, bugs or ideas
on how to improve the service via the HIFIS Helpdesk.
{% include contact_us/mini.html contact_mail_link=site.contact_mail_for_gitlab %}
{% include helpdesk/mini.html %}
</p>
</div>
</div>
<div class="image-attrib">Images by Katerina Limpitsouni via <a href="https://undraw.co/">undraw.co</a></div>