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.