RepositoryThemes         package:reposTools         R Documentation

_R_e_p_o_s_i_t_o_r_y _T_h_e_m_e_s

_D_e_s_c_r_i_p_t_i_o_n:

     Repository themes allow a repository maintainer to specify a set
     of packages within their repository that can be downloaded as a
     collection by other users.  Clients using 'reposTools' can specify
     one of these themes to their installation calls, acquiring the
     particular set of packages listed as being part of the theme.

_B_a_s_i_c _I_n_f_o_r_m_a_t_i_o_n:

     The purpose of repository themes is to allow various subsets of a
     repository's packages to be downloaded easily and conveniently. 
     As the size of a repository grows, there are likely to be small
     collections of packages which have a logical connection to each
     other which users will often want to download together, but it can
     become unwieldy to do so using 'install.packages2' in the
     traditional manner.  By specifying a theme, all the desired
     packages can be downloaded quickly and easily.

     Themes have a basic structure, which is modeled by the class
     'reposTheme-class'.  Every theme has a name to reference it by, a
     description, information about the repository it is a part of, as
     well as a list of 'pkgInfo' objects defining the packages that are
     included in the theme.  This definition is then written in a XML
     file by the repository maintainer (or using the XML authoring
     function 'writeThemesXML') which is in turn read in by the
     'genRepos' function during repository generation to create a
     repository infrastructure file named 'reposThemes.rda' that allows
     client functions to see which themes are available from a
     repository.

     For the client side user, if one uses the 'theme' argument to
     'install.packages2', then 'reposTools' will seek out the specified
     theme(s) in the set of repositories it is instructed to look at
     and download any packages being marked as being part of that
     theme.

_X_M_L _s_t_r_u_c_t_u_r_e:

     The repository theme information is contained in an XML file
     written by the repository maintainer (or 'writeThemesXML') called
     'repThemes.xml'.  The XML structure for a set of repository themes
     is defined as follows.

     The 'repositoryThemes' tag defines the primary XML block that is
     specifying the themes for a particular repository.  Since every
     'repThemes.xml' file corresponds to a particular repository, there
     should only be one of these blocks per file, and it should contain
     all other XML information.

     Every individual theme is contained in a 'theme' tag block. Every
     theme for this particular repository needs to be defined as a
     'theme' block.

     Within every theme are four main subblocks: The 'themeName' tag
     block specifies the name of the theme, the 'themeDesc' tag
     provides for a description of this theme, the 'themeRepos' tag
     specifies the URL of the repository this theme belongs to and the
     'themePackages' tag block specifies what packages are contained
     within that theme. 

     Inside of the 'themePackages' tag block are a series of 'package'
     tag blocks, one for every package in the theme.

     The 'package' blocks contain one or two tags each.  Every
     'package' block has a 'packageName' tag block specifying the name
     of the package, and there is an optional 'packageVersion' tag
     which allows the maintainer to specify a particular version of
     that package.

     An example of a three package theme is below.  Two of the packages
     have versions specified, and one does not.


         <?xml version="1.0"?>
         <repositoryThemes>
            <theme>
              <themeName>Testing</themeName>
              <themeDesc>This is a small test theme</themeDesc>

     <themeRepos>http://www.bioconductor.org/repository/</themeRepos>
              <themePackages>
                <package>
                  <packageName>Biobase</packageName>
                  <packageVersion>1.4.2</packageVersion>
                </package>
                <package>
                  <packageName>ROC</packageName>
                </package>
                <package>
                  <packageName>Ruuid</packageName>
                  <packageVersion>1.3.3</packageVersion>
                </package>
              </themePackages>
           </theme>
         </repositoryThemes>


_A_u_t_h_o_r(_s):

     Jeff Gentry

_S_e_e _A_l_s_o:

     'writeThemesXML', 'install.packages2', 'pkgInfo', 'genRepos'

_E_x_a_m_p_l_e_s:

        ## Need something here

