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.