wiki:ropp_repository

Version 13 (modified by Huw Lewis, 15 years ago) ( diff )

--

The ROPP Repository

The whole ROPP development system is divided into four areas:

  • ropp_src : Deliverable code & supporting development system
  • ropp_bld : Configure & build support scripts, distro builder etc
  • ropp_doc : User and project documentation
  • ropp_test : Test Folder (test system and its results)

The repository for ROPP can be accessed via the Subversion server at the URL

https://svn.grassaf.org/ropp/

For a complete list of Subversion commands see the SVN reference manual

Checking out trunk

To checkout the latest development (trunk) versions:

svn checkout https://svn.grassaf.org/ropp/ropp_src/trunk  ./trunk 
svn checkout https://svn.grassaf.org/ropp/ropp_bld/trunk  ./trunk
svn checkout https://svn.grassaf.org/ropp/ropp_doc/trunk  ./trunk 
svn checkout https://svn.grassaf.org/ropp/ropp_test/trunk ./trunk

This will check out the source code, build support, documentation, and test folder, respectively to the local working directory.

Checking out old release versions

To checkout the older (tagged) release versions:

svn checkout https://svn.grassaf.org/ropp/ropp_src/tags/<ver>  ./<ver>
svn checkout https://svn.grassaf.org/ropp/ropp_bld/tags/<ver>  ./<ver>
svn checkout https://svn.grassaf.org/ropp/ropp_doc/tags/<ver>  ./<ver>
svn checkout https://svn.grassaf.org/ropp/ropp_test/tags/<ver> ./<ver>

This will check out the tagged source code, build support, documentation, and test folder, respectively to the local working directory. Here, <ver> is the tagged release version, e.g. 1.1, 2.0 etc. Note that ropp_bld only has tags set from ROPP release version 2.0.

Tags

A tag is just copy or snapshot of a a particular revision of the repository. In the case of ROPP, a copy taken from the head of trunk at the time that the distribution files for a release were built. You could just as well checkout the revision number instead, but a tag is easier to remember!

Branches

Developments to ROPP should be made from, and committed to, a branch rather than directly to the latest trunk version. This allows changes to be tested before merging the required changes back into the trunk. The trunk therefore represents a stable 'next potential release' state for ROPP. Branches can be temporary and might be for working on resolving a specific Trac Ticket.

Instructions for developers working with branches in ROPP are available here.

Preparation for building

Having checked out ropp_src (trunk, tag or branch) some commands need to be run to locally create intermediate configuration and make files not in the repository, before the configure / make / make install sequence can begin:

aclocal -I m4 --force
automake -a -c
autoconf

These commands need to be repeated in each of the ropp_tools, ropp_io etc modules. Thereafter, if any changes are made to the low-level configure.ac or Makefile.am template files, an autoreconf should be sufficient. The whole sequence needs to be re-run if any .m4 (macro) file is changed.

Developing new code

In order to add a new sub-directory to the ROPP build system within a module it is necessary to edit the AC_CONFIG_FILES list of sub-directory Makefiles in the top-level configure.ac file. It is also necessary to update the SUBDIRS list of subdirectories in the top-level Makefile.am file.

To add any new subroutine files to the build system it is necessary to update the build/Makefile.am file by defining a list of subroutines with a suitable collection name and then adding the collection name to the libropp_<modname>_a_SOURCES list. If any new F90 modules are to be built, the module names should be added to the MODULES listing.

All '.f90' and 'Makefile' files are included in the ROPP distribution as default. In order to include other files (e.g. data files) within the ROPP distribution, it is necessary to explicitly define these as EXTRA_DIST within the Makefile.am file in the appropriate subdirectory.

Having edited configure.ac and or Makefile.am files, type autorconf to generate the corresponding configure or Makefile.in scripts. In order to generate the updated Makefile script it is necessary to run configure, usually from a compiler-specific configuration file with the appropriate compiler flag settings and library paths.

autoreconf
ropp_configure_<compiler>_<architecture>

Writing documentation

A number of word and latex template files are contained in the repository. To access these to your local machine, you can use:

svn co https://svn.grassaf.org/ropp/ropp_doc/trunk/ropp_templates

The word/ directory contains the latest versions of the Word document templates.

The tex/ and bibtex/ directories contain the necessary latex class files and logo image files for generating documents using latex. The GRAS SAF report templates include versions for latex (gsr.cls) and pdflatex (gsr_pdf.cls). The other directories under ropp_doc/trunk contain example Makefiles and top level template files for reference.

The following illustrates how you might add new GRAS SAF report document files to the repository.

  1. Checkout the current GRAS SAF reports repository
    svn co https://svn.grassaf.org/ropp/ropp_doc/trunk/grassaf_report
    
  2. Add a new directory to contain your new GRAS SAF report, and write it! Use the existing reports for templates of setups, Makefiles etc.
    mkdir MyNewGSR/
    ...add report files, figures etc to your local working version 
    
  3. Commit your updates back to the repository
    svn add MyNewGSR
    svn commit
    
Note: See TracWiki for help on using the wiki.