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.