CASA Source Code Change Control
Page Status: Obsolete - see https://safe.nrao.edu/wiki/bin/view/Software/CASA/CasaSourceCodeChangeControl
This page is written for
- new CASA developers, so they can learn how to work within the CASA source code change control system, and
- existing CASA developers, so we can use the CASA source code change control system consistently.
After reading this page, a CASA developer should understand,
- Which source code change control tool is used by CASA,
- general guidelines for using that tool with CASA, and
- where to find code and data for different parts of CASA.
All code and data required to deliver CASA packages to users shall be kept in source code change control, unless
doing so will create a security issue for any of the organizations hosting CASA development.
CASA uses Subversion
for source code change control.
Note: I have not seen the reasons for selecting Subversion documented.
Learning to use Subversion
Version Control with Subversion
is a freely available tutorial and reference describing the basics of Subversion and how to use the command line tools developed by the Subversion project. Requests for assistance with Subversion are likely to be answered by referring developers to sections of Version Control with Subversion.
Server and Client Software
CASA uses the Subversion server included with Redhat Enterprise Linux 5.9 installation provided by the NRAO Helpdesk on svn.cv.nrao.edu. At this time (2013-03-2), this is Subversion 1.6.11.
CASA uses the version of Subversion client included with either Redhat Enterprise Linux installation provided by the NRAO Helpdesk, or OS X pre-installed on Macs and updated by the NRAO Helpdesk. At this time (2013-03-2), this is Subversion 1.6.11 on both RHEL 5.7 and 6.3, and Subversion 1.6.17 on OS X 10.6, and Subversion 1.6.18 on OS X 10.7 and 10.8.
Any Subversion clients that can communicate with the CASA Subversion server without corrupting data or producing errors on the server are allowed. This includes the command line clients developed by the Subversion project, and any 3rd party Subversion tools, (command line, GUI, web based, whatever) CASA developers find useful.
CASA developers using 3rd party Subversion tools are responsible for using them correctly and ensuring these tools do not create issues for other CASA developers.
CASA Source Code Change Control Repositories
CASA code and data is split between several source code change control repositories based on
- who is responsible for maintaining the code or data, and
- how often the code or data changes.
The goal is to keep everything required to deliver CASA in source code change control while keeping code and data not needed by most developers out of their way.
Repositories below are listed in order of interest to most CASA developers.
Repositories Containing the Majority of CASA Code
- Contains the majority of CASA code that CASA developers work with. This includes:
- distro - contains all CASA data distributed with CASA
- trunk - Contains a developer updateable copy of all CASA data distributed with CASA, as well as most but not all data used in CASA testing.
- Contains source code for all 3rd party libraries used by CASA that we are allowed to redistribute.
There is a proposal to add a new Subversion repository to CASA:
- If approved, this will contain all CASA end-to-end tests and supporting data. This includes:
- existing tests that require a complete CASA build to run, from casa repository above,
- data from casa-data repository above that supports existing tests in the previous line,
- new tests and data that require a complete CASA build to run.
- this proposal is new. This repository does not exist now. Whether we add it or not depends on future plans to improve CASA testing.
Repositories Containing the CASA Single Dish Code
Repositories Containing the CASACORE Main Line of Development
CASA Repository Organization
CASA Subversion repositories are organized mostly per Subversion conventions: