Advanced Research Computing


Research Software Development Tools

Tools enabling researchers to follow best practices when developing research software, including version control and automated testing.

Version control and code collaboration

We recommend GitHub as a service which supports code management and collaboration. GitHub are the leading providers of cloud-based source code management and collaboration tools, including great support for version control, issue tracking, and code review, as well as the ability to manage software documentation and websites linked to the source code. Open source repositories carry no cost on GitHub and secure, private repositories are free for non-profit research.

Automated integration and testing

An important step to achieving reliability in a research software project is to develop a suite of tests alongside the software which can be run at regular intervals to ensure that it builds, runs, and produces correct and consistent results. A Continuous Integration (CI) server is configured to build the code and execute tests and report any failures. ARC recommends the use of GitHub Actions, a cloud-based service that can be configured to test pull requests on Github and report status back directly in the Github interface. GitHub have extensive documentation for setting up continuous integration with GitHub actions.

Research Software Dashboard

This service aims to promote research software as a first-class research output, alongside publications and data, by providing an online inventory for researchers to share information about their software, linked to funding and publication databases. Features and benefits of the service include: integration with IRIS so that your software will appear as a research output in your public profile; link your software to publications (in RPS) and grants to show how coding contributes to research; and integration with online code repositories and CI systems to get a quick overview of the state of your software project. You decide whether to share information about your software with the world, or just UCL colleagues.