Submitted by furano on

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.

Tags