Release History¶
See the release procedure section for more details on version numbering and how releases are made.
Version 3.1.x¶
3.1.0 (2019-01-19) [Download]
Add support for Windows.
More accurately, the test suite has been updated so that no tests fail on Windows (tested with Windows 10 Version 1803 running Python 3.7.1). Test coverage is pretty good, so this should be a fair indication that Comet is functional, but I’m not aware of anybody actually deploying Comet on Windows in the wild.
A few tests are skipped. Most of these refer to spawning external commands. That functionality should be regarded as untested; if it works for you, please let me know.
Version 3.0.x¶
3.0.0 (2018-05-30) [Download]
- This is the last major relase of Comet to support Python 2.7. Future major (4.0.0) and minor (3.1.0) releases will only run on Python 3. Critical bugfixes to this version of Comet will be provided as patch releases (3.0.x) until the next major release.
- This release adds support for Python 3.4 and later. Earlier versions of Python 3 are not tested. Note that event databases generated by Comet running on Python 2 might not be compatible with Comet running on Python 3: this depends on the underlying Python installation. For safety, remove old event databases before upgrading; Comet will automatically create new ones as it needs them.
- Rename
--whitelist
command line option to--author-whitelist
. This limits the IP addresses which are authorized to submit new events to the broker. - Introduce the
--subscriber-whitelist
command line option. This limits the IP addresses which are authorized to subscribe to event feeds from the broker. Thanks to Tim-Oliver Husser. (GitHub #10, GitHub #39, GitHub #41) - Log the return code of failed external commands at level
WARN
. Log standard output and error at levelDEBUG
. - Automatically create the event DB directory if it doesn’t exist. Thanks to Tim Staley for the suggestion. (GitHub #54, GitHub #55)
- Per the VTP standard, it’s not necessary for subscribers to specify IVOIDs (or, in older terminology, IVORNs). Although there’s no downside protocol-wise to doing so, dropping this requirement makes for a simpler user interface. (GitHub #50)
- Per the VTP standard, timestamps in transport messages must be UTC. We now
check that all timestamps in transport messages generated by Comet have a
Z
suffix. (But, of course, we are permissive in what we accept, and don’t reject transport messages from the remote end of a connection which don’t do this.) (GitHub #52) - Events submitted by authors to the broker running in
--receive
mode are now required to have IVORNs which validate according to the IVOA Identifiers Version 2.0 specification for IVOIDs. This is somewhat better defined than the earlier (version 1.12) specification for IVORNs. (GitHub #51) - Comet now uses the term “IVOID” in preference to “IVORN” throughout its code and documentation. This follows current IVOA usage. Note, though, that the VOEvent standard (version 2.0) refers to the term IVORN, and any user supplied code, such as filters, which interact directly with the contents of VOEvent packets will need to stick to that terminology. (GitHub #51)
Version 2.0.x¶
- 2.0.1 (2016-03-17) [Download]
- Remove incorrect calls to old (pre-2.0.0) logging API. Thanks to Tim-Oliver Husser & Tim Staley. (GitHub #39, GitHub #40)
- Reformat documentation to add Acknowledgements.
- 2.0.0 (2016-01-31) [Download]
- Switch dependency from ipaddr-py to py2-ipaddress. The latter is a backport of the Python 3 functionality, so this helps clear the way for an eventual Python 3 version of Comet.
- Use the
$TMPDIR
environment variable, if set, to store the event database. Otherwise, fall back totmp
. - Drop support for Python 2.6, following the same change made in Twisted.
- Improve checking for valid IVORNs.
- Some extremely old versions of Comet (dating from before the 1.0.0 release) used a different format for the database of seen events. All released versions through 1.2.2 automatically update old-style databases to the new format when run. As of this release, this support for legacy databases has been dropped. It is necessary to use a previous Comet release to update the database format before upgrading to this version.
- Refactor the codebase caused a minor API change: logging facilities are
now available from the
comet.log
module. End user code — notably event handling plugins — should replace statements to the effect offrom comet.utility import log
withimport comet.log as log
. The convenience aliaseslog.msg
andlog.warning
have been removed: uselog.info
andlog.warn
instead.
Version 1.2.x¶
- 1.2.2 (2015-04-20) [Download]
- Disable XML entity expansion for documents received from the network. This eliminates a class of potential resource exhaustion attacks.
- Update documentation to request citation of the paper in published work which makes use of Comet.
- 1.2.1 (2014-09-02) [Download]
- Correctly check that the (required)
--local-ivo
command line option was provided (GitHub #35).
- Correctly check that the (required)
- 1.2.0 (2014-08-26) [Download]
- When subscribing to a remote broker, we wait for a short period after the initial connection is made before marking it as successful. This means that if the broker rapidly drops the connection (e.g. due to an authentication failure), we retry the connection with an exponential back-off rather than an immediate reconnection (GitHub #29).
- Timestamps in
iamalive
messages are marked as being in UTC. authenticate
messages which specify XPath filters are schema compliant (GitHub #31).- Subscriber refuses to start if an XPath
--filter
is specified with invalid syntax (GitHub #33). - Require that a valid IVOA identifier (IVORN) be supplied by the end user when starting Comet rather than relying on a default.
- Require that events submitted to the broker by authors have valid IVORNs.
Version 1.1.x¶
- 1.1.2 (2014-08-26) [Download]
- Fix a bug which could result in malformed event IVORNs exhausting the available resources and ultimately rendering Comet unable to process more events (GitHub #34).
- 1.1.1 (2014-07-08) [Download]
- Fix a bug which could result in the same VOEvent message being processed multiple times (GitHub #30).
- Add compatibility with DBM-style databases which do not provide an
.items()
method.
- 1.1.0 (2014-02-26) [Download]
- Improved documentation.
- Interval between broadcast test events is user configurable, and they
may be disabled. See the
--broadcast-test-interval
option. - Test events now include details of the version of Comet used to generate them.
- Event handler plugin system reworked. Plugins may now take command line
options. See the event handler documentation for
details. Note that the syntax for invoking the
print-event
handler has changed (now--print-event
rather than--action=print-event
). - Plugin which writes events received to file (
--save-event
).
Version 1.0.x¶
- 1.0.4 (2013-11-13) [Download]
comet-sendvo
will choose its Python interpreter based on the environment.
- 1.0.3 (2013-11-12) [Download]
- Update
MANIFEST.in
so thatrequirements.txt
is included in the distribution. This changes nothing on an installed system.
- Update
- 1.0.2 (2013-11-12) [Download]
- Add a
requirements.txt
file and specify the installation requirements insetup.py
. This makes installation easier, but changes nothing on an installed system.
- Add a
- 1.0.1 (2012-08-28) [Download]
- Fix for badly formed XML
Transport
element.
- Fix for badly formed XML
- 1.0.0 (2012-08-27) [Download]
- Initial public release