1. Initial steps
- If there are new algorithms, remember to use valgrind to check if there are any memory allocation/deallocation problems.
- Make sure the new version number is correct in all places:
CMakeLists.txt: SET(OM_MAJOR_VERSION "1"), SET(OM_MINOR_VERSION "5"), SET(OM_PATCH_VERSION "0")
doc/openModeller_full_html.doxygen: PROJECT_NUMBER = "Version 1.5"
install_win/openModeller.nsi: define PRODUCT_VERSION "1.5"
install_mac/openModellerPackage.pmproj: use specific software to update version.
libopenmodeller.spec: Version: 1.5
Update the ChangeLog file.
- After commiting all changes in the repository, tag all files in the "trunk/openmodeller" directory. Tag names follow the pattern "rel-X-Y-Z". To tag, use the following command:
$ svn copy https://svn.code.sf.net/p/openmodeller/svn/trunk/openmodeller https://svn.code.sf.net/p/openmodeller/svn/tags/rel-1-5-0
2. Creating the source files
- Do a clean export of the tagged files in a different directory:
$ svn export https://openmodeller.svn.sourceforge.net/svnroot/openmodeller/tags/rel-1-5 om
- Create a new directory for cmake (outside) and build the source packages:
$ mkdir packages
$ cd packages
$ cmake ../om
$ make package_source
3. Creating the RPM files
- Copy the source tarball to the appropriate directory:
$ cp libopenmodeller-src-1.5.tar.gz /usr/src/redhat/SOURCES/
- Go back to the directory where you did the clean export and run the following command (note: you'll need to have write access to the source package directory, so you may want to run this as root):
$ sudo rpmbuild -ba libopenmodeller.spec
To verify the contents of each package:
$ rpm -qlp RPM_FILE
4. Creating the Windows installer
Follow the steps described here: http://openmodeller.sourceforge.net/INSTALL.html#toc40
When the infrastructure is already prepared, you'll basically need to:
- Update a local copy with Subversion.
- Run CMakeSetup again if necessary (if any CMakeLists.txt file was changed).
- Inside the "build" directory, double click on the openModeller.sln file to open VC++.
- Right click on "ALL_BUILD" and choose "build".
- Right click on "INSTALL" and choose "build".
- Go to the installation dir (openModeller+version inside Program files) and check if there's any change that needs to be made (remove an algorithm, add or remove a DLL).
Go back to the local copy, and inside the install_win dir compile the NSIS script (openModeller.nsi) by right clicking it and choosing "Compile NSIS Script". Note: the last installer was generated with NSIS 3.0a2, and the script requires the ZipDLL plugin, which can be retrieved from: http://nsis.sourceforge.net/ZipDLL_plug-in
- Test the openModellerSetup+version.exe file that will be generated.
5. Creating the Mac OS X installer
Most information about this can be found in the openModellerDesktop source.
When the infrastructure is already prepared, you'll basically need to go to the machine with Mac OS X and:
- Update the local copy with Subversion (e.g. /Users/cria/projects/openmodeller/trunk).
- Inside the "build_universal" directory, type "make" and then "make install".
- Inside the "install_mac" directory, remove the "fakeroot" dir and run the make_package_root.sh script.
Double click on openModellerPackage.pmproj file to launch PackageMaker.
- Update the version number in the last tab, if necessary.
- Use the "Project" menu to "build" the package (update the directory name with the corresponding version number).
- Compress the directory that was created (.pkg):
tar cvzf openModeller-1.5.0.mac.tgz openModeller-1.5.0.pkg
6. Creating the Ubuntu DEB files
- Make sure you are registered in launchpad.net and that you are a "ubuntero".
- Make sure your pgp key is registered in launchpad.net.
- Log in a machine with the desired Ubuntu version.
- Make sure the machine has Subversion, SSH client and the packages fakeroot, devscripts (for dch), dpatch and dput.
- Make sure your home directory contains a file called .dput.cf with this content:
[openmodeller-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~openmodeller/ubuntu/
login = anonymous
allow_unsigned_uploads = 0
- Make sure you have the environment variables DEBFULLNAME and DEBEMAIL properly set.
- Check out the source code or update the existing local copy.
When using Ubuntu Feisty, you need to edit the file debian/rules and change the CMakeCache.txt rule adding two lines to fix a problem with the GDAL location:
cmake -D CMAKE_INSTALL_PREFIX=/usr \
-DPEDANTIC=OFF \
-D GDAL_INCLUDE_DIR=/usr/include/gdal \
-D GDAL_LIBRARY=/usr/lib/libgdal1.3.2.so \
.
For other Ubuntu distributions don't change the CMakeCache.txt rule.
- Inside the source directory, type:
dch -v 1.5-1
(note: it's important to use the additional version number because each time you fail you'll need to increase it and start again from here)
The previous command will open an editor. Edit the changelog, add the library changelog and preserve all other content, otherwise you'll likely need to delete the debian/changelog file, update your local copy and start again from here to avoid the formatting errors.
- Then run:
debuild -S -rfakeroot -kYOUR_GPG_KEY_ID
(note: you'll need to have your GPG key on the machine and the program will ask your passphrase twice).
- Finally, fom outside your source dir, run:
dput openmodeller-ppa libopenmodeller_1.5-1_source.changes
7. Uploading the files
- Make sure there is no significant downtime period on sourceforge scheduled for the release date (and the day after).
After testing all installation files, upload them on sf using one of the available methods described here: http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+Download#tocFile%20Release%20System%20-%20Offering%20Files%20for%20Download4
- Then just add the files in the "file release" sourceforge admin page.
8. Making the release and the annoucements
- Log in the sf site, go the openmodeller project page, click on the "Admin" link, and then on the "File Releases" link.
- Add a new release to the package "openModeller" using the version number as the release name.
- Fill in the form with release date, notes and changelog.
- Add all related files to the release, then update each one (individually) after selecting the "Processor" and "File Type".
- Advertise the release:
sf News item
openmodeller website
freshmeat.net
openmodeller-devel mailing list
openmodeller-users mailing list