Developing in RASCIL

Use the SKA Python Coding Guidelines (http://developer.skatelescope.org/en/latest/development/python-codeguide.html).

Process

  • Use git to make a local clone of the Github respository:

    git clone https://gitlab.com/ska-telescope/external/rascil-main.git
    
  • Make a branch. Use a descriptive name e.g. abc-123-feature_improved_gridding, abc-1231-bugfix_issue_666 (Note that the branch name has to start with a Jira ticket ID)

  • Make whatever changes are needed, including documentation.

  • Always add appropriate test code in the tests directory.

  • Consider adding to the examples area.

  • Push the branch to gitlab. It will then be automatically built and tested on gitlab: https://gitlab.com/ska-telescope/external/rascil-main/-/pipelines

  • Once it builds correctly, submit a merge request.

Design

The RASCIL has been designed in line with the following principles:

  • Data are held in Classes.

  • The Data Classes correspond to familiar concepts in radio astronomy packages e.g. visibility, gaintable, image.

  • The data members of the Data Classes are directly accessible by name e.g. .data, .name, .phasecentre.

  • Direct access to the data members is envisaged.

  • There are no methods attached to the data classes apart from variant constructors as needed.

  • Standalone, stateless functions are used for all processing.

Additions and changes should adhere to these principles.