Difference: CreateNewPackageSVN (1 vs. 28)

Revision 282017-09-01 - MickMulder

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Line: 83 to 83
 
cd $User_release_area/Analysis_<version>
getpack Phys/FredComponents head
cd Phys/FredComponents/cmt
cmt show uses
cmt make
If everything looks fine you can remove the original version
cd ../..
rm -r _FredComponents
Added:
>
>
Tag the version as v1r0:
tag_package Phys/FredComponents v1r0
 

Finally, the new package can be added to the project

Inform the project manager that the new package is ready to be added to the project itself.

Revision 272016-04-04 - MarcoClemencic

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Line: 98 to 98
 Once the package has been created and is tested, you can import the package in the project of your choice.

Another difference between data packages and code packages, is that in data packages there is no need for a CMakeLists.txt, but you must provide a file describing the environment required to use the package.

Changed:
<
<
The environment is described in an XML file with the name derived from the name of the package like Hat_PackageEnvironment.xml, for example:
  • ParamFiles needs ParamFilesEnvironment.xml
  • Det/SQLDDDB needs Det_SQLDDDBEnvironment.xml
>
>
The environment is described in an XML file with the name derived from the name of the package like Hat_Package.xenv, for example:
  • ParamFiles needs ParamFiles.xenv
  • Det/SQLDDDB needs Det_SQLDDDB.xenv
 You can find examples in LbRelease/data/DataPkgEnvs.

Important: the changes required in the CMake configuration of a project to use a data package are different to those for regular packages. For a data package, you have to update the project CMakeLists.txt to extend the DATA section of the call to gaudi_project (or add one if it was missing). For example (from LHCb):

Revision 262014-09-08 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Line: 66 to 66
 
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir -m "create tags and branches directories for Phys/FredComponents" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "Phys") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.
Added:
>
>
Note: Before creating the SVN directory in the "tags" subdirectory, the package must have been imported to the trunk. If not the pre-commit hook will reject the mkdir, with an error message: Failure: Invalid operation on a tag.
 

Add your new package in the list of known packages in the repository

On a machine where the pico editor is installed (e.g. lxplus, but not lxbuild)
cd $User_release_area
svn co -N svn+ssh://svn.cern.ch/reps/lhcb lhcb_repos
svn pe packages lhcb_repos

Revision 252013-10-08 - RobLambert

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Revision 242013-08-07 - ChristopherRJones

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Line: 86 to 86
 

Finally, the new package can be added to the project

Inform the project manager that the new package is ready to be added to the project itself.
Changed:
<
<
Then tag and add to the tag collector

>
>
Then add to the tag collector
 

Instructions for creating a new Data Package

Revision 232013-07-09 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Line: 143 to 143
 

Make the package available in the nightlies

(example is for a DBASE package, PARAM is the same)
cd $LHCBDEV/nightlies/DBASE
getpack WG/MyDataPackage HEAD
Changed:
<
<
If you don't have write access, ask a release manager to do it for you. When the package is offcially released, it's a good idea to remove this checkout and replace it with a soft link to the release area.
>
>
If you don't have write access, ask a release manager to do it for you. When the package is officially released, it's a good idea to remove this checkout and replace it with a soft link to the release area.
 

-- MarcoCattaneo - 09-Jul-2013

Revision 222013-07-09 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new Package in SVN

Line: 140 to 140
 

Adding the new Data package to LbScripts

Send an email to Ben (ben.couturier@cernNOSPAMPLEASE.ch) in order to add the package to LbScripts
Added:
>
>

Make the package available in the nightlies

(example is for a DBASE package, PARAM is the same)
cd $LHCBDEV/nightlies/DBASE
getpack WG/MyDataPackage HEAD
If you don't have write access, ask a release manager to do it for you. When the package is offcially released, it's a good idea to remove this checkout and replace it with a soft link to the release area.
 
Added:
>
>
-- MarcoCattaneo - 09-Jul-2013
 -- MarcoClemencic - 16-Dec-2009

Revision 202013-04-18 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"
Changed:
<
<

Instructions for creating a new CMT package

>
>

Instructions for creating a new Package in SVN

 
Added:
>
>

Instructions for creating a new Package

 

Choose a name and location for your package

Your package should have a unique name (unique to the LHCb software), so choose a name that is both descriptive and specialized: Components is a bad name, FredComponents is good. You should also choose an LHCb subsystem ("Hat") among existing ones, e.g. Phys if your components are for doing a physics analysis. Please note that the core name (without the hat) of the package has to be unique among the LHCb package list. You can find the full LHCb package list with the command
Line: 112 to 113
 

Import the new package to Subversion

Changed:
<
<
IMPORTANT : Before you import anything into SVN, please discuss your new package with the Core Software Team first, to decide the most appropriate project to commit your new package to: DBASE or PARAM
>
>
IMPORTANT : Before you import anything into SVN, please discuss your new package with the Core Software Team first, to decide the most appropriate project to commit your new package to: DBASE or PARAM (note that for PARAM, the SVN directory is called Param - i.e. in the examples below, replace occurrences of 'DBASE' by 'Param')
  IMPORTANT : Please make sure that the import command is run from inside the directory you want to import:

Revision 192012-12-12 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 34 to 34
 Add some meaningful release notes to explain the purpose of the package, the author etc...
cd ../cmt
emacs requirements
Edit the requirements file, make sure the directories src cmt and doc are specified for your components package
Changed:
<
<
cd ..
emacs CMakeLists.txt
Edit the CMakeLists.txt file
>
>
cd ..
emacs CMakeLists.txt
Edit the CMakeLists.txt file
 
cd cmt
cmt config
Configure the package
Line: 100 to 100
 
  • Det/SQLDDDB needs Det_SQLDDDBEnvironment.xml
You can find examples in LbRelease/data/DataPkgEnvs.
Changed:
<
<
Important: the changes required in the CMake configuration of a project to use a data package are different to those for regular packages. For a data package, you have to update the project CMakeLists.txt to extend the DATA section of the call to gaudi_project (or add one if it was missing). For example (from LHCb):
>
>
Important: the changes required in the CMake configuration of a project to use a data package are different to those for regular packages. For a data package, you have to update the project CMakeLists.txt to extend the DATA section of the call to gaudi_project (or add one if it was missing). For example (from LHCb):
 
gaudi_project(LHCb v35r3

Revision 182012-12-10 - MarcoClemencic

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 100 to 100
 
  • Det/SQLDDDB needs Det_SQLDDDBEnvironment.xml
You can find examples in LbRelease/data/DataPkgEnvs.
Added:
>
>
Important: the changes required in the CMake configuration of a project to use a data package are different to those for regular packages. For a data package, you have to update the project CMakeLists.txt to extend the DATA section of the call to gaudi_project (or add one if it was missing). For example (from LHCb):

gaudi_project(LHCb v35r3
              USE Gaudi v23r5
              DATA Det/SQLDDDB VERSION v7r*
                   FieldMap
                   TCK/HltTCK)
 

Import the new package to Subversion

IMPORTANT : Before you import anything into SVN, please discuss your new package with the Core Software Team first, to decide the most appropriate project to commit your new package to: DBASE or PARAM

Revision 172012-12-06 - MarcoClemencic

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 29 to 29
 For a components package, just cmt, doc, src are needed (no public includes)
mkdir cmt
mkdir doc
mkdir src
Changed:
<
<

Edit requirements (or copy them from a similar package...) and configure the package

>
>

Edit requirements and CMakeLists.txt (or copy them from a similar package...) and configure the package

 
cd doc
emacs release.notes
Add some meaningful release notes to explain the purpose of the package, the author etc...
cd ../cmt
emacs requirements
Edit the requirements file, make sure the directories src cmt and doc are specified for your components package
Changed:
<
<
cmt config
>
>
cd ..
emacs CMakeLists.txt
Edit the CMakeLists.txt file
cd cmt
cmt config
 Configure the package

Write some code and build a library

Line: 90 to 92
  The constraints (unicity of the name etc) and the instructions are essentially the same for a normal package except that: * You can create the package in the Application that will be using the package directly.
Changed:
<
<
Once the package has been created and is tested, you can import the package in
>
>
Once the package has been created and is tested, you can import the package in the project of your choice.

Another difference between data packages and code packages, is that in data packages there is no need for a CMakeLists.txt, but you must provide a file describing the environment required to use the package. The environment is described in an XML file with the name derived from the name of the package like Hat_PackageEnvironment.xml, for example:

  • ParamFiles needs ParamFilesEnvironment.xml
  • Det/SQLDDDB needs Det_SQLDDDBEnvironment.xml
You can find examples in LbRelease/data/DataPkgEnvs.
 

Import the new package to Subversion

Revision 162012-11-27 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 84 to 84
 
Changed:
<
<

Instructions for creating a new Data Package

>
>

Instructions for creating a new Data Package

 

Package creation

Revision 152012-11-27 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 78 to 78
 
Then tag and add to the tag collector
Added:
>
>

Instructions for creating a new Data Package

Package creation

The constraints (unicity of the name etc) and the instructions are essentially the same for a normal package except that: * You can create the package in the Application that will be using the package directly. Once the package has been created and is tested, you can import the package in

Import the new package to Subversion

IMPORTANT : Before you import anything into SVN, please discuss your new package with the Core Software Team first, to decide the most appropriate project to commit your new package to: DBASE or PARAM

IMPORTANT : Please make sure that the import command is run from inside the directory you want to import:

cd $User_release_area/Project_<version>/WG/MyDataPackage
Remove first all files you do not wish to import: binary directories, backup copies (∗~∗), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm -r genConf
rm ∗/∗~∗
rm cmt/∗.∗
rm cmt/∗Make∗
And now import to Subversion, for example under DBASE
svn import -m "first import of MyDataPackage under DBASE" svn+ssh://svn.cern.ch/reps/lhcb/DBASE/trunk/WG/MyDataPackage
svn mkdir -m "create tags and branches directories for WG/MyDataPackage" svn+ssh://svn.cern.ch/reps/lhcb/DBASE/tags/WG/MyDataPackage svn+ssh://svn.cern.ch/reps/lhcb/DBASE/branches/WG/MyDataPackage
Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "WG") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.

Add your new package in the list of known packages in the repository

As for normal packages

Check that everything is OK

As for normal packages

Adding the new Data package to LbScripts

Send an email to Ben (ben.couturier@cernNOSPAMPLEASE.ch) in order to add the package to LbScripts
 -- MarcoClemencic - 16-Dec-2009 \ No newline at end of file

Revision 142012-07-24 - GloriaCorti

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 73 to 73
 If everything looks fine you can remove the original version
cd ../..
rm -r _FredComponents
Changed:
<
<

Finally, add the new package to the project

cd $User_release_area/Analysis_<version>
getpack AnalysisSys head
cd AnalysisSys
emacs cmt/requirements
Add the new package:
use FredComponents v∗ Phys
Update the release notes
emacs doc/release.notes
Commit and tag the changes
svn commit -m "added package Phys/FredComponents"
>
>

Finally, the new package can be added to the project

Inform the project manager that the new package is ready to be added to the project itself.
 Then tag and add to the tag collector

-- MarcoClemencic - 16-Dec-2009 \ No newline at end of file

Revision 132012-07-12 - AlexGrecu

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 46 to 46
 

Import the new package to Subversion

Changed:
<
<
IMPORTANT : Before you import anything into SVN, please discuss your new package with the Manager of your application (Brunel, DaVinci etc.) first, to decide the most appropriate project to commit your new package to.
>
>
IMPORTANT : Before you import anything into SVN, please discuss your new package with the Manager of your application (Brunel, DaVinci, Gauss, etc.) first, to decide the most appropriate project to commit your new package to.
  IMPORTANT : Please make sure that the import command is run from inside the directory you want to import:
cd $User_release_area/Analysis_<version>/Phys/FredComponents

Revision 122012-07-12 - AlexGrecu

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 46 to 46
 

Import the new package to Subversion

Changed:
<
<
IMPORTANT : Before you important anything into SVN, please discuss your new package with the Manager of your application (Brunel, DaVinci etc.) first, to decide the most appropriate project to commit your new package to.
>
>
IMPORTANT : Before you import anything into SVN, please discuss your new package with the Manager of your application (Brunel, DaVinci etc.) first, to decide the most appropriate project to commit your new package to.
  IMPORTANT : Please make sure that the import command is run from inside the directory you want to import:
cd $User_release_area/Analysis_<version>/Phys/FredComponents

Revision 112012-06-13 - ChristopherRJones

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 44 to 45
 component library is built

Import the new package to Subversion

Changed:
<
<
Important: Please make sure that the import command is run from inside the directory you want to import:
>
>
IMPORTANT : Before you important anything into SVN, please discuss your new package with the Manager of your application (Brunel, DaVinci etc.) first, to decide the most appropriate project to commit your new package to.

IMPORTANT : Please make sure that the import command is run from inside the directory you want to import:

 
cd $User_release_area/Analysis_<version>/Phys/FredComponents
Remove first all files you do not wish to import: binary directories, backup copies (∗~∗), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm -r genConf
rm ∗/∗~∗
rm cmt/∗.∗
rm cmt/∗Make∗

Revision 102012-04-27 - ChristopherRJones

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 49 to 49
 Remove first all files you do not wish to import: binary directories, backup copies (∗~∗), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm -r genConf
rm ∗/∗~∗
rm cmt/∗.∗
rm cmt/∗Make∗
And now import to Subversion
Changed:
<
<
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir -m "create tags and branches directories for Phys/FredComponents" \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
>
>
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir -m "create tags and branches directories for Phys/FredComponents" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
 Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "Phys") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.

Add your new package in the list of known packages in the repository

Revision 92011-10-24 - MarcoGersabeck

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 20 to 20
 

Option 1: using CMT

Changed:
<
<
cmt create FredComponents v1r0 Phys/
cd  Phys/FredComponents
>
>
cmt create FredComponents v1r0 Phys/
cd  Phys/FredComponents
mkdir doc
 

Option 2: personally

Revision 82011-05-18 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 53 to 53
 Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "Phys") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.

Add your new package in the list of known packages in the repository

Added:
>
>
On a machine where the pico editor is installed (e.g. lxplus, but not lxbuild)
 
cd $User_release_area
svn co -N svn+ssh://svn.cern.ch/reps/lhcb lhcb_repos
svn pe packages lhcb_repos
ALERT! It's mandatory to check out a fresh copy of lhcb_repos or update the working copy with svn update before editing the property.
Add your package in the list:
Phys/FredComponents Analysis
and commit the changes
Changed:
<
<
svn ci -m "add Phys/FredComponents in the list of packages" lhcb_repos
rm -r lhcb_repos
>
>
svn ci -m "add Phys/FredComponents in the list of packages" lhcb_repos
rm -rf lhcb_repos
 

Check that everything is OK

First rename the original package

Revision 72011-04-19 - HubertDegaudenzi

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Choose a name and location for your package

Changed:
<
<
Your package should have a unique name (unique to the LHCb software), so choose a name that is both descriptive and specialized: Components is a bad name, FredComponents is good. You should also choose an LHCb subsystem ("Hat") among existing ones, e.g. Phys if your components are for doing a physics analysis. Finally, you must choose a "Project" among existing ones within which your package should be released, e.g. Analysis
>
>
Your package should have a unique name (unique to the LHCb software), so choose a name that is both descriptive and specialized: Components is a bad name, FredComponents is good. You should also choose an LHCb subsystem ("Hat") among existing ones, e.g. Phys if your components are for doing a physics analysis. Please note that the core name (without the hat) of the package has to be unique among the LHCb package list. You can find the full LHCb package list with the command
svn pg packages svn+ssh://svn.cern.ch/reps/lhcb

Finally, you must choose a "Project" among existing ones within which your package should be released, e.g. Analysis

  In what follows, let us assume you want to write a components package called FredComponents for subsystem Phys, in Analysis project

Revision 62011-03-18 - MarcoClemencic

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 51 to 51
 

Add your new package in the list of known packages in the repository

cd $User_release_area
svn co -N svn+ssh://svn.cern.ch/reps/lhcb lhcb_repos
svn pe packages lhcb_repos
Added:
>
>
ALERT! It's mandatory to check out a fresh copy of lhcb_repos or update the working copy with svn update before editing the property.
 Add your package in the list:
Phys/FredComponents Analysis
and commit the changes

Revision 52010-09-22 - MarcoCattaneo

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 44 to 44
 Important: Please make sure that the import command is run from inside the directory you want to import:
cd $User_release_area/Analysis_<version>/Phys/FredComponents
Remove first all files you do not wish to import: binary directories, backup copies (∗~∗), generated files in cmt directory (only requirements is needed)
Changed:
<
<
rm -r $CMTCONFIG
rm ∗/∗~∗
rm cmt/∗.∗
rm cmt/∗Make∗
>
>
rm -r $CMTCONFIG
rm -r genConf
rm ∗/∗~∗
rm cmt/∗.∗
rm cmt/∗Make∗
 And now import to Subversion
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir -m "create tags and branches directories for Phys/FredComponents" \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "Phys") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.

Revision 42010-07-01 - AnatolySolomin

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 43 to 43
 

Import the new package to Subversion

Important: Please make sure that the import command is run from inside the directory you want to import:
cd $User_release_area/Analysis_<version>/Phys/FredComponents
Changed:
<
<
Remove first all files you do not wish to import: binary directories, backup copies (∗~), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm ∗/∗~
rm cmt/∗.∗
rm cmt/∗Make∗
>
>
Remove first all files you do not wish to import: binary directories, backup copies (∗~∗), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm ∗/∗~∗
rm cmt/∗.∗
rm cmt/∗Make∗
 And now import to Subversion
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir -m "create tags and branches directories for Phys/FredComponents" \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "Phys") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.

Revision 32010-05-15 - RobLambert

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 13 to 13
 
SetupProject --build-env Analysis
You will be prompted for a version number, choose the most recent one. This puts you in the directory $User_release_area/Analysis_<version>
Changed:
<
<

Create the package root directory

>
>

Make the package

Option 1: using CMT

cmt create FredComponents v1r0 Phys/
cd  Phys/FredComponents

Option 2: personally

 
mkdir -p Phys/FredComponents
cd  Phys/FredComponents
Deleted:
<
<

Create the package directory structure

 For a components package, just cmt, doc, src are needed (no public includes)
mkdir cmt
mkdir doc
mkdir src
Line: 24 to 30
 
cd doc
emacs release.notes
Add some meaningful release notes to explain the purpose of the package, the author etc...
cd ../cmt
emacs requirements
Changed:
<
<
Edit the requirements file.
>
>
Edit the requirements file, make sure the directories src cmt and doc are specified for your components package
 
cmt config
Configure the package
Line: 35 to 41
 component library is built

Import the new package to Subversion

Changed:
<
<
Important: Please make sure that the import command is run from inside the directory you want to import:
>
>
Important: Please make sure that the import command is run from inside the directory you want to import:
 
cd $User_release_area/Analysis_<version>/Phys/FredComponents
Remove first all files you do not wish to import: binary directories, backup copies (∗~), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm ∗/∗~
rm cmt/∗.∗
rm cmt/∗Make∗

Revision 22010-01-13 - MarcoClemencic

Line: 1 to 1
 
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Line: 40 to 40
 Remove first all files you do not wish to import: binary directories, backup copies (∗~), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm ∗/∗~
rm cmt/∗.∗
rm cmt/∗Make∗
And now import to Subversion
Changed:
<
<
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir --parents -m "create tags and branches directories for Phys/FredComponents" \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
>
>
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir -m "create tags and branches directories for Phys/FredComponents" \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents
Note: if the mkdir command fails, you may need to create the intermediate directories (e.g. the hat "Phys") one by one. A version of the command line client more recent than the one on lxplus5 has the option "--parents" to simplify the process.
 

Add your new package in the list of known packages in the repository

cd $User_release_area
svn co -N svn+ssh://svn.cern.ch/reps/lhcb lhcb_repos
svn pe packages lhcb_repos

Revision 12009-12-16 - MarcoClemencic

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="SVNUsageGuidelines"

Instructions for creating a new CMT package

Choose a name and location for your package

Your package should have a unique name (unique to the LHCb software), so choose a name that is both descriptive and specialized: Components is a bad name, FredComponents is good. You should also choose an LHCb subsystem ("Hat") among existing ones, e.g. Phys if your components are for doing a physics analysis. Finally, you must choose a "Project" among existing ones within which your package should be released, e.g. Analysis

In what follows, let us assume you want to write a components package called FredComponents for subsystem Phys, in Analysis project

Work in the appropriate project directory

SetupProject --build-env Analysis
You will be prompted for a version number, choose the most recent one. This puts you in the directory $User_release_area/Analysis_<version>

Create the package root directory

mkdir -p Phys/FredComponents
cd  Phys/FredComponents

Create the package directory structure

For a components package, just cmt, doc, src are needed (no public includes)
mkdir cmt
mkdir doc
mkdir src

Edit requirements (or copy them from a similar package...) and configure the package

cd doc
emacs release.notes
Add some meaningful release notes to explain the purpose of the package, the author etc...
cd ../cmt
emacs requirements
Edit the requirements file.
cmt config
Configure the package

Write some code and build a library

cd ../src
Add ∗.cpp files
cd ../cmt
cmt make
component library is built

Import the new package to Subversion

Important: Please make sure that the import command is run from inside the directory you want to import:
cd $User_release_area/Analysis_<version>/Phys/FredComponents
Remove first all files you do not wish to import: binary directories, backup copies (∗~), generated files in cmt directory (only requirements is needed)
rm -r $CMTCONFIG
rm ∗/∗~
rm cmt/∗.∗
rm cmt/∗Make∗
And now import to Subversion
svn import -m "first import of FredComponents under Phys" svn+ssh://svn.cern.ch/reps/lhcb/Analysis/trunk/Phys/FredComponents
svn mkdir --parents -m "create tags and branches directories for Phys/FredComponents" \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/tags/Phys/FredComponents \
  svn+ssh://svn.cern.ch/reps/lhcb/Analysis/branches/Phys/FredComponents

Add your new package in the list of known packages in the repository

cd $User_release_area
svn co -N svn+ssh://svn.cern.ch/reps/lhcb lhcb_repos
svn pe packages lhcb_repos
Add your package in the list:
Phys/FredComponents Analysis
and commit the changes
svn ci -m "add Phys/FredComponents in the list of packages" lhcb_repos
rm -r lhcb_repos

Check that everything is OK

First rename the original package
cd $User_release_area/Analysis_<version>/Phys
mv FredComponents _FredComponents
Then check out your package from the repository
cd $User_release_area/Analysis_<version>
getpack Phys/FredComponents head
cd Phys/FredComponents/cmt
cmt show uses
cmt make
If everything looks fine you can remove the original version
cd ../..
rm -r _FredComponents

Finally, add the new package to the project

cd $User_release_area/Analysis_<version>
getpack AnalysisSys head
cd AnalysisSys
emacs cmt/requirements
Add the new package:
use FredComponents v∗ Phys
Update the release notes
emacs doc/release.notes
Commit and tag the changes
svn commit -m "added package Phys/FredComponents"
Then tag and add to the tag collector

-- MarcoClemencic - 16-Dec-2009

 
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