CMSSW CVSpm Scripts Guide

Complete: 3

Introduction

CVSpm scripts are written in PERL and are used to control the CVS commits/tags. Purpose of this document is to show how to change and deploy these scripts on CMSSW CVS repsitory.

First time installation

These scripts are already in CMSSW CVS. So just skip this part.

How to make changes and publish it on CVS Server

If you need to fix/change some thing for these scripts then follow these steps
  • Checkout CVSpm scripts
    cvs co CVSpm/scripts
    cd CVSpm/scripts
  • Update scripts to the latest published tag
    cvs up -r `grep "V[0-9][0-9]-" .admin/UpdateScripts | tail -1`
  • Update file(s) to CVS HEAD which you want to modify e.g.
    cvs up -A cvspm_acls .admin/UpdateScripts
  • Make your changes, commit, tag and publish the new tag for test
    cvs ci -m "added some changes"
    cvs tag DVxx-xx-xx
    echo DVxx-xx-xx >> .admin/UpdateScripts
    cvs ci -m "Publishing development tag DVxx-xx-xx"
  • After this new scripts will be published in dev area on CMSSW CVS repository (under cvspm/scripts.dev). First test your changes for CMSSW/TESTSubSystem. By default (due to CVSROOT/(commit|tag)info files) when you do any cvs commit/tag for CMSSW/TESTSubSystem then CVSpm scripts from the cvspm/scripts.dev area are executed. Once you are happy with your changes then add an offical tag and publish again e.g.
    cvs tag Vxx-xx-xx
    echo Vxx-xx-xx >> .admin/UpdateScripts
    cvs ci -m "Publishing new tag Vxx-xx-xx"
NOTE: When you modify .admin/UpdateScripts and commit then on CVS server scripts will read the last valid tag in it and based on tag type (DVxx-xx-xx for development tags and Vxx-xx-xx for production tags) it will create a copy in either cvspm/scripts or cvspm/scripts.dev

CVSpm Scripts

This is short description of CVSpm Scripts.
  • cvspm_acls: This script is run at cvs commit. It checks for the access control for the user who did the commit and if successfull then it run some extra commit checks e.g. deletion of files from an official tag, *.root filesize limit, scripts' first line etc. CVSROOT/commitinfo file is used to tell CVS server to run this script for commits
  • cvspm_loginfo: This scripts is run after a successfull commit and basic purpose of it to send out notifications about the commit. CVSROOT/loginfo file is used to tell CVS server to run this script for successfull commits.
  • cvspm_taginfo: This script is executed when one runs cvs tag or cvs rtag. It make sure that user has rights to add an tag. Additionally it prevents any modification in already existing official tags. CVSROOT/taginfo file is used to tell CVS server to run this script for tags.

There are many PERL module which are used by the above scripts

  • CMSHyperNewsForum.pm: For email notifications.

  • CVSpmInit.pm: For setting up the initial env for scripts to avoid the same task done multiple time.

  • CVSChecks.pm: It contains the cvs commit extra checks e.g. *.root filesize limits, scripts first line validation. If more checks need to be added then those should go here.

  • CMSCVSUtils.pm: For checking the user access control for commit/tag.

  • CVSRTagUtils.pm: Used when cvs rtag command is run. It maintains the list of files a tag contains.

  • CMSCVSAdmin.pm: This is used to do CVS admin stuff e.g.
    • Creation of new SubSystem: When CMSSW administrator commits CMSSW/.admin/AddModule file.
    • Creation of new Packages: When Subsystem administrator commits Subsystem/.admin/NewLeaf file.
    • CVS Access Control: When .admin/developers file is modified and commited. Scripts update the CVS Access Control CMS.DataBase under
      • CVSROOT/cvspm/DB/Acl/*/.admin: For administrators
      • CVSROOT/cvspm/DB/Acl/*/.acl: For developers
    • New CVSpm scripts tag deploy: When CVSpm/scripts/.admin/UpdateScripts file is modified and commited.
NOTE: Developers/Administrators of CVSpm/scripts can commit changes for CVSpm/scripts but only CMSSW administrator (explicitly mentioned in the CMSCVSUtils.pm) can commit new tags via CVSpm/scripts/.admin/UpdateScripts file.

Review status

Reviewer/Editor and Date (copy from screen) Comments
ShahzadMuzaffar - 27 Nov 2008 Newly added

Responsible: ResponsibleIndividual
Last reviewed by: Most recent reviewer

Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2013-04-23 - ShahzadMalikMuzaffar
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback