===== Add a new package to SFrame ===== ==== Creating a new package in SFrame ==== A new package is easily created using the scripts that are provided by SFrame. In your analysis directory type sframe_new_package.sh NewPackageName Changing to that directory and typing make compiles the new, but already functional package. ==== Adding the new package to SVN ==== Let's assume your package now does what it's supposed to do. Then it is time to share it with everyone else. Instead of using svn import, consider using svn add because that provides you with better of control of what is being added. The first steps should be the following: mv MyNewPackage MyNewPackage.local svn mkdir svn+ssh://svn.cern.ch/reps/uzhcms/sframe/MyNewPackage -m "creating new package MyNewPackage" svn mkdir svn+ssh://svn.cern.ch/reps/uzhcms/sframe/MyNewPackage/trunk -m "creating trunk for new package MyNewPackage" svn mkdir svn+ssh://svn.cern.ch/reps/uzhcms/sframe/MyNewPackage/tags -m "creating tags for new package MyNewPackage" svn mkdir svn+ssh://svn.cern.ch/reps/uzhcms/sframe/MyNewPackage/branches -m "creating branches for new package MyNewPackage" svn co svn+ssh://svn.cern.ch/reps/uzhcms/sframe/MyNewPackage/trunk MyNewPackage Then copy the needed files from your local copy to the working directory. Add the external package hooks if needed as described above. svn update source setup.sh make Check if your package compiles. make distclean Now add the needed files step by step. Make sure you only add the cxx files from src that are needed (e.g. no Dict files). Same applies for the include directory (don't forget the LinkDef file). Also don't add the dep directory. The only other directories you might need to add are config and proof. Here's an imcomplete list of files that must **not** be added: * *_Dict.cxx * *.so * *.root * all other binary files such as plots * dep directory Once you've added the desired files type svn commit -m "initial revision of MyNewPackage" ==== Testing the new package ==== Delete your checked-out copy of MyNewPackage and check it out again: svn co svn+ssh://svn.cern.ch/reps/desyatfw/CommonAnalysis/YourChoice/MyNewPackage/trunk MyNewPackage cd MyNewPackage source setup.sh make