Developer Documentation
=======================

This document contains specific instructions for CODA developers.

Commit steps
------------
If your changes impact any of the autogenerated parts, make sure these
get regenerated (all using the autotools build system):

Run 'make doc' to regenerate the documentation with doxygen 1.9.2.

Run 'make dist' to have config.h.cmake.in and coda.h.cmake.in updated to be
in line with config.h.in and coda.h.in.

If any interface in the C library has changed check Fortran, IDL, MATLAB,
Python and Java interfaces for consistency. Use SWIG 4.0.2 to regenerate
Java bindings.

Run 'make indent' using GNU indent (2.2.11) to update the indentation of the C
code. You may have to run it twice to work around flipping indentation choices
of GNU indent.

Release checklist
-----------------
- make sure we have the latest versions embedded for expat, pcre, and zlib
- make sure all 'commit steps' (see above) have been performed
- ensure automake and CMake builds are consistent
- check compiler warnings
- increase CODA version number in configure.ac + CMakeLists.txt
  format version is x.y(.z).
  Increase x for big backward compatibility breaking changes.
  Otherwise, increase y if any features were introduced.
  Only add/increase z for bug fix releases.
- update version number of shared libcoda library (both in configure.ac and
  CMakeLists.txt)
- make sure all documentation is updated accordingly
- update INSTALL and LICENSES
- update README (version number!)
- update CHANGES
