2011-04-25  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.1.2:

	- changed threading defaults, so that a single main context is the
	default threading model.  Add ca.CAThread class to set initial
	context on entering a Thread target

	- ca/pv: multiple user-level connection callbacks now supported.

	- wx: refactored so that pvText is now named PVText, and similarly
  	      for all PV-enabled widgets (PVMixin, etc).
	- wx: connection callbacks now Enables/Disables wx Widget.
	- wx: Many other small tweaks and improvements.

2011-03-24  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.1.1:

	- changed package name from epics to pyepics (better tarball names)

	- changed PV.put() so that: 
	     * a normal ca_put() is the default
	     * wait=True will hang until completion
	     * use_complete=True will use a builtin callback that sets
	       the .put_complete attribute
	     * a general purpose callback can be specified.
	
2011-03-23  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.1.0:

	- added Angus Gratton's wx enhanced widgets

	- added Angus Gratton's autosave module

	- move main repository to github.com/pyepics/pyepics

	- dynamic subarrays supported.

	- upgraded win32 dlls to be 3.14.12, so that dynamic arrays work.

	- string arrays now correctly handled.

	- several small bug fixes to MotoDetailFrame.py (thanks to Mark Vigder)

	- dramatically improved testing framework, with dedicated
	  epics database (tests/Setup/pydebug.db) that can be loaded
	  and manipulated for testing

	- PV nows have a 'put_complete' field that indicates when
	  a put() has completed.

	- better handling of connection callbacks when a channel or PV
	  tries to connect several times in rapid succession.

	- fixed some bugs related to array values, being stepped on and
	  corrupted by subsequent calls.


2011-01-11  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.11:

	- improvements for devices, especially motor, scaler, and struck.
	- added wx MiniMotorPanel to wx.MotorPanel to provide a smaller,
     	simpler motor panel.

	- fixed configuration for build on Solaris (from T. Mooney)

	- added 'with_ctrlvars' option (default True) to
	PV.add_callback(). This will try to make sure that accurate
	control information is passed into a callback.

	- changed conversion of data from ctypes to numpy to use
	   numpy.ctypeslib.as_array(data)
	for waveforms, including CHAR arrays. The as_string=True
	option still works for CHAR arrays.

	Since numpy.ctypeslib.as_array() is much faster than numpy.array(),
	all array data is now converted to numpy arrays (if numpy is
	available and as_numpy is not explicitly set False) without
	looking at ca.AUTOMONITOR_LENGTH.

	- improved support and performance for getting partial arrays in
  	ca.py and pv.py, and in caget(), which now has 'count' and
	'as_numpy' keyword options.

2010-10-21  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.10:

 	- improved devices to use attributes in addition to get()/put()
	methods, so that
	   a = device('XX:m1', delim='.')
	   print a.VAL
	is equivalent to  print a.get('VAL').  Case is preserved, and
	device.get(attr, as_string=True) is still the only way to get
	the string representation.

	- several improvements to Motor and MotorPanel to use this new
  	device interface.

	- synchronous groupns now work.

	- epicsPV now works correctly.

	- added a 'count=' argument to ca.get() and PV.get() to limit
	(really!) the number of array elements fetched for array data.

	- fixed bug in handling very large char waveform for images.

	- better coverage and testing

2010-10-02  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.9:
 	- many fixes to ca.py to avoid errors on 64-bit linux (no other 
	64-bit systems available for testing at this time).  Two separat
	errors were found:
	-- incorrect mapping of "DBR_LONG" (should be	ctypes.c_int) 
	-- use of args.chid as a Channel ID in 'connection' and 'get'
	callbacks:  The issue is that the Python callback receives
	args.chid as a Python int, and this must be cast to a
	dbr.chid_t (a ctypes.c_long) for use by any ca function.
	Oddly, using the Python int worked on 32 bit systems.

	- simplified approach to reconnection attempts for un-connected
	channels.  The "force" keyword has been eliminated (it never
	really forced a connection, just retried).

	- fixed bug that prevented getting array data on systems without
	numpy installed. 
	
	- added tests, tested on more systems with more variations.


2010-09-17  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.8:
 	- fixed fetching of ctrl and time variants of array data, due
	to a patch from Glen Wright (<Glen.Wright@lightsource.ca>)!

	- improvement for connections on slow networks: 
	moved setting of monitor reference to pv.on_connect, and
	postponing setting self.connection until pv.on_connect is
	complete.  This prevents a main thread from seeing
	self.connected = True and plowing ahead while the connection
	callback is still being run.  Connections are now much
	more reliable over slow networks (say, over a VPN and DSL 
	line from home -- it works!)

	- set EPICS_CA_MAX_ARRAY_BYTES to 2**24 if not already set.
	
	- many fixes to wx.MotorPanel and related GUI components, so 
	that scripts/wx_motor.py now works much better.

	- small improvements to motor device.

	- added replace_printf_hanlder to ca.py: having difficulty with
	"fork a daemon process" with ca library.

	- doc improvements and updates

2010-08-31  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.7:
	- improved connection speed when connecting to many PVs
	(especially if some are not connected)

	- improved reliability of get(as_string=True) actually returning
	the "proper" string value of the PV (enum name, doubles formatted
	according to precision field, etc).

	- added CA Severity Exception, which is then ignored pend_io, so
	as to avoid unnecessary crashes.

	- added several tests.
	
	- documentation improvements
	
2010-06-10  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.6:
	- added working connection callbacks for PVs: users supply 
	a function that is called on changes to connection status.

2010-05-25  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.5:
	- set EPICS_CA_MAX_ARRAY_BYTES to 2**31 prior to loading the
  	libca DLL, if EPICS_CA_MAX_ARRAY_BYTES is not already set.

	- use ca.AUTOMONITOR_MAXLENGTH (default = 16384) to improve
	performance for large array / waveform data, in two ways:
	   1. a PV with an element count > ca.AUTOMONITOR_MAXLENGTH will
	NOT be automatically monitored, so that explicit get() calls are
	needed.  To override this,  use  auto_monitor=True when creating
	the PV.  Smaller arrays will still be automatically monitored
	(which can be turned off with auto_monitor=False).  This does not
	have a direct impact on the ca interface.

	  2.  PVs and ca channels with element count >
	ca.AUTOMONITOR_MAXLENGTH will NOT be implicitly converted to numpy
	arrays unless explicitly asked for with get(..., as_numpy=True).

	- fixed PV's char_value field in info paragraph, especially for
	"fresh" PVs where the precision value may not have been correctly
	fetched when info is called.

2010-05-18  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.4:
	fixed some performance bottlenecks for large arrays, as from
	areaDetector.
	
2010-05-02  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.3:
	fixed some threading issues

2010-04-20  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.2:

	- improved method to "locate CA dll" (or .so or .dylib) at run
	time, using ctypes.util.find_lib().  On Unix (including linux, Mac
	OSX), if the "usual system approach" of finding a DLL is not
	successful, the enviroment variables PATH and LD_LIBRARY_PATH (and
	DYLD_LIBRARY_PATH on Mac OSX) will be searched for the appropriate
	DLL.
		
	- improved functionality for Python Threads.   The _cache data in
	ca.py now stores Channel IDs with CA "context", so that use of
	Python threads (as from threading.Thread) work, allowing, gets(),
	puts(), and callbacks in separately running threads.
			

2010-04-08  Matt Newville  <newville@cars.uchicago.edu>

	* Version 3.0.1:
	inital release of version 3.0.1 

	This is a dramatic change from the 2.1 series.  Please consult
	documentation.
	
	
