Running a Software Project#

GitLab Development Platform#

ICHEC uses GitLab as a development platform for projects. Although originally associated with version control (git) this platform (which is similar to GitHub) has a variety of tools available for delivering software projects, including:

  • Version control via git

  • Agile project management (Scrum or Kanban)

  • Continuous Integration and build systems

  • Release, Deployment and artifact management

  • Secret and credential management

  • Documentation publishing and wiki

It is a powerful resource - it is well worth understanding everything it can do, it is easy to unnecessarily build something already available on this platform. For more details see the development platforms section

Finding Projects#

You will likely be assigned some projects to work on and will be given direct URLs to their GitLab page. You can also explore projects and search by group and activity.

It is good to use the explorer to research on-going and previous ICHEC projects to benefit from other’s experience and share knowledge across the centre.

Contributing to Projects#

Each project should have a README at its top level - which you can see when navigating to it in GitLab. It may have specific details on how to contribute and who to contact if interested.

You can also refer to the version control guide to understand working with git and GitLab overall.

Ultimately, a typical contribution flow would involve:

  • Getting assigned or creating a ‘GitLab Issue’ which describes a planned change

  • Checking out a local copy of the repository

  • Creating a ‘working branch’ using git

  • Making your change (e.g. modifying some code)

  • Push your ‘working branch’ back to GitLab

  • Creating a ‘Merge Request’ to merge your branch into a development branch, referencing the ‘GitLab Issue’.

  • Merging your code and close the ‘GitLab Issue’

Starting and Managing a Project#

When starting a new project or managing one it may be helpful to refer to the starting a project with GitLab page for some tips and best-practice.

Local Development Tooling#

Most ICHEC staff will be working on Mac, either an Intel (older) or Arm (newer) version. You can check the getting started on Mac guide for setting up a development environment.

Deploying Projects#

Depending on your project needs you may ‘deploy’ simply by uploading a binary somewhere, or you may need to push to a live distributed system.

The ‘deployment guide’ gives some information on different deployment approaches.