How to Make an OrangeFS Release
1. Create release tag in SVN
- Prerequisites
- write access to SVN
- identified the branch/code base for the release
- Steps
- create a tag in SVN against the code the release should be based on. Usually, this is the stable branch. You can do this using:
svn copy https://www.orangefs.org/svn/orangefs/branches/<branch name> https://www.orangefs.org/svn/orangefs/tags/<tag name>
- create a tag in SVN against the code the release should be based on. Usually, this is the stable branch. You can do this using:
The <tag name> should be of the format v.<major>.<minor>.<sub>
2. Update files in release tag
- Prerequisites
- Check out a working copy of the release tag created in the first step:
svn co https://www.orangefs.org/svn/orangefs/tags/<tag name> orangefs-<major>.<minor>.<sub>
- Check out a working copy of the release tag created in the first step:
- Steps
- Update configure.in to a release configuration by:
- Commenting out PVFS2_VERSION_PRE
- Changing PVFS2_VERSION_MAJOR, PVFS2_VERSION_MINOR, and/or PVFS2_VERSION_SUB as needed
- Un-commenting PVFS2_VERSION_RELEASE and setting it to orangefs
- Update configure.in to a release configuration by:
- Run ./prepare from the working copy.
Note: This must be a version of autoconf newer than 2.59 or the generated files will be incorrect. Version 2.65 of autoconf works, not sure on the minimum acceptable version.
- Update ChangeLog to include descriptions of updates between the last release and the new release.
- Commit changes to the release tag
3. Create tarball of release tag
- Steps
- Change into the working copy of the tag in the directory above orangefs-<major>.<minor>.<sub>
- Create exclude from file with contents, one per line, of:
- .svn, dokan, ldap-windows, openssl-windows
- Create tarball using tar --exclude-from=<exclude filename> -czvf orangefs-<major>.<minor>.<sub>.tar.gz orangefs-<major>.<minor>.<sub> (e.g. tar --exclude-from=exclude-files -czf orangefs-2.8.4.tar.gz orangefs-2.8.4)
4. Update the downloads directory on the web server
- Prerequisites
- Account on ofsweb001(130.127.236.49) with write access and sudo capabilities. Note: everyone should have an eDir account on ofsweb001.
- Steps
- Create directories to store the new release tarball, webpack, and windows installers:
mkdir -p /web/orangefs/downloads/<major>.<minor>.<sub>/{source,win,win32,win64}
- Create directories to store the new release tarball, webpack, and windows installers:
- Copy tarball (orangefs-<major>.<minor>.<sub>.tar.gz) from last step to /web/orangefs/downloads/<major>.<minor>.<sub>/source/
- If necessary, have Mike Marshall (hubcap@…) create a webpack for the new release. To use the old webpack, copy it from the prior release and rename it.
- Put the new webpack in /web/orangefs/downloads/<major>.<minor>.<sub>/source/orangefs_webpack-<major>.<minor>.<sub>.tar.gz
- If necessary, have Sam Sampson (sampson@…) create the windows installers. To use the old installers, rename and copy them into the appropriate directories.
- Put the 64-bit installer into /web/orangefs/downloads/<major>.<minor>.<sub>/win64/orangefs-client-<major>.<minor>.<sub>-win64.exe
- Put the 32-bit installer into /web/orangefs/downloads/<major>.<minor>.<sub>/win32/orangefs-client-<major>.<minor>.<sub>-win32.exe
- Put the optional silent installer into /web/orangefs/downloads/<major>.<minor>.<sub>/win/setup.iss
- Create a symbolic link in the old-releases directory to the current release:
- cd into /web/orangefs/downloads/old-releases
- ln -s ../<old release> <old release>
- When ready to go live, create a symbolic link that points to the LATEST version:
- cd /web/orangefs/downloads
- rm LATEST
- ln -s <new release> LATEST
5. Update the documentation directory on the web server
- This documentation directory (/web/orangefs/documentation) contains the legacy doc, not the doc generated by Dwayne Lusk. Some updates MAY have been made, so we must still regenerate for the new release.
- cd to /web/orangefs/documentation/releases
- untar the tarball already copied into /web/orangefs/downloads/<new release>/source
- tar -xzf /web/orangefs/downloads/<new release>/source/orangefs-<new release>.tar.gz
- cd orangefs-<new release>
- ./configure
- make docs
- this creates the doc directory with all of the html and php files needed for the web
- doxygen ./doc/doxygen/pvfs2-doxygen.conf
- this creates online doc and cross reference of the code base
- ./maint/pvfs2-options-parser.pl <new release> ./src/common/misc/server-config.c ./src/common/misc/pvfs2-debug.c > ./doc/pvfs-config-options.php
- this creates the online doc of config file options
- When ready to go live, modify the "current" link in /web/orangefs/documentation/releases:
- cd /web/orangefs/documentation/releases
- rm current
- ln -s orangefs-<new release> current
6. Update the download (no s) directory on the web server
- This directory, /web/orangefs/download, contains the code that runs the download link found at the top of the web pages. download.php controls this web page and is where you will make changes to the content that is displayed on the page. For the most part, only the names of the new download files need to be changed. However, Read the page and make updates as necessary based on the changes in the new release.
- This directory also contains a copy of the ChangeLog file. Replace the existing copy with a copy of the ChangeLog file from your <new release> tarball, which should contain descriptions of the changes made in this release.
7. Update the release version displayed on the web page
- cd /web/orangefs
- vi header.php
- update the variable pvfs_latest_release
8. Restarting the web site
- Restart the web site just to be sure that you are actually testing your changes. A lot of things get cached. You will also want to clear the cache in your web browser for the same reason.
- sudo /sbin/service httpd restart
- SIDENOTES:
- httpd conf files are located at /etc/httpd/conf and conf.d
8. Test
- Download tarball, extract, configure, make, make install, make kmod_install, and insmod to confirm all is well with the new tarball and links to documentation on orangefs.org are good, etc.
9. Update SVN
- When you are happy with all of your changes, update the SVN repository. The ofswebsite's main components are stored here, https://www.orangefs.org/svn/ofswebsite/trunk/orangefs. The /web/orangefs directory already has an updatable copy of the repository ready for you to commit any changes.
- cd /web/orangefs
- svn commit
- In the comment, put the new release value.
