This file is a release HOWTO, more or less a reminder before releasing a new version of Hamlib. TODO: With the switch to SVN SCM discuss the use of tags and branches for releases. Before deciding release: ----------------------- * Anticipate what problems would users experience with the new release, so you can fix the problems before making the release. Basically, this is making sure the package will compile on a whole breed of systems (arch,OS,library,gcc,etc. combo), that there's no regression, and the API evolution is managed well. * Announce SVN/version freeze on hamlib-developer mailing list, so developers have time to check in their contributions. * Update libtool: clean the tree sh ./autogen.sh Releasing Hamlib: ---------------- * Update NEWS, TODO, AUTHORS * Update the version in the macro AC_INIT of configure.ac (remove 'svn') * Regenerate ChangeLog with: TZ=UTC svn2cl * svn commit -m "release X.Y.Z" ChangeLog configure.ac NEWS Note the revision number (N). * Tag the SVN rep with version 'HAMLIB-x-y-z' svn copy -r N https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk \ https://hamlib.svn.sourceforge.net/svnroot/hamlib/tags/HAMLIB-x-y-z \ -m "release x.y.z" * Build source tarball: svn co -r N https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk hamlib sh autogen.sh --enable-maintainer-mode # (Would the above command be better invoked as: # sh autogen.sh --disable-maintainer-mode --prefix=/usr/local CFLAGS="-g -O0" # ?? comments please.) make dist * Build Windows DLL from previous tarball, and .LIB, then create .zip file Rem: under Linux, you need the package mingw32 to cross-compile it, and free MVC++Toolkit to create .lib file: ./configure --disable-static \ --host=i586-mingw32msvc \ --prefix=/tmp/mingw-inst \ --without-rpc-backends \ --enable-xmltest PKG_CONFIG_LIBDIR= ac_cv_path_PKG_CONFIG=no make install new_ver="x.y.z" mkdir -p /tmp/mingw-inst/hamlib-${new_ver}/lib/msvc /tmp/mingw-inst/hamlib-${new_ver}/lib/gcc cp src/libhamlib.def /tmp/mingw-inst/hamlib-${new_ver}/lib/msvc/libhamlib-2.def cd /tmp/mingw-inst/hamlib-${new_ver}/lib/msvc/ unix2dos *.def wine /media/sda1/Program\ Files/Microsoft\ Visual\ C++\ Toolkit\ 2003/bin/link.exe /lib /machine:i386 /def:libhamlib-2.def cd ../.. unix2dos include/hamlib/*.h cp lib/libhamlib.dll.a /tmp/mingw-inst/hamlib-${new_ver}/lib/gcc zip -r hamlib-win32-${new_ver}.zip hamlib-win32-${new_ver} Edit Release, i386, .zip * Build Windows DLL with stdcall convention: Ditto but with HAMLIB_API set to __stdcall in include/hamlib/rig_dll.h before re-compiling. Subsitute cdecl by stdcall in README.txt. * Release the file(s) - https://sourceforge.net/projects/hamlib/files/ - Select Hamlib - Click Add Folder, name it X.Y.Z - Select X.Y.Z - Click Add File button - Click Choose File button - Click Upload * Update http://www.hamlib.org Wiki - Download section https://sourceforge.net/apps/mediawiki/hamlib/index.php?title=Download - Documentation (requires doxygen) make -C doc doc ssh shell.sourceforge.net mkdir /home/project-web/h/ha/hamlib/htdocs/manuals/x-y-z scp -r doc/html shell.sourceforge.net:/home/project-web/h/ha/hamlib/htdocs/manuals/x-y-z/. Edit Wiki Documentation section - Supported Radios/Rotators make -C tests rigmatrix.html ssh -t USER,hamlib@shell.sourceforge.net create scp -r tests/sup-info/* USER,hamlib@shell.sourceforge.net:/home/project-web/hamlib/htdocs/sup-info/. * Notify various sites: - Sourceforge/News: https://sourceforge.net/news/submit.php?group_id=8305 - Freshmeat: http://freshmeat.net/projects/hamlib - http://radio.linux.org.au/pkgdetail.phtml?pkgid=243 Linux Hamradio App: rigctl category * Send announce to mailing lists: [ANN] hamlib-announce, linux-ham To advertise: - list the rigs supported so far, - what was major work achieved, - where we're heading, - what kind of support we need Get ready for the next round: * Bump version number and append 'svn' to it in macro AC_INIT of configure.ac * Update src/Makefile.am revision of -version-info