How to mark a tag/branch as part of the candidate release
How to mark a tag/branch as part of the candidate release
The basic requirement is that the component, when built, produces a packaged file (.rpm) that contains the version number in its filename. In other words, the package file must be recognizable.
Each component can have an SVN directory that acts in a way that is very similar to a symbolic link, through a feature called svn:externals. If we checkout that directory, we checkout whatever the component maintainer decided to bless as candidate release.
Here is an example of how the dmlite component looks like, with its release-candidate directory.
$ svn ls svn+ssh://svn.cern.ch/reps/lcgdm/dmlite
furano@svn.cern.ch's password:
branches/
release-candidate/
tags/
trunk/
How to create then this svn:externals link is decribed here:
I verify that the directory is missing:
$ svn ls svn+ssh://svn.cern.ch/reps/lcgdm/dmlite-plugins-librarian/
furano@svn.cern.ch's password:
branches/
tags/
trunk/
And then we create the directory and link it to the tag we want with these simple commands.
IMPORTANT: please note that the svn:externals points to the plain http repository.
$ svn mkdir svn+ssh://svn.cern.ch/reps/lcgdm/dmlite-plugins-librarian/release-candidate/
Committed revision 8838.
$ svn co https://svn.cern.ch/reps/lcgdm/dmlite-plugins-librarian/release-candidate/
$ cd release-candidate
$ svn propset svn:externals 'rc http://svn.cern.ch/guest/lcgdm/dmlite-plugins-librarian/tags/dmlite-plugins-librarian_0_5_0/' .
property 'svn:externals' set on '.'
$ svn commit
As a final test, we checkout this release-candidate directory, to verify that it checksout the tag that we chose into a subdirectory called rc. This is what our continuous build system expects.
$ svn co https://svn.cern.ch/reps/lcgdm/dmlite-plugins-librarian/release-candidate/
U release-candidate
Fetching external item into 'release-candidate/rc':
A release-candidate/rc/cmake
A release-candidate/rc/cmake/modules
A release-candidate/rc/cmake/modules/FindDMLite.cmake
A release-candidate/rc/LICENSE
A release-candidate/rc/dist
A release-candidate/rc/dist/dmlite-plugins-librarian.spec
A release-candidate/rc/RELEASE-NOTES
A release-candidate/rc/src
A release-candidate/rc/src/LibrarianCatalog.cpp
A release-candidate/rc/src/Librarian.cpp
A release-candidate/rc/src/Librarian.h
A release-candidate/rc/src/CMakeLists.txt
A release-candidate/rc/etc
A release-candidate/rc/etc/librarian.conf.in
A release-candidate/rc/CMakeLists.txt
A release-candidate/rc/README
Checked out external at revision 8839.
Checked out revision 8839.