       
Steps for Making a libLAS Release
==============================================================================

:Author: Howard Butler
:Contact: hobu.inc@gmail.com
:Revision: $Revision$
:Date: $Date$

This document describes the process for releasing a new version of libLAS.

General Notes
------------------------------------------------------------------------------

The libLAS library is very conservative with regards to API linkages. 
Specifically, major versions (1.0, 2.0, ..., X.0) of the library should be 
released if the C API changes in any significant way, especially if you are 
removing or changing API functions.  It is desirable that minor versions 
(1.1, 1.2, ..., 1.X) of the library are API compatible for the C++ APIs, 
but this is not required.

Release Process

1) Increment Version Numbers
 
  - CMakeLists.txt
   
    * SET(LIBLAS_VERSION_MAJOR "1")
    * SET(LIBLAS_VERSION_MINOR "6")
    * SET(LIBLAS_VERSION_PATCH "0b1")
    
  - include/liblas/capi/las_version.h

    * #define LIBLAS_VERSION_MAJOR    1
    * #define LIBLAS_VERSION_MINOR    6
    * #define LIBLAS_VERSION_REV      0b1

  - python/setup.py

  - src/header.cpp

    char const* const Header::SoftwareIdentifier = "libLAS 1.6.0b2";

2) Update README to include any relevant info about the release that 
   might have changed.

3) Build Windows version

  - Issue nmake and nmake install commands
  
  ::
      
      nmake /f makefile.vc clean
      nmake /f makefile.vc
      nmake /f makefile.vc install
      nmake /f makefile.vc package

  - Build Python bindings for Python 2.4 and Python 2.5 
  
  ::
      cd python
      python setup.py bdist_wininst
      python setup.py bdist_egg
 
  - Upload source distribution to PyPI.  Do this from OS X or Linux instead 
    of windows or otherwise the source distribution will be a busted zip file 
    because setuptools sucks.
    
    ::
        
        python setup.py sdist upload
        
  - Upload Python binary bindings to PyPI
  
  ::
      
      # ensure a .pypirc file exists here with login info
      set HOME=C:\Docume~1\hobu.FIRE-WINDOWS
      c:\python24\python.exe setup.py register
      c:\python24\python.exe setup.py sdist upload
      c:\python24\python.exe setup.py bdist_wininst upload
      c:\python24\python.exe setup.py bdist_egg upload
      c:\python25\python.exe setup.py bdist_egg upload
      c:\python26\python.exe setup.py bdist_egg upload
      
  - Copy the liblas-1.3.1-win32.zip file to a Unix box so you can generate 
    the appropriate md5 for it in #5.
    

4) Make the source distribution

  ::
      
      make dist

       
5) Generate MD5 sums 

  ::
      
      md5 liblas-src-1.3.1.tar.bz2 > liblas-src-1.3.1.tar.bz2.md5
      md5 liblas-src-1.3.1.tar.gz > liblas-src-1.3.1.tar.gz.md5
      md5 liblas-1.3.1-win32.zip > liblas-1.3.1-win32.zip.md5

6) Create a new release page on http://liblas.org/wiki/Releases

7) Upload windows and source package as attachments to the new release page.

8) Tag the release.  Use the ``-f`` switch if you are retagging because you 
   missed something.

  ::
      
      hg tag 1.3.1
      
9) Write the release notes.  Place a copy of the release notes on the release 
   page you created as well as send an email to liblas-devel announcing the 
   new release.

10) Update Freshmeat: http://freshmeat.net  

11) Update liblas.org homepage

12) Update ohloh liblas journal entry http://www.ohloh.net/p/liblas


$Id$
