Release procedures for frontier-related software
The Frontier system has many releasable pieces to it, and here are the procedures for each piece for developers to use.
This is what is on this page:
Client
To be moved here, but for now at
http://frontier.cern.ch/dist/FrontierProjectNotes.html
Servlet
To be moved here, but for now at
http://frontier.cern.ch/dist/FrontierProjectNotes.html
Tarballs
frontier-squid tarball
- Update the SRC and RELEASE variables in squid/Makefile
- Set an environment variable for the new version, for example:
FSQUIDVER=5.8-1
- If it is a new upstream squid version, do these steps
SQUIDVER="`echo $FSQUIDVER|sed 's/-.*//'`"
cd ~/src/frontier/tarballs/frontier-squid5/distrib
git rm squid-*.tar.gz*
rm -rf squid-*
wget http://www.squid-cache.org/Versions/v5/squid-$SQUIDVER.tar.gz
wget http://www.squid-cache.org/Versions/v5/squid-$SQUIDVER.tar.gz.asc
git add squid-$SQUIDVER.tar.gz*
gpg --verify squid-$SQUIDVER.tar.gz.asc squid-$SQUIDVER.tar.gz
cd /tmp
tar xzf $OLDPWD/squid-$SQUIDVER.tar.gz
cd squid-$SQUIDVER
./configure --disable-wccp
make
Then compare /tmp/squid-$SQUIDVER/src/squid.conf.documented
to squid/files/postinstall/squid.conf.documented
and update it and the corresponding squid.conf.proto
with the things that have changed (at minimum, the version number will always change). Even if the upstream squid version hasn't changed, just the release number, update the release number in squid.conf.proto
.
- Add notes in the RELEASE_NOTES file for the new version.
- Commit all changes into git
- Create a new version tag for the new release and push to the repository, for example:
git tag frontier-squid-$FSQUIDVER
git push
git push --tags
-
scp RELEASE_NOTES dbfrontier@frontier.cern.ch:dist/frontier-squid-releasenotes.txt
- Create a tarball:
mkdir /tmp/extract
cd /tmp/extract
wget -qO- "https://gitlab.cern.ch/frontier/tarballs/frontier-squid5/-/archive/frontier-squid-$FSQUIDVER/frontier-squid-$FSQUIDVER.tar.gz"|tar xzf -
mv * frontier-squid-$FSQUIDVER
tar czvf ../frontier-squid-$FSQUIDVER.tar.gz frontier-squid-$FSQUIDVER
cd ..
rm -rf extract
-
scp /tmp/frontier-squid-$FSQUIDVER.tar.gz dbfrontier@frontier.cern.ch:dist
- Update InstallSquidTarball twiki with new version
RPMs
Frontier rpm releases have these steps in common (replace "package" with individual package name):
- If updating the tomcat version in frontier-tomcat, compare its conf/server.xml with src/conf/server.xml.O. If there are changes, update server.xml.O and server.xml.proto.
- Commit your changes to git.
- Make sure you have created a working directory according to the instructions under "Building frontier rpms" step 1, a directory called "rpms" where each repository for doc, scripts, and all frontier-* packages are checked out under their own name.
- Update frontier-package/SPECS/frontier-package.spec with the new version, release4source, and releasenum, and commit to git.
- If the spec file has a %changelog, add a new entry and commit to git, otherwise edit frontier-package/doc/frontier-packageRELEASE_NOTES with the new version number and release notes, and commit that to git.
- Do git push to upload changes to the git server.
- In directory frontier-package/scripts on an Centos7-based system, run
../../scripts/rpmbuild_.sh
including entering your passphrase for the signature. Note that on EL9 it may be necessary to kill gpg-agent
processes left over from previous login sessions in order to be able to enter your passphrase and sign the RPM.
- In the same directory, run
../../scripts/rpm2web.sh /home/dbfrontier/dist/rpms-debug
to publish the release to the cernvm-frontier-debug repo. You need to be on a machine on which you can do 'sudo -u dbfrontier' and which is set up with an ssh key to be able to scp from that account to dbfrontier@frontier.cern.ch
. Note that rpm2web.sh
has an optional -s
parameter that allows specification of an alternate location for the rpms
directory.
- In the same directory, run
../../scripts/rpm2web.sh
to install to the regular cernvm-frontier repo. Answer "yes" to the prompt.
- In the same directory, run
../../scripts/gittag.sh
to create the release tag.
- Repeat step 7 on an EL9 system.
- As in step 8 on the EL9 system, run
../../scripts/rpm2web.sh /home/dbfrontier/dist/el9-debug
and ../../scripts/rpm2web.sh /home/dbfrontier/dist/el9
to release the debug and main versions of the EL9 RPM.
- Send a release announcement to
frontier-talk@cern.ch
.