SKA telescope developer portal

Welcome to the Square Kilometre Array software documentation portal. Whether you are a developer involved in SKA or you are simply one of our many users, all of our software processes and projects are documented in this portal.

Scope

This documentation applies to the bridging phase of the SKA project, further updates and scope changes will be published on this website. Part of the bridging phase goals will be to consolidate and enrich this portal with more detailed information. It is thus anticipated that in this phase the change rate of the documentation will be very frequent.

SKA developer community

SKA software development is managed in an open and transparent way.

A list of the tools we are using to collaborate, together with guidance on how to use them can be found at this confluence page: SKA Guidelines to Remote Working (requires an SKA Confluence account).

Development tools

Working with git

Git is adopted as distributed version control system, and all SKA code shall be hosted in a git repository. The gitlab organization ska-telescope can be found at https://gitlab.com/ska-telescope . All SKA developers must have a gitlab account and be added to the organization as part of a team.

Working with SKA Jira

Every team is tracking daily work in a team-based project on our JIRA server at https://jira.skatelescope.org.

Todo

  • Create a new project
  • Link to issue tracker

Development Environments

Python and Tango development

A completely configured development environment can be set up very easily. This will include TANGO, PyTANGO, docker and properly configured IDEs.

PyCharm and VSCode are two IDEs that can be configured to support python and PyTANGO development activities. You will find detailed instructions and how-tos at:

Development practices followed at SKA

Testing policy and strategy

The SKA testing policy and strategy contains useful guidelines and practices to be followed when developing software for the SKA project.

Definition of Done

The definition of done is used to guide teams in planning and estimating the size of stories and features:

Incident Management

The incident management workflow is used to guide teams in dealing with anomolous conditions that lead to some form of service outage, unexpected system behaviour or degraded system performance:

Development guidelines

Getting Started Guide

A pocket-guide to documentation on adding a new project, development, containerisation and integration.

Fundamental SKA Software & Hardware Description Language Standards

These standards underpin all SKA software development. The canonical copy is held in eB, but the essential information is here:

Python coding guidelines

A Python skeleton project is created for use within the SKA Telescope. This skeleton purpose is to enforce coding best practices and bootstrap the initial project setup. Any development should start by forking this skeleton project and change the appropriate files.

Javascript coding guidelines

A React based javascript skeleton project is created for use within the SKA Telescope. Similar to the Python skeleton above its purpose is to enforce coding best practices and bootstrap the initial project setup for browser based javascript applications.

VHDL coding guidelines

VHDL coding guidelines are described at:

C++ Coding Standards

A CPP skeleton project is created for use within the SKA Telescope. The skeleton purpose is to demonstrate coding best practices, boostrap initial project set up within the SKA Continuous Integration (CI) Framework.

Containerisation Standards

A set of standards, conventions and guidelines for building, integrating and maintaining Container technologies.

Container Orchestration Guidelines

A set of standards, conventions and guidelines for deploying application suites on Container Orchestration technologies.

SKA Software Packaging Procedure

This details a procedure that all SKA developers shall follow to ensure that they make use of the existing CI/CD pipelines to automate the building of their software packages for release.

Hosting a docker image on Nexus

This details steps that all SKA developers shall abide to when building and hosting their docker images on the Nexus registry.

Logging Guidelines

A standard logging format exists for logging in the evolutionary prototype into an ELK stack logging system designed for the SKA software.

GitLab Variables

Enumeration and description of the global variables defined on GitLab used in the CI/CD infrastructure.

Share Your Knowledge

Commitment to opensource

As defined in SKA software standard, SKA software development is committed to opensource, and an open source licensing model is always preferred within SKA software development.

Todo

  • Committment to opensource
  • Exceptions