Version 2.8.0
~~~~~~~~~~~~~
* Version bump prior to DIFX-2.8 branching, Nov 4, 2022
* mk6mon update slot count for Mark6StatusMessage parsing

Version 2.7.0
~~~~~~~~~~~~~
* Post DiFX-2.6
* cpumon: clean up end of line
* Port utilities to python3 (or python2.7): 
  - cpumon
  - difxdiagnosticmon
  - difxwatch
  - errormon
  - errormon2
  - getsmart  (this functionality seems broken at the moment, both before and after python3 conversion)
  - mk5mon
  - mk6mon
  - restartdifx  (this utility should be moved to mpifxcorr)
  - smartmon
  - statemon
* Remove incomplete and not used utility: mk5display
* Python utilities: multicast receive buffer size to 8000 (from 1500)
* mk6mon: rewrite; build in support for multislot (>4 slots) Mark6 units
* difxmessage: new Mark6SlotStatusMessage to support Mark6 multislot

Version 2.6.0
~~~~~~~~~~~~~
* Fix for rpm build
* add DifxMessageMark6Activity
* Version for DiFX-2.6, Mar 4, 2019

Version 2.5.0
~~~~~~~~~~~~~
* Post DiFX-2.4
* python functions errormon, errormon2, cpumon, mk5mon, statemon: explicitly capture ctrl-C
  - seemingly needed for some operating systems ???
* mk5mon (ver 0.6):
	- obtain station codes from difxdb (if enabled) and display them
	- check for mk5daemon inactivity
	- add options to set multicast group/port
	- color coded output in case of errors
* Change name of .rpm to vlbi-difxmessage.*.rpm
* Added new messaging to start and stop fuseMk5
* Added new lock to mark5ipc for fuseMk5
* Version for DiFX-2.5, May 16, 2017

Version 2.4.0
~~~~~~~~~~~~~
* Increase receive buffer size for binary receives
* Add function to send DifxStop message
* utils/difxwatch: added socket timeout, and changed the 'tag' to check for a job start
* Add input file name to Alert and Status messages as <input> tags in the <body>
* Version for DiFX-2.4, Nov 4, 2014

Version 2.3.0
~~~~~~~~~~~~~
* DifxMessageMk5Control message type added
* Version for DiFX-2.3, Dec 20, 2013

Version 2.2.0
~~~~~~~~~~~~~
Support for IPv6 within C code.  Likely overall performance improvement at the same time
  - python code, such as errormon, statemon, ..., are not yet converted.
  - warning: all code linking to difxmessage that might use IPv6 should change
    the size of from[] to DIFX_MESSAGE_MAX_INET_ADDRESS_LENGTH or face
    possible segfaulting
NOTE: these changes have been backed out until a concurrency issue is fixed
After a period of deprecation finally removed difxMessageSendCondition().  Use
  difxMessageSendDriveStats() instead.
Prefer to use new function DifxMessageSend2 over DifxMessageSend.  It is more
  efficient.
Allow spoofed hostname via the difxMessageInitFull() function.  Perhaps useful in
  cases where multiple interfaces exist on the same machine?
Version for DiFX-2.2, May 31, 2013

Version 2.1.0
~~~~~~~~~~~~
Version number change prior to DiFX-2.1
Version for DiFX-2.1, May 4, 2012

Version 2.0.2
~~~~~~~~~~~~~
Add new Mark5 states "booting", "recording" and "copyto"
Add new Mark5 state "record"
Add SMART monitor message type for disk diagnostics
  one document per disk (i.e., 8 per module)
Change Condition message type to DriveStats
  attempts made to retain backward comatibility
Add dispersion measure to transient message
Fix parsing of Mark5 version messages and include a couple extra parameters
Add support for "restartSeconds" to DifxStartMessage
Add options for different start "functions"
Add support for diagnostic messages
Add support for file request
Add nCore to Load message
Add utility restartdifx

Version 2.0.1
~~~~~~~~~~~~~
Add binary message option for testdifxmessagereceive
Able to make RedHat RPM
Version for DiFX-2.0.1, June 10, 2011

Version 2.0.0
~~~~~~~~~~~~~
Re-numbered version from 7.4 (the jump from 0.7 to 7.1 some time ago was a mistake)
Added different types of binary message (STA/ autocorrelation, cross-correlation, kurtosis)
Some fixes for array lengths
Version for DiFX-2.0.0

Version 7.3
~~~~~~~~~~~
Add difxVersion to difxStartMessage
cpumon and mk5mon: catch exceptions and prevent terminal infection
Add mark5ipc library
difxlog: Log transient messages
testdifxmessagereceive: allow selection of one message type, add in-line help
For DiFX-1.5.4

Version 7.2
~~~~~~~~~~~
Add transient XML type
Fix errormon/errormon2 in cases where "entities" are in message strings
Use pclose after popen (difxlog)
Lots of protection against excessive string lengths
For DiFX-1.5.3

Version 7.1
~~~~~~~~~~~
Do better job expanding "entities" in XML formation
 - do expansion more universally
 - encode ascii values 1-31, 128-255 in [[]] so they can be idenfied and not crash parsers
Add new Mark5 States: Test TestWrite and TestRead
Improve safety of string manipulation
 - TODO: entity expansion safety

Version 0.7 20090904
~~~~~~~~~~~
Add XML type for condition reports
  one document per disk (i.e., 8 per module)
Test programs for condition document types
DiFX version 1.5.1
unchanged for DiFX-1.5.2

Version 0.6 20090518
~~~~~~~~~~~
Improvements to difxlog
DiFX version 1.5

Version 0.5 20090131
~~~~~~~~~~~
Complete change from DifxMessageError to DifxMessageAlert
Add Mark5Version message type
Add Daughterboard information to Mark5Version messages
Implement a minimum send delay (set to 40us now) to prevent loss of messages
  when many are sent at nearly the same time.  Warning -- this could have 
  performance impacts!

Version 0.4 20090121
~~~~~~~~~~~
Escape characters in xml messages: < > & ' "
  see http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
Add initial version of "mk5display", a python gui to watch a bank of Mark5 units. 
  This is basically a toy, not for real use at the moment.
Add difxStopMessage
Add difxlog

Version 0.3  20080715
~~~~~~~~~~~
New branch version post version 1.1
Add table (enum) of error levels
Rename ERROR to ALERT
Binary message sending, intended for Short Term Accumations (STAs)
Don't assume default PORT and GROUP
Add DifxMessageParameter type
  Note: mpiid is a target parameter for this message type, not a source parameter
Add DifxMessageStart 
Started distinguishing between STA and LTA types

Version 0.2  20080518
~~~~~~~~~~~
Add XML parsing routines
More structured document types
Add generic document union and associated processing
NRAO-DiFX version 1.1

Version 0.1  20080311
~~~~~~~~~~~
Initial version