wiki:Obsolete/Development/Templates/Components

Version 1 (modified by /C=FR/O=CNRS/OU=UMR8607/CN=Michel Jouvin/emailAddress=jouvin@…, 17 years ago) (diff)

--

Updating NCM Components

NCM components are maintained as part of the core Quattor distribution and QWG templates are using them as is. It is important to keep core Quattor distribution and QWG templates in sync with this respect. This page describes the procedure required to properly update NCM Components.

Modifying Component Templates

Templates related to components (located in directory components/xxx where xxx is the component name) must never be modified in place. These files are imported from Quattor CVS and edits made directly in QWG templates will be lost at next update of the component.

If you need to modify these templates (e.g. to add support for a new configuration option), you need to get a copy of Quattor CVS, make your modification and commit your changes in CVS to produce a new version of the component. This requires write access to Quattor CVS : if you don't have such an access, contact the component maintainer (look at config.mk file) or ask for write access on Quattor Project mailin list <project-quattor AT cern.ch>.

If you are not familiar with Quattor build tools, here is the steps required to produce a new version of the component :

  1. Make your modifications keeping the current version number (without committing them), rebuild the component and install you changes. Take care of editing .cin files instead of the real file (component module, doc or templates).
  2. Test your changes : if you modified the component module, it is recommended you install your RPM manually on one node to test it (use ncm-ncd --configure component to execute it). The commands to rebuild the component are :
    make
    make rpm
    
  3. Commit your changes : don't do a CVS commit directly but use make targets. There are 3 targets related to tagging a new release, according to the importance of the change :
    • release for minor modifications without new features (increment r in M.m.r-n)
    • minorversion for significant modifications (including new features) but without major redesign of the component (increment m in M.m.r-n`)
    • majorversion for major changes like component rewrite or incompatible changes with a previous version (increment M in M.m.r-n`).
  4. Rebuild the new version of the component : it is important to do a clean before else TPL/config.tpl may not be updated properly :
    make clean
    make
    make rpm
    

Installing a New Version