For AIPS++ Developers:

Rename your existing AIPS++ development tree and create a new code directory.

  mv code code-old
  mkdir code

The root of the AIPS++ tree has been renamed to casa. You can choose to keep your old root directory or to create a new root directory casa like:

  cd ..
  mkdir casa
  cd casa
  mkdir code

You will need to create a new local developer tree via mktree.cvs after the local sitemanager has done a new inhale to convert to the "CASA" module.

  cd code
  mktree.cvs

Once you have created the new casa based code tree, copy any files you are working on into the appropriate directory. The following list gives the new packages and the modules they contain:

casa=BasicSL Arrays Containers Exceptions IO Inputs OS Utilities System BasicMath Quanta Logging
scimath=Deconvolution Fitting Functionals Mathematics
tables=Tables LogTables
measures=Measures TableMeasures
fits=FITS
lattices=Lattices LatticeMath
coordinates=Coordinates
components=ComponentModels SpectralComponents
images=Images Wnbt
ms=MeasurementSets
msvis=MSVis
calibration=CalTables
ionosphere=Ionosphere
flagging=Flagging
dish=SDCalibration SDIterators
simulators=Simulators
synthesis=DataSampling IDL MeasurementComponents MeasurementEquations Parallel
graphics=Graphics X11
tasking=Benchmarks Glish Guiutils Tasking Widgets
All DO source files and glish scripts have been moved from the 'package'/implement/'module' directory to appsglish/apps/'application'.

Please use the squiz command to find the new location of a source file in case of any doubt.

To keep the cvs information consistent, it is necessary to copy the CVS/Entries file from the old directory to the new one overriding the CVS/Entries file created by mktree.cvs. If some files have been moved to another directory, it is necessary to copy the relevant lines of the CVS/Entries file.

Do a CVS update for all files you've copied to get the new include paths, etc. in your files. E.g.

  cvs update *.h *.cc
before moving the file. This will merge your file with the system version of the file. You should see that the include guards and include paths have changed. Furthermore, where needed, files in the old aips tree have the reviewed tag filled in with reviewer="UNKNOWN" and date="before2004/08/25".
Please look carefully at the output of the cvs update command.
- Conflicts may arise and need to be resolved.
- Be sure that it reports the correct files as being new. It could happen that you moved an existing file to an incorrect directory making it appear as a new file.

If a file does not already exist in the CVS repository, you need to update its includes manually. Do this by issuing the command:

  dosedincl
It changes the include paths in this directory and recursively in all its subdirectories.
Similarly the include guards in new header files need to be standardized by:
  dosedguard
which does it for all .h files (recursively) or by
  dosedguard_one file
which does it for the given .h file.

Hereafter you can add and commit to the repository as usual.
Please note that it does not harm to execute dosedincl and dosedguard on files that are not new. Nothing should change in them.

Before doing any build, you should have removed all files from your build directories (including the aux directory).

For example, to copy changed and new files in the Coordinates module.

  cd ~/aips++
  # Save the old code tree.
  mv code code-old
  # Create the entire tree.
  mkdir code
  cd code
  mktree.cvs
  # Copy the Coordinates files.
  cd coordinates/implement/Coordinates
  cp ~/aips++/code-old/trial/implement/Coordinates/*.{h,cc} .
  cp ~/aips++/code-old/trial/implement/Coordinates/CVS/Entries CVS
  # Only update the files moved.
  cvs update *.{h,cc}
  # Do the same for its test directory.
  cd test
  cp ~/aips++/code-old/trial/implement/Coordinates/test/*.cc .
  cp ~/aips++/code-old/trial/implement/Coordinates/test/templates .
  cp ~/aips++/code-old/trial/implement/Coordinates/test/CVS/Entries CVS
  # Only update the files moved.
  cvs update *.cc templates
  cd ..
  # Now change the include paths (only needed if there are new files).
  dosedincl
  # Also standardize the include guards (only needed if new files).
  dosedguard