Creating the VO Client Package¶
This document will explain the step-by-step procedures for creating and releasing the VO Client Package.
The VO Client Package sources can be found here: https://github.com/opensciencegrid/osg-vo-config
When upstream changes have been made and are ready for a new VO Client Package release, these sources will be used to prepare a release tarball, which will in turn be used for the RPMs.
In order to build the RPM, one needs:
- The tarball containing the:
vomsdirdirectory tree, containing the .lsc files.
- The RPM spec file, maintained in the OSG packaging area.
JIRA Ticket for the Release¶
There should be an associated JIRA ticket with a summary line of the form "Release VO Package 85".
(Throughout this document, this release number will be referred to as
The JIRA ticket should contain the details of the changes expected in the new VO Client Package release, which you
should verify before proceeding.
You can verify this with your favorite git tool (eg,
git diff or
gitk), or just view the changes directly on GitHub:
release-84 is the previous release tag, which you are comparing to the latest changes in
To use GitHub to view the comparison, you need to specify whatever is the most recent previous release tag.
However you choose to do it, the point is to verify that the changes going into the release match what is expected in the JIRA ticket before publishing a new release.
Updates to the GUMS Template¶
Most commonly, VO Client Package releases do not involve changes to the
gums.config.template file, though on occasion
it needs to be updated.
Before proceeding, any changes to
gums.config.template related to this release should be committed to git and pushed
to the upstream repo on GitHub.
The procedure for updating
gums.config.template is outside the scope of this document, but the main important point is
that any updates to this file should be done with the GUMS web interface rather than editing its xml contents by hand.
Making the Tarball¶
The process to make a new tarball has been mostly scripted.
To make the tarball:
Start with a clean checkout of the latest
masterbranch of the
This checked out commit should be the one intended to be tagged for the new release. - Run the
mk-vo-client-tarballscript with the new release number
$ ./bin/mk-vo-client-tarball <NN>
$ ./bin/mk-vo-client-tarball 85
This will create a file
vo-client-<NN>-osg.tar.gzin the current directory.
Once the tarball is created:
If you have not already verified the changes expected in the JIRA ticket, compare the contents of the new tarball with the previous version in the upstream source cache.
Upload the tarball into the upstream source cache, under the
RPM Spec File Maintenance¶
The OSG RPM spec file is maintained in Subversion.
The VO Client package is located in
native/redhat/trunk/vo-client; that is,
There are two files that need to be maintained:
Version:field should be updated to match the
<NN>number for the release
%changelogentry should be added for the new release, mentioning any changes and their associated tickets
- Update the relative path for the new tarball within the
upstream source cache.
Typically this will be
- Update the relative path for the new tarball within the upstream source cache. Typically this will be
After installing the osg-build tools, check out a clean copy of the
directory from svn, then:
osg-build prebuild .
- Once there are no errors, run
osg-build koji . --scratch. (This can be done without making any permanent change.)
- Once that builds successfully, run
osg-build koji .(This is permanent, unlike when you ran with
--scratch.) You cannot rebuild this version of the RPM again; to rebuild with changes, you must bump the release number and edit the changelog.
This will push the RPMs into the OSG development repository.
Koji requires additional setup compared to rpmbuild; see the documentation here.
Publishing the New Release¶
The final version of the sources in the
osg-vo-config, which was used to create the tarball that was used in the koji
build, needs be tagged in git with a
release-<NN> tag (eg,
release-85) and published as a release on GitHub.
You can create and push the
release-<NN> from your git checkout of
osg-vo-config, OR create the tag while publishing
the release on GitHub (recommended).
To publish the new release on GitHub:
- Go to https://github.com/opensciencegrid/osg-vo-config/releases/new
- In the "Tag version" field, enter
- If you are creating this tag on GitHub, click the "Target" dropdown button, and under the "Recent Commits" tab, make sure to select the commit you used when creating the tarball (It should be the first one)
- In the "Release title" field, enter
<MONTH> <YEAR> VO Package Release <NN>(eg,
December 2018 VO Package Release 85)
In the release description, list the changes in this release and their associated ticket numbers, similar to the new
%changelogentry added in the rpm spec file
(You can view the releases page for examples) - Click the "Publish release" button
Promotion to Testing and Release:¶
Read Release Policy.
Note that the
vo-client package frequently is part of a separate
-data release; it does not necessarily have to
wait for the main release cycle.