.. _release-plan-6.0:

*****************************************************************************
 6.0 Release Plan
*****************************************************************************

:Authors: Project Steering Committee
:Last Updated: 2011-03-17

.. contents:: Table of Contents
    :depth: 3
    :backlinks: top

Background
==========

The purpose of the following document is to outline the proposed changes for the upcoming MapServer 6.0 release.  
Users planning on upgrading to 6.0 are also recommended to review the - :ref:`MapServer Migration Guide <migration>`.

New Features and Major Bug Fixes
================================

Core Changes in MapServer 6.0 Which Could Affect Existing Applications
----------------------------------------------------------------------

    * :ref:`rfc54`
        * Full pluggable renderer support (Thomas/Frank)
    * :ref:`rfc64`
        * Expanded expression syntax support + OGC filter encoding -> MapServer filterObj support (Steve)
    * :ref:`rfc65`

New Features and Enhancements in MapServer 6.0
----------------------------------------------

    * :ref:`rfc50`
    * :ref:`rfc58`
    * :ref:`rfc60`
    * :ref:`rfc61`
    * :ref:`rfc62`
    * :ref:`rfc63`
    * :ref:`rfc66`
    * :ref:`rfc67`
    * :ref:`rfc68`
    * :ref:`rfc69`
    * Output formats:
        * KML from Google SOC project (Assefa)
        * Any OGR Format (Frank)
        * GML3 (Steve - maybe during sprint?)
        * Cairo (PDF, SVG)
    * XML mapfile consumption:
        * run-time compilation (XML/XSLT => .map)
    * Labeling improvements (label precision and display of labels along curved lines)
    * Label Styles
    * Large Shapefile (dbf file >2Gb) Support 
    * WCS 2.0 + POST support in WCS 1.1
    * Ability to escape single/double quotes inside a string and/or a logical expression

Other Notable Enhancements
--------------------------

    * Additional query improvements (such as being able to do XOR on queries (ask Steve) - RFC 65?)
    * Support for style objects within labels
    * Use of classObj title for legend drawing
    * PHP MapScript refactoring for PHP 5.2+ new object/API model
    * Support for PostGIS curves

Deprecations / Removals
-----------------------

    * Removal of GD non-PC256 support (replaced by AGG driver)
    * Removal of native SVG support (use Cairo instead, or re-implement using plugin API)
    * Removal of native PDF support (use Cairo instead)
    * Removal of SWF/Flash output (no alternative)
    * Deprecation of symbolObj GAP, LINECAP, LINEJOIN and PATTERN properties (now set in style instead)
    * Deprecation of redundant template tags (e.g. [mapext_esc]) (see http://trac.osgeo.org/mapserver/wiki/60RemoveTemplateTags)
    * Removal of native, non-GDAL, image drivers (EPPL7, TIFF, etc...)
    * Removal of MyGIS driver (use OGR MySQL driver instead)

6.2 Wishlist
============

    * SVG symbol support (not owned, RFC exists)
    * Named styles / labels
    * embedded XML mapfile parser
    * Support for a filterObj (based on OGC filter specification) at the driver level (RFC - Steve)
    * Projection AUTO support (RFC - Howard)
    * Explore supporting SLD and/or GSS within a layerObj, inline, external file or URL (Assefa, RFC needed)
    * Object string serialization (e.g. $layer->toString()) (not owned)
    * Reimplement Flash/SWF output with new rendering API (needs funding)
    * Hatch rendering speed (use AGG hatches?)
    * Small feature labels: use lead instead of skipping feature (Zak)
    * mod_mapserver - multi-threaded loaded mapserver module for Apache
    * Color ramping, dynamic statistics generation (SteveL/Frank)

Planned Dates
=============

We will plan for 4 betas and 2 release candidate (RC) over a 6 week period after the code freeze 
(1 beta/RC per week each Wednesday). This will lead us to a final release sometime around 2011-04-20:

   ============== ===================
   Release        Date
   ============== ===================
   Feature freeze Fri. March 4, 2011
   6.0.0-beta1    Wed. March 9, 2011
   6.0.0-beta2    Fri. March 18, 2011
   6.0.0-beta3    Wed. March 23, 2011
   6.0.0-beta4    Wed. March 30, 2011
   6.0.0-rc1      Wed. April 6, 2011
   6.0.0-rc2      Wed. April 13, 2011
   6.0.0 (final)  Wed. April 20, 2011
   ============== ===================

Release Manager
===============
 
Daniel Morissette will act as release Manager (:ref:`rfc34`). (''motion passed with +1 from DanielM, TomK, TamasS, SteveL,
PericlesN, SteveW, FrankW, AssefaY, HowardB and ThomasB'')

SVN Tags / Branches
===================

    * The main trunk SVN is currently the 5.7 development version that we plan to release as 6.0 (`browse <http://svn.osgeo.org/mapserver/trunk/mapserver/>`__)
    * The stable SVN branch for this release will be called "branch-6-0" (not created yet).
    * Current proposed date for creating "branch-6-0" is the date of the 6.0.0 release
    * If post-5.6 developments require earlier branching then please bring up your request for branching on the -dev list.
    * The betas will be tagged in SVN as "rel-6-0-0-beta1", "rel-6-0-0-beta2", ... and the release candidates as "rel-6-0-rc1", "rel-6-0-rc2", etc...

Trac Conventions
================

In order to facilitate querying the Trac database for tickets that still need to be addressed for this release, 
we try to stick to the following conventions:

    * Tickets to be addressed for this release must have their target milestone set to "6.0 release"
    * Bugs/Enhancements that can't make it in this release but that we may want to address at a later time should be marked with the "FUTURE" target milestone with a comment explaining that the bug is postponed and if possible a quick analysis
    * The target milestone on a ticket should be set by the developers (bug owners) and not by the users (reporters).

Other good practices when dealing with tickets:

    * Please file tickets for any non-trivial bugfix or change to the software. This is so that we keep a trace for future reference of all bugfixes and changes that were made (why and how).
    * Please mark bugs ASSIGNED as soon as you start working on them
    * Please when marking a bug fixed include a comment describing the fix, the version of the software in which it was done, the SVN changeset number (e.g. r1234) and any other relevant information. This will just make our lives easier in a few months/years when questions come up about this issue.
    * When committing to SVN, please include the bug number in your SVN change log comment e.g. (#1234).
    * Keep documentation in mind when fixing/changing things: if you cannot update the documentation yourself then please create a documentation bug describing the new feature/change and which document(s) should be updated.

The following query returns all currently open bugs that are tagged with the "6.0 release" target milestone:

 http://trac.osgeo.org/mapserver/query?status=new&status=assigned&status=reopened&milestone=6.0+release

Q/A
===

Feedback and testing is welcome anytime during the 6.0 release process.




