Please see git logs for detailed change log.
This file just contains highlight.

Changes Prior to release 3.1.4
  Two fixes related to configs that aren't using udev:
   -    Don't remove md devices which 'standard' names on --stop
   -    Allow dev_open to work on read-only /dev
  And fixed regressions:
   -    Allow --incremental to add spares to an array
   -    Accept --no-degraded as a deprecated option rather than
            throwing an error
   -    Return correct success status when --incrmental assembling 
        a container which does not yet have enough devices.
   -    Don't link mdadm with pthreads, only mdmon needs it.
   -    Fix compiler warning due to bad use of snprintf

Changes Prior to release 3.1.3
   -    mapfile now lives in a fixed location which default to
        /dev/.mdadm/map but can be changed at compile time.  This
	location is choses and most distros provide it during early
	boot and preserve it through.  As long a /dev exists and is
	writable, /dev/.mdadm will be created.
	Other files file communication with mdmon live here too.
	This fixes a bug reported by Debian and Gentoo users where
	udev would spin in early-boot.
   -    IMSM and DDF metadata will not be recognised on partitions
        as they should only be used on whole-disks.
   -    Various overflows causes by 2G drives have been addressed.
   -    A subarray of an IMSM contain can now be killed with
        --kill-subarray.  Also subarrays can be renamed with
	--update-subarray
   -    -If (or --incremental --fail) can be used  from udev to
        fail and remove from all arrays a device which has been
	unplugged from the system.  i.e. hot-unplug-support.
   -    "mdadm /dev/mdX --re-add missing" will look for any device
        that looks like it should be a member of /dev/mdX but isn't
	and will automatically --re-add it
   -    Now compile with -Wextra to get extra warnings.
   -    Lots of minor bug fixes, documentation improvements, etcc

Changes Prior to release 3.1.2
   -    The default metadata has change again (sorry about that).
        It is now v1.2 and will hopefully stay that way.  It turned
        out there with boot-block issues with v1.1 which make it 
        unsuitable for a default, though in many cases it is still
        suitable to use.
   -    Stopping a container is not permitted when members are still
        active
   -    Add 'homehost' to the valid words for the "AUTO" config file
        line.  When followed by "-all", this causes mdadm to
        auto-assemble any array belonging to this host, but not
        auto-assemble anything else.
   -    Fix some bugs with "--grow --chunksize=" for changing chunksize.
   -    VAR_RUN can be easily changed at compile time just like ALT_RUN.
        This gives distros more flexability in how to manage the
        pid and sock files that mdmon needs.
   -    Various mdmon fixes
   -    Alway make bitmap 4K-aligned if at all possible.
   -    If mdadm.conf lists arrays which have inter-dependencies,
        the previously had to be listed in the "right" order.  Now
        any order should work.
   -    Fix --force assembly of v1.x arrays which are in the process
        of recovering.
   -    Add section on 'scrubbing' to 'md' man page.
   -    Various command-line-option parsing improvements.
   -    ... and lots of other bug fixes.
	
Changes Prior to release 3.1.1
   -    Multiple fixes for new --grow levels including fixes for
	serious data corruption problems.
   -    Change default metadata to v1.1
   -    Change default chunk size to 512K
   -    Change default bitmap chunk size to 64Meg
   -    When --re-add is used, don't fall back to
	--add if --re-add fails as this can destroy data.

Changes Prior to release 3.1
   -    Support --grow to change the layout of RAID4/5/6
   -    Support --grow to change the chunksize of raid 4/5/6
   -    Support --grow to change level from RAID1 -> RAID5 -> RAID6 and
        back.
   -    Support --grow to reduce the number of devices in RAID4/5/6.
   -    Support restart of these grow options which assembling an array 
	which is partially grown.
   -    Assorted tests of this code, and of different RAID6 layouts.
	
Changes Prior to release 3.0.3
   -    Improvements for creating arrays giving just a name, like 'foo',
	rather than the full '/dev/md/foo'.
   -    Improvements for assembling member arrays of containers.
   -    Improvements to test suite
   -    Add option to change increment for RebuildNN messages reported
	by "mdadm --monitor"
   -    Improvements to mdmon 'hand-over' from initrd to final root.
   -    Handle merging of devices that have left an IMSM array and are
	being re-incorporated.
   -    Add missing space in "--detail --brief" output.
	
Changes Prior to release 3.0.2
   -    Fix crash when hosthost is not set, as often happens in
	early boot.

Changes Prior to release 3.0.1
   -    Fix various segfaults
   -    Fixed for --examine with containers
   -    Lots of other little fixes.
	
Changes Prior to release 3.0
   -    Support for externally managed metadata, specifically DDF and IMSM.
   -    Depend on udev to create entries in /dev, rather than creating them
	ourselves.
   -    remove --auto-update-home-hosts
   -    new config file line "auto"
   -    new "<ignore>" and "any" options for "homehost"
   -    numerous bug fixes and minor enhancements.
[--snip--]
