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.