Workshop: Shell + Git + GitLab @ HZDROnline Event

Europe/Berlin
https://bbb.hzdr.de/b/erx-6j9-eu4

https://bbb.hzdr.de/b/erx-6j9-eu4

The room access code will be sent to the participants via e-mail after the registration period.
Fredo Erxleben (Helmholtz-Zentrum Dresden-Rossendorf), Helene Hoffmann, Steve Schmerler (HZDR)
Description

General Information

Language English
Cost Free of charge
Level Beginner
Registration Period 2021-03-08 to 2021-03-14

 

 

 

 

Registration

You do not need to set up an Indico account to register.

Please note: To allow for a fairer distribution of seats across the various centers, the initial seat count per center has been limited. We encourage those that want to register after the seats for their center have been taken, to register on the waiting list instead. Remaining seats will be distributed among the waiting list according to first-come-first-serve. Persons on the waiting list will be notified regarding their registration status on 2021-03-15.

Code of Conduct

We adhere to the Software Carpentries' Code of Conduct.
You can report violations to

Workshop Content

This workshop is conceptualized as a two-day event that covers the basic tools required for a research software workflow:

  • Working with a command-line interface (Shell) as a foundation for the following tools
  • Employing Git as version control system (VCS) for managing code development workflows
  • Introduction to project management with the GitLab web-platform

Preparations

Participants are asked to make sure they have the necessary rights to install software on their computers.

Installing the Required Tools

For this workshop two tools are required:

  • A Unix-compatible command-line interface (Shell for short)
  • The git tool

You can find detailed installation instructions for each of these tools here.

    • 09:00 09:30
      Organization: Arrival and Set-up 30m
    • 09:30 10:30
      Getting to know the Unix Shell: Working with files and directories

      A quick introduction into the basic operations on the command line as foundation for the following part.

      • 09:30
        Navigating in the file system 30m

        Learn how the file system is organized and how to change the current working directory and how to list a folder's contents.

      • 10:00
        Creating, modifying and removing files and directories 30m

        Create new files using command line tools, change their contents, name and location and learn how to remove them.

    • 10:30 11:00
      Second Breakfeast 30m
    • 11:00 16:30
      Version Control with Git

      Note that we will conduct breaks based on a majority vote. So if learners need more than 1 break, we will have them.

      • 11:00
        Introduction to Version Control 1h 30m

        Understand why version control is important and the guiding principles underlying a version control system. Get to know Git as the most common VCS and set up your own first repository. Set up the basic configuration to identify yourself as the author of your future commits.

      • 12:30
        Lunch 1h
      • 13:30
        Navigating the Version History 1h 30m

        Learn how to create commits as checkpoints for your work. Establish how to write good commit messages. Jump between existing commits to inspect different states of your project and retrieve earlier versions of files.

      • 15:00
        Coffee Break 30m
      • 15:30
        Branching and Merging 1h

        Learn how to use branches to organize multiple ongoing changes. Merge branches to bring completed changes together. Resolve merge conflicts that may occur if multiple changes touch on the same files.

    • 16:30 17:00
      Organization: Wrap-up 30m
    • 09:00 09:30
      Organization: Arrival and Set-up 30m
    • 09:30 16:30
      Project Management with GitLab

      Learn how to use the GitLab Web-Interface to leverage the power of version control and the surrounding workflow.

      • 09:30
        Setting up Projects 30m

        Set up GitLab projects from scratch.

      • 10:00
        Setting Up Authentification 30m

        Configure your authentication using a private/public key pair to establish fundamental security measures and protect your project from unwanted commits by third parties.

      • 10:30
        Second Breakfast 30m
      • 11:00
        Connecting Git and GitLab 30m

        Integrate a local Git repository into a GitLab project. Establish the concept of an origin server.

      • 11:30
        User and Group Management 30m

        Bring more people into your project to enable collaborative work. Organize your projects in groups.

      • 12:00
        The Gitlab Workflow 30m

        Get to know the fundamental workflows to make managed changes to your projects so you can stay organized even if many people work on the same project at the same time.

      • 12:30
        Lunch 1h
      • 13:30
        Issues, Labels, Milestones 1h 30m

        Take a deeper look into using issues to manage tasks and change requests. Use Labels and Milestones to categorize and group and sort those more easily.

      • 15:00
        Coffee Break 30m
      • 15:30
        Merge Requests and Reviews 1h

        Connect the concepts of feature branches with the established issues to complete the workflow. Make reviews to establish quality assurance.

    • 16:30 17:00
      Organization: Wrap-up 30m