ENTERPRISE VOLUME MANAGEMENT SYSTEM (EVMS)

v1.0.0 - 3/28/02
 - Core Kernel
   - Support for /proc.
     - New directory /proc/evms/.
     - File entries: volumes, info, plugins
     - Sysctl entry: /proc/sys/dev/evms/evms_info_level can be used to
       query and set the EVMS kernel messaging level.
 - GUI
   - Option panel fixes.
   - New columns in most panels: Read-only and Corrupt.
   - Default engine logging level changed from "everything" to "default".
   - Check for minimum required engine API version.
 - Text-Mode UI
   - Added "F5=Commit" to menu to allow saving changes without exiting.
   - Screen refresh fixes.
   - Default engine logging level changed from "everything" to "default".
   - Check for minimum required engine API version.
 - Command Line
   - On-line help cleanup.
 - New Plugin: s390 Segment Manager
   - Recognizes existing CDL, LDL, and CMS partitions.
   - Can build on top of these partitions in the engine, but
     cannot yet create new s390 partitions.
 - MD Plugin
   - Added proc entry: /proc/evms/mdstat
   - Added sysctl entries: /proc/sys/dev/evms/md/speed_limit_[min|max] for
     controlling the speed of RAID-1 and RAID-5 sync'ing.
 - BBR Plugin
   - Bug fixes to the I/O error remap handling.
 - AIX Plugin
   - Bug fixes in the discovery path and mirroring I/O path.
 - LVM Plugin
   - Added proc entry: /proc/evms/lvm/global

v0.9.2 - 3/09/02
 - Core Engine/Kernel
   - Fixed commit ordering bug.
   - Added kernel config support for ia64 and s390.
   - Export empty disks as compatibility volumes.
   - Engine configuration change.
     - Now requires --with-debug=basic to build with debugging symbols.
 - GUI
   - Added Feature Objects panel back to the main window.
   - Context pop-up menu items to jump to an object's parent,
     consuming container, and/or producing container.
   - Display detailed commit-time messages in GUI status bar.
   - Option panels now only show active options (with a button
     to optionally show all available options).
   - Added EVMS FAQ to Help menu.
 - Text-mode UI
   - Support for expand-container.
   - Support for modify-object-properties.
   - Support for FSIM operations (mkfs,unmkfs,fsck,defrag).
 - Command Line
   - Multi-command mode is now the default. The "-m" option has been removed,
     and a new "-s" option has been created to start in single command mode.
   - C style comments /* ... */ are now allowed in command files.
   - Updated online help.
   - New man page for command line.
 - BBR Plugin
   - Now uses two kernel threads for performing I/O on replacement
     sectors and updating the BBR mapping table.
 - Snapshot Plugin
   - Changes to work with new commit-time ordering.
   - Fixed kernel bug that was limiting the size of a snapshot object.
 - MD Plugin
   - New ioctls supported in kernel.
     - Add, Remove, Activate, Deactivate, Get_Array_Info.
   - Added support for these ioctls to RAID-1 and RAID-4/5 personalities.
 - LVM Plugin
   - Changes to snapshotting code to work with new commit-time ordering.
   - Bug fixes in expand and shrink option handling.
 - AIX Plugin
   - Kernel discovery and I/O path bug-fixes.
 - Utilities
   - evms_devnode_fixup can now run in daemon mode.

v0.9.1 - 2/14/02
 - GUI
   - New dialog help windows.
   - Support for mkfs, unmkfs, fsck, and defrag operations as provided
     by FSIMs.
   - Better descriptions of selection lists.
   - Display mount points in the Volumes view.
   - Display a startup/splash window during engine discovery.
   - Lots of UI cleanup and bug fixes.
 - Text-mode UI
   - Fixed support for adding/removing objects to/from containers.
   - Now supports same command line options as the GUI.
 - Segment Manager
   - Recognizes BSD, Solaris-x86, and Unixware partitions in the engine.
 - MD Plugin
   - RAID 4/5 kernel support.
     - Supports failover to spare disk or running in degraded mode.
     - Limited testing so far - be gentle.
   - RAID 4/5 creation and deletion.
   - Hot add/remove support for RAID-1.
 - AIX Plugin
   - Complete region discovery in the engine.
 - LVM Plugin
   - Fixed some potential memory overwrite bugs in the engine.
 - LVM Utilities
   - Removed evms_pvcreate and evms_pvremove. No longer necessary to
     explicitly create PVs before creating or expanding VGs, or to
     explicitly remove PVs after removing or shrinking VGs.
 - Kernel
   - Improved support for removable and hot-pluggable media.
   - Improved support for building EVMS as kernel modules.

v0.9.0 - 1/17/02
 - Core Engine
   - New APIs for Filesystem Interface Modules.
   - Support for setting properties of volumes, objects, and containers.
   - New user-interface tasks.
     - Expand containers, mkfs, fsck, defrag.
   - Improved user-space discovery algorithm.
 - GUI
   - Support for expanding containers and removing objects from containers.
   - Support for setting object properties.
 - Command Line
   - Support for expanding, shrinking containers.
 - LVM Plugin
   - Supports adding/removing objects (PVs) from containers in the GUI or the
     EVMS command line.
 - MD Plugin
   - Runtime support for Linear, RAID-0, and RAID-1.
     - Sync and spare-failover available for RAID-1.
     - Hot-add for RAID-1 still under development.
   - Engine support for Linear, RAID-0, and RAID-1.
     - Discovery, creation, deletion.
   - Engine discovery support for RAID-5. No creation yet.
   - Recommended to NOT use the EVMS MD plugin and the original MD driver in
     the same kernel.
 - EVMS Drivelinking Plugin
   - Support for missing elements in a drive-link. Exports the drive-link in
     read-only mode to allow recovery of data on the remaining elements.
 - AIX Plugin
   - Minimal discovery in user-space. Constructs all containers without
     exporting any regions.
 - Text-Mode Interface
   - All code and features added. Needs additional testing.
 - Kernel
   - Supports specifying an EVMS volume as a "root=" kernel boot-parameter.
 - Lots of testing and bug-fixes.

v0.2.4 - 12/11/01
 - Core Engine
   - New feature header metadata layout
   - Added expand and shrink for volumes and storage objects
   - New plugin loading method
     - Allows multiple plugins per library file (suggested by Andrew Clausen)
   - Cleanup of unused device nodes in /dev (evms_devnode_fixup command)
 - GUI
   - Expand and shrink support
   - User message and alert support
   - New window for displaying resulting objects after creates
   - Lots of task code bug-fixes
   - Better handling of changes to the various tree-views
 - EVMS Command Line
   - Expand and shrink support
   - Added lots of on-line help
 - MD/Software RAID Plugin
   - STILL VERY NEW AND NOT WELL TESTED! USE WITH CAUTION!
   - Support for Linear personality in the kernel
   - Ported MD superblock manipulation and I/O to EVMS plugin
   - Support for Linear and RAID 1 in the engine
 - LVM Plugin
   - Added support for expanding and shrinking LVM regions
     - Does not support shrinking striped LVs yet.
   - Added lvextend and lvreduce to LVM Command Line Utilities
   - Safer handling of importing VGs/LVs from other machines.
 - OS/2 Plugin
   - Complete discovery of OS/2 LVM volumes
 - Bad Block Relocation
   - STILL EXPERIENCING BUGS. USE WITH CAUTION!
   - Support for one or two copies of BBR metadata
   - Switched to binary tree for in-memory remapping
 - New ncurses-based user-interface
   - Currently displays all discovered objects in format similar to the GUI.
 - Added cluster-enablement API stubs to kernel code
 - Endian-neutrality for EVMS feature headers, all EVMS feature plugins, LVM
   region manager, OS/2 region manager, and default segment manager.
 - New method for accessing the gendisk list during discovery. Uses the
   walk_gendisk() patch from Christoph Hellwig.
 - Initial support for 2.5 kernels.
   - Core services and local device manager converted to new bio structures
   - Segment manager, LVM, Snapshot, and Drive-Linking plugins work as-is.
   - No testing yet on remaining plugins on 2.5.

v0.2.3 - 11/05/01
 - Fixed I/O bugs in System Data layer
   - This bug affected the operation of Snapshotting, DriveLinking, and BBR
 - Fixed I/O bug in EVMS Snapshotting plugin
 - Fixed feature-header handling bugs in engine
   - Prevented stacking features to create a volume

v0.2.2 - 11/04/01
 - Support for Devfs 
   - If devfs is enabled in the kernel, all necessary device files for
     discovered volumes will appear at boot time in /dev/evms.
   - Updated code in engine for creating device files in the case when devfs
     is not enabled.
 - Dual on-disk copies of EVMS-native metadata (system data and feature headers)
   - Kernel and engine common code responsible for recognizing and reconciling
     the redundant copies of system data and feature headers
   - Individual plugins responsible for maintaining multiple copies of
     their private metadata.
 - LVM plugin
   - Creating snapshot LVs and contiguous LVs, and deleting snapshot LVs.
   - All metadata is now read/written in endian-neutral format
   - Improved option handling and information displays.
 - Default Segment Manager plugin
   - Fixed a bug with removing the last segment from a disk.
   - When assigning the segment manager to a new disk, it now adds OS/2 boot
     sector code to the MBR.
 - Drivelinking and BBR engine plugins now commit using the new
   dual-metadata format.
   - BBR discovery works, but there is a known I/O bug when running mkfs on
     a BBR volume.
 - OS/2 Region Manager
   - Kernel and engine discovery of OS/2 compatibility volumes
   - Kernel discovery of OS/2 LVM volumes
 - Fixed kernel-side volume quiesce/rediscover bug
 - Modifed kernel patching process
   - EVMS package now comes with several small patches specific to particular
     2.4 kernel versions for patching the common files modified by EVMS.
   - See the EVMS-HOWTO for more details.

v0.2.1 - 10/20/01
 - Engine updates
   - Global namespace - all storage object names must be unique throughout the
     whole system, not just within a particular layer.
   - Internal locking (instead of a lock file) to prevent multiple writers.
   - Improvements in the Task interface.
   - Engine can now be built with Electric Fence for memory debugging.
   - Plugin collision-resolution - If two plugins with identical IDs are loaded,
     the engine keeps the one with the higher version number. Before, it just
     aborted.
 - GUI updates
   - Creation of segments, regions, containers, and feature objects.
   - Assigning objects to segment or region managers.
     - Currently tested by assigning Default Seg Mgr to a raw disk.
   - Extended info windows now support "extra" info for fields as specified
     by the plugins..
 - CommandLine updates
   - Several new commands have been coded.
     - Create, Allocate, Assign, Delete, Query
     - Tested creates on segments, feature objects, EVMS volumes, and
       compatibility volumes.
   - Most Query filters have been coded
     - Filter by size (GT, LT), plugin, volume, plugin type, options
 - LVM plugin
   - support for creating linear and striped LVs/regions.
     - no contiguous or snapshotting yet.
     - does allow specifying the underlying PVs for both linear and striped.
   - support for deleting LVs/regions.
     - does not support snapshot LVs yet.
   - lots of extended information support.
 - LVM Command Line Utilities
   - New commands
     - evms_pvremove
     - evms_lvcreate, evms_lvremove
     - evms_vgdisplay, evms_pvdisplay, evms_lvdisplay
 - EVMS Snapshots are now writable
 - Improved option handling in the default segment manager.
 - Initial drop of engine plugin code for the OS/2 region manager.
 - Drivelinking and BBR engine plugins currently do not commit any metadata,
   but do go through the "virtual" creation process in the engine.
 - AIX runtime code added mirroring support.
 - Updates to the kernel local device manager to recognize a wider range of
   local disk drives.
 - EVMS kernel info level can now be set during kernel configuration or as
   a boot-time parameter.
 - Cleaned up some kernel memory issues dealing with large memory requests.

v0.2.0 - 9/13/01
 - EVMS now supports stacking of segment (partition) managers
 - EVMS now supports stacking of region managers (VGEs)
        Stacking is only allowed within the layer, ie no segment managers on
	top of region managers.
 - Many GUI enhancements
        - Context (right mouse button) pop-ups
        - Destroy
        - Remove
        - Extended information
        - Volume create
 - Engine console messages are now written to a log file
	- /var/log/evmsEngine.log or user specified
        - log file is versioned (last 10 saved)
 - Command line now has query support, although very little has been tested
 - System Data layout has changed slightly
 - OS/2 VGE kernel code is done, supports OS/2 BBR and DriveLink volumes
 - AIX code enhanced, mirroring started, but not yet functional.
 - BBR feature available in the Engine
 - Drive Link Feature available in the Engine
 - Default Region manager deleted (no longer needed)
 - LVM and AIX segment managers deleted (no longer needed)


v0.1.5 - 8/13/01
 - OS/2 kernel VGE code dropped, not in build process yet.
 - EVMS BBR feature now functional in the kernel
 - 1st drop of EVMS BBR code in Engine. minimal testing, discover only
 - Drive Linking code in the Engine now functional, except for task interface.
 - LVM Utilities added  pvcreate, vgextend, vgreduce, vgremove
 - More commands added to the command line, minimal testing
 - More function in GUI, still display only.
 - Automatic creation of EVMS dev tree and nodes, no need for manual mknod
   anymore.


v0.1.4 - 7/23/01
 - New Engine List functions for listing Volumes, Objects, Regions,....
 - Task and Options interface is functional
 - SnapShot Feature is functional in the Engine for creating and deleting
   snapshots.
 - Linux LVM Engine code is partially done 
        - Create Container
 - 4 Linux LVM Compatibility Utilities complete (vgscan, lvscan, pvscan,
   vgcreate)
 - More 64bit sector offset enablement code
 - First drop of cmdline.  Scanning, parsing and support of Revert command.
 - First drop of GUI, only display functions, many changes coming.
 - AIX Read and (maybe) Write support for basic volumes. 
 - 1st drop Engine Drive Linking Feature. (discover only)
 - First drop of BBR runtime code (not functional yet)


v0.1.3 - 6/25/01
 - Engine and Dlist code now built with autoconf
 - PluginID structure changed, and kernel code synced with Engine.
 - kernel quiese bug fixed
 - More kernel initio optimizations (variable block sizes)
 - Task Structure defined for UI interactions
 - Support for SUN Solaris X86, UNIXWare, and BSD partitions in the kernel code
 - 1st drop of AIX kernel code (incomplete)
 - Initial drop of Engine code for Snapshot Feature (incomplete)
 - Initial drop of Engine code for Linux LVM (incomplete)
 - Feature Discovery available in the Engine
 - Engine API cleanup
 - DOS (default) Segment available for the Engine
 - Write support enable for Engine Plugins (beware!)
 - Minor numbers stored in EVMS System Data now honored at discovery time


v0.1.2 - 6/4/01 
 - Headers for UI interface
 - Performance enhancements in init_io write function
 - Error handling improvements in Feature loading
 - Fix for SMP race (Andi Kleen)
 - Unique names for common runtime functions
 - Debug support for memory management in EVMS Runtime
 - OS/2 Engine Segment Manager plug-in


v0.1.1 - 5/22/01
 - Fix for hang during initio write function


v0.1.0 - 5/18/01
 - Added Drive linking feaure to link partitions into single EVMS volume
 - Patches based on 2.4.4 kernel
 - Better Linux LVM error checking and recovery
 - Generic Snapshot write support (erroneously missing from last drop)
 - Enhanced Engine (user space config) with basic discovery logic for disks,
   segments, and regions
 - Enhanced DLIST list management APIs and code
 - Moved Kernel EVMS header to own subdirectory


v0.0.4 - 5/7/01
 - Added support for writing to LVM shapshotted volumes
 - added recognition of OS/2 formatted partitions
 - added basic init_io write support (badly in need of optimization)
 - re-write of most of the ioctl code
 - added Feature Discovery
 - added the Generic Snapshot Feature (Snapshots any volume to any other volume)
        LVM -> partition, partition -> LVM, partition -> partition, ...
 - added more common services
 - 1st drop of user space Engine code


v0.0.3 - 4/23/01
 - Added read support for LVM snapshots
 - Added device nameing
 - Added quiese volume IOCTL 
 - Based on 2.4.3 kernel
 - Added get geometry IOCTL


v0.0.2 - 4/9/01
 - Added LVM VGE code with support for reading and writing LVM volumes
 - Added support for r/w of LVM Striped volumes
 - Added support for dynamic rediscover of volumes without reboot
 - Added IOCTL support
        - get evms version
        - get/set info(debug) level
        - delete volumes (flush from runtime memory)
        - rediscover volumes
        - get logical disk handles 
        - get logical disk info
        - logical disk sector io (for use by user space to write metadata)
        - get list of exported volume minors


v0.0.1 - 3/21/01
 - initial release

