Development tools and practices#

SKA git repositories#

The SKA uses git as its distributed version control system, and all SKA code shall be hosted in an SKA organisation. The gitlab organization ska-telescope can be found at ska-telescope. All SKA developers must have a gitlab account and be added to the organisation. See Working with GitLab for further details.

Working with SKA Jira#

Every team is tracking daily work in a team-based project on our JIRA server at https://jira.skatelescope.org. Our internal wiki, Confluence, has guidance on how we use JIRA. We rely on integrations between GitLab and JIRA to manage our work.

CI/CD: Continuous Integration and Deployment#

CI/CD is at the heart of SKA development, and we use GitLab’s automation extensively, so we can test and deploy our software more efficiently.

Testing#

Tests are a key part of producing working software. We suggest you look at our Software Testing Policy and Strategy, and our BDD testing guide and BDD Walkthrough.

Test Infrastructure#

To support our testing and CI/CD pipelines, we have the multiple kubernetes clusters configured to allow testing to happen.

Containerisation#

To facilitate code portability and reliability and test running, we use containers. We also use kubernetes as our container orchestration system.

Documentation#

While we prefer working code over documentation (as Agile developers), we also recognise that this is a large and long-lived project, so documentation has an important place.

Package Release Process#

What you need to know in order to release an SKA software package.

Logging#

Making sure your software project outputs useful logs for the SKA

Monitoring Dashboards#

You’ve deployed your code on one of our test systems. Now you want to monitor it.

Bug Reporting#

What to do when you find a bug in SKA code.

Coding Guidelines#

Guidelines to the coding standards we apply in the SKA. Not available for all languages.

FAQ#

Questions frequently asked by developers.