You are here: TWiki > Accounting Web>ProbeBuildRelease (07 Feb 2017, BrianBockelman)

Probe build and release-cutting procedure

Prepare for the build

For new probes only:

  • Add the subdirectory name to the invocation of build/package-probe in gratia/build/build_all.

Update the gratia/probe/build/gratia-probe.spec file:

  1. Update the Version and Release attributes as appropriate.
  2. Update %files clause as appropriate for updated probes.
  3. Check the %post clause for updated probes, including the ProbeConfig changes if appropriate.
  4. Update %changelog.
  5. For new probes:
    • Add required Source lines as appropriate.
    • Add required %setup line to %prep section.
    • In the install section, update the correct side of the %ifarch noarch clause for the ProbeConfig copy and any required init script for daemon-type probes.
    • Put correct %package, %description, %files, %post and %preun sections: use glexec (noarch non-daemon), xrootd-transfer (noarch daemon), pbs-lsf (arch non-daemon) or dCache-transfer (arch daemon) probes as templates.

[This needs to be done only once] Setup for the rpm build to succeed by creating the directory $HOME/rpmbuild/SOURCES and setting up the rpm macro:

echo %_topdir $HOME/rpmbuild >> $HOME/.rpmmacros
mkdir -p $HOME/rpmbuild/SOURCES $HOME/rpmbuild/BUILD $HOME/rpmbuild/SRPMS $HOME/rpmbuild/RPMS $HOME/rpmbuild/SPECS

Note: the build is expected to be done as a regular user.


cd gratia/probe

The resulting rpm files will be located in $HOME/rpmbuild/RPMS and $HOME/rpmbuild/SRPMS.


  • Test as appropriate on any one of the CEs mentioned on the development machine allocation page.
  • Some probes can be be tested to a large extent on pre-packaged log data. Examples of this are the pbs-lsf, SGE and glexec probes.

Ensure all desired code is committed

svn status
svn commit -m <message> <files> ...

See this SVN primer for more details on SVN use.

Port desired changes to branch

If the current release stream is taking place on a branch, port desired changes from HEAD into the specified branch. For example:

svn checkout
svn merge -r<version-range> .
svn commit -m<message> .

Checking in changes to the whole tree is important because the directory attributes are all updated to reflect which revisions have been merged in from HEAD. This will make future merges simpler and less error-prone.

Cut a tag

For example, if cutting from the trunk.

svn copy{trunk,tags/${RELEASE//./-}}
or if cutting from the patch branch:
svn copy{branches/v1-06,tags/${RELEASE//./-}}

Note that the entire repository is tagged, not just the probe tree.

Export for a final tagged build

svn export${RELEASE//./-}/probe gratia-probe-${RELEASE}

Build and ship RPMs

cd gratia-probe-${RELEASE}
build/build_all -PY

The -P option ships the RPMs to FNALU. See the release transfer section of the collector build and release instructions for required permissions. The -Y option will update the repository headers for yum installs.

The RPMs are sent to /afs/{S,}RPMS.

Update the Probe release page.

Bring the probe installation page up to date, including but not necessarily limited to the TWiki variable ProbeVersion.

Make sure the release notes are current

Create and/or edit the correct page under the releases section of the main Accounting TWiki page.

Request a VDT release

Send email to giving URLs from which to obtain the release.

-- ChrisGreen - 28 Jul 2010

Topic revision: r7 - 07 Feb 2017 - 20:23:03 - BrianBockelman
Hello, TWikiGuest


TWiki | Report Bugs | Privacy Policy

This site is powered by the TWiki collaboration platformCopyright by the contributing authors. All material on this collaboration platform is the property of the contributing authors..