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.
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.
- SKA Code of Conduct
- Onboarding: Welcome to the SKA developer community
- Agile teams and responsibilities
- SKA developer community decision making process
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).
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.
- Create a new project
- Link to issue tracker
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:
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.
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.
A set of standards, conventions and guidelines for building, integrating and maintaining Container technologies.
Working with Docker: Proxy Cache¶
When working with the public Docker Registry service (Docker Hub), it can be necessary to use a Container Image caching mechanism to avoid pull request rate limiting problems.
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.
A standard logging format exists for logging in the evolutionary prototype into an ELK stack logging system designed for the SKA software.
Enumeration and description of the global variables defined on GitLab used in the CI/CD infrastructure.
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.
- Committment to opensource