Skip to content
This repository has been archived by the owner on Jul 8, 2022. It is now read-only.

Commit

Permalink
Add CHANGELOG.md (#519)
Browse files Browse the repository at this point in the history
* Added CHANGELOG.md
This file is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
List changes since cppTango 9.2.5.
Changes with potential compatibility issues are documented as suggested in #509 and are in bold.

* Add links to issues and PRs in CHANGELOG.md

* Update CHANGELOG.md
with references to #508,#516,#518,#520,#521,#522,#523,#529,#531,#533,#537

* Update CHANGELOG.md with #517

* Update CHANGELOG.md. Add link for issue 395

* Moved 2 items from Fixed to Changed section
Added a warning about the event subscription change sleep reduction

* First version of the release notes for cppTango 9.3.3
Rename RELEASE_NOTES in RELEASE_NOTES.md.
The previous RELEASE_NOTES content has been moved to CHANGELOG.md file.

* Added reference to cppTango#539
Preparation for cppTango 9.3.3 release

* Update CHANGELOG and RELEASE_NOTES with #541 and #542

* Reword one item in CHANGELOG.md and RELEASE_NOTES.md

* Update CHANGELOG.md with #544, #546 and #549

* Add reference to #532
Add 9.3.3 release date

* Add 9.3.3 release date
  • Loading branch information
bourtemb authored and Ingvord committed Mar 29, 2019
1 parent b76b006 commit 9c8837f
Show file tree
Hide file tree
Showing 3 changed files with 514 additions and 73 deletions.
291 changes: 291 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## [9.3.3] - 2019-03-29
### Added
- Add asyn_reconnection test ([#502][pr-502])
- Add .gitignore ([#522][pr-522])
- Add Visual Studio 2017 compatibility. Appveyor now builds for Visual Studio 2017 in addition to all the previously
supported versions ([#533][pr-533])

### Changed
- Replace CORBA::string_dup calls with Tango::string_dup ([#474][pr-474])
- Replace CORBA::string_free calls with Tango::string_free ([#539][pr-539])
- Make it possible to remove dynamic attributes from delete_device() by moving the location where the device is removed
from the device list ([#518][pr-518])
- Use python2 (if available) to run cxxtestgen ([#523][pr-523])
- Switch to Travis Xenial infrastructure ([#516][pr-516])
- Catch exceptions from unsubscribe_event() in DeviceProxy destructor ([#521][pr-521])
- Improve install documentation ([#529][pr-529])
- Install log4tango include files under *<install_prefix>*/include/tango/log4tango ([#517][pr-517])
- Update Doxygen documentation ([#532][i-532], [#544][pr-544])
- Update Debian 7 and Debian 8 Travis Docker files after Debian Wheezy end of life and jessie-updates removal
([#546][i-546], [#549][pr-549])

### Fixed
- Fix memory leak in get_device_property() on Windows when code compiled with Visual Studio 10 or older
([#439][i-439], [#488][pr-488])
- Fix cxx_fwd_att occasional failure ([#384][i-384], [#428][i-428], [#493][pr-493])
- Fix "Change event subscription blind to change events right after device server restart" issue
([#359][i-359], [#503][pr-503]).
**This bug fix may trigger the reception of 2 consecutive events having possibly the same attribute value
(but different timestamps) during the Device Server startup phase.**
- Fix client crash in case of asynchronous write_attribute executed immediately after reconnection ([#502][pr-502])
- Fix issue with dynamic attributes when a device is restarted on a device server exporting several devices which are
creating dynamic attributes ([#458][i-458], [#508][pr-508])
- Fix uncaught DevFailed exception in DeviceProxy destructor in cxx_stateless_subscription test case when using
ZMQ 4.2.3 ([#514][i-514]). Since [zeromq/libzmq@edb4ca1][libzmq-c-edb4ca1], peer disconnection triggers zmq_disconnect
on a zmq socket.
Further zmq_disconnect calls for such socket and endpoint will fail with errno set to ENOENT.
The patch provided in [#520][pr-520] ignores such failure.
- Fixed a broken dependency on generated Debian package ([5c74e8d][c-5c74e8d])
- Fix appveyor.yml after appveyor windows image update ([#537][pr-537])
- Fix event compatibility issues with device servers exporting Device_4 devices. Fix bug with Pipe, Data Ready and
Device Interface Change events. Fix event channel name issues in these different cases. ([#492][i-492], [#531][pr-531])
- Fix WAttribute::rollback() for DevUshort WRITE attributes ([#541][i-541], [#542][pr-542])

## [9.3.2] - 2018-09-12 [unstable]
### Added
- Add Tango::string_free ([#460][pr-460])
- Integrate Coveralls and Sonar ([#369][i-369], [#478][pr-478])

### Changed
- Tests: Split runner executable into several executables ([#275][i-275], [#476][pr-476]).
- Doxygen: upgrade to doxygen 1.8.13

## Removed
- Disable log4tango benchmark tests.

### Fixed
- Fix memory leak in zmq_event_subscription_change() ([#457][i-457], [#460][pr-460])
- Fix bug impacting device servers using dynamic attributes ([#458][i-458], [#459][pr-459])
- Fix reconnection issues when a client subscribes to several events ([#455][i-455])
- Fix some event compatibility issues with device server <= Tango 8 ([#456][i-456])
- Fix event field in EventData structure passed to user's callback (broken in Tango 9.3.0 and 9.3.1)
- Fix attribute name in EventData structure passed to user's callback for Attribute Config events
- Fix a bug occurring when an event is pushed at the same time as an event (re)subscription occurs
([#484][i-484], [#485][pr-485])
- Fix event name (EventData.event) passed to client's Callback after Tango 9 attribute reconnection ([#486][pr-486])
- Fix some doxygen warnings

## [9.3.1] - 2018-05-23 [unstable]
### Changed
- Add -pedantic for GCC/Clang and debug mode ([#441][pr-441]). **This change can generate
errors with very old compilers (e.g. gcc 3.4.6) when compiling the lib debug
version.** Please remove manually -pedantic flag in configure/CMakeLists.txt if
you need to compile the debug version on a very old compiler.
- Generate static library ([#17][i-17])

### Fixed
- DServerSignal: Include errno header instead of trying to manually get the declaration right ([#441][pr-441])
- Remove GNU_CXX definition for GCC/Clang ([#441][pr-441])
- filedatabase.cpp: Remove stray semicolon ([#441][pr-441])
- FileDatabase: Use correct format specifier for unsigned arguments to sscanf ([#441][pr-441])
- EventConsumer::connect_event: Fix misleading indentation ([#441][pr-441])
- PollThread: Fix multiline macro definitions ([#451][pr-451])
- Fix compilation definitions ([#437][pr-437])
- Replace asserts in EventConsumer::initialize_received_from_admin with exceptions ([#453][i-453])

## [9.3.0] - 2018-05-04 [unstable]
### Fixed
- Fix FQDN events ([#423][pr-423], [#315][i-315])
Limitations:
- in case DeviceProxy is used for event subscription, client will get incorrect value
in the event callback if short domain name is used in env.TANGO_HOST
e.g. hzgc103 -> hzgc103.desy.de
- Fix memory leak when pipe event is sent and there is no client ([#447][i-447],[#448][pr-448])
- Set the ZMQ Receive Buffer High Water Mark only if it changes ([#444][i-444],[#445][pr-445])
to reduce the impact of a bug in ZMQ 4.2.0 and ZMQ 4.2.1 which was fixed in
commit [zeromq/libzmq@edc770d][libzmq-c-edc770d].

## [9.2.8] - 2018-03-29 [unstable]
### Changed
- Cmake release targets ([#438][pr-438])
- **Install include files in <install_prefix>/include/tango directory instead of
<install_prefix>/include**.

### Fixed
- Fix appveyor build

## [9.2.7] - 2018-02-27 [unstable]
### Added
- **Use CMake**
- Set CMake minimum requirement to CMake 2.8.12 ([#422][pr-422])
- Add DevVarBooleanArray operators ([#347][pr-347])
- Add support for NaN and inf in device properties ([#360][i-360], [#362][pr-362],[ #371][pr-371])
- Refactor DeviceAttribute code ([#394][pr-394]). DeviceAttribute::init_common_class_members() method is now private
- Forwarded dynamic attributes ([#342][pr-342])
- Build on Windows using CMake and setup appveyor CI ([#413][pr-413])
- Enable Travis CI ([#375][pr-375], [#417][pr-417], [#418][pr-418], [#419][pr-419])
- tango_config.h: Add clang detection ([#442][pr-442])
- Doxygen: Add searchbar ([#432][pr-432])

### Changed
- DeviceAttribute::get_type() no longer throws an API_EmptyDeviceAttribute exception when the DeviceAttribute is empty.
It returns DATA_TYPE_UNKNOWN instead ([#393][pr-393], [#509][i-509]).

**Warning! This change could lead to Segmentation fault** in code doing things like:
```
DeviceAttribute da;
da = device->read_attribute("AnAttributeWithINVALIDQualityFactor");
cout << "Type = " << Tango::CmdArgTypeName[da.get_type()] << endl;
```
Please refer to [#510][i-510] for more details.
- Improve ZmqEventSubscriptionChange command argin and argout descriptions ([355da96][c-355da96])
- Generate files from IDL (**add a dependency to tango-idl repository. omniidl is required to be able to generate some
files from CORBA IDL**)
- Get exception message from event callback ([#431][pr-431])
- Add a map in MultiAttribute object to improve performances ([#424][i-424], [#430][pr-430])
- A small Doxygen improvement - take version from cmake ([#436][pr-436])
- Reduce event subscription sleeps on linux ([#415][pr-415]).

**Warning**: There is no guarantee that after a successful call to subscribe_event() that a subscriber will receive all
the events it is interested in. In some situations, some important events might be missed if they occur between the
subscribe_event() call and the ZMQ subscription reception on the ZMQ publisher side, potentially leading to situations
where a client application might show out of date/incorrect values.
- Tango 9 LTS fix[#395][i-395] (Inserting const C string in DeviceData) ([#396][pr-396])

### Removed
- Remove zmq.hpp ([#266][i-266], [#421][pr-421]). **Add a dependency to https://github.com/zeromq/cppzmq**

### Fixed
- Add missing event implementation with \_TG_WINDOWS\_ ifdef ([#349][i-349])
- Fix [TangoTickets#3][tt-i3] (Events received with UNKNOWN data format and without values when subscribing from
a Tango 9 client to a Tango 7 server DevShort attribute)
- Fix bug related to heartbeat endpoints which could eventually occur when the device server runs on a host with
multiple network interfaces ([36aca17][c-36aca17])
- Fix bug after admin device RestartServer command ([#358][pr-358])
- Fix bug in Attribute::get_att_device_class() ([4a00c8e][c-4a00c8e])
- Fix RcsId warnings ([#374][pr-374])
- Fix warnings reported by gcc 6.3 related to misleading indentations ([#376][pr-376])
- Fix "unused parameter" warnings ([#379][pr-379])
- Fix shift-negative-value compilation warnings reported by g++ 6.3 ([#383][pr-383])
- Fix DeviceAttribute constructor for short and enum data types ([#392][i-392], [#393][pr-393])
- Fix bug leading occasionally to segmentation faults of Tango 9 device servers ([#398][pr-398])
- Fix bug in event name when pushing an error event to IDL5 clients ([#400][pr-400])
- Attribute: Don't treat an integer as an char* ([#403][pr-403], [#406][pr-406])
- pointer-cast-size-mismatch attrgetsetprop.cpp:200 ([#339][i-339], [#406][pr-406])
- Fix build errors when using C++17 ([#405][pr-405], [#425][pr-425])
- Fix issue with polling not starting automatically on dynamic attributes ([#427][pr-427])
- Add noreturn to remove some compilation warnings ([#435][pr-435])
- CPU load when device has large number of attributes ([#404][pr-404])
- push event performance issue ([#244][i-244])

[9.3.3]: https://github.com/tango-controls/cppTango/compare/9.3.2...9.3.3
[9.3.2]: https://github.com/tango-controls/cppTango/compare/9.3.1...9.3.2
[9.3.1]: https://github.com/tango-controls/cppTango/compare/9.3.0...9.3.1
[9.3.0]: https://github.com/tango-controls/cppTango/compare/test-auto-deploy...9.3.0
[9.2.8]: https://github.com/tango-controls/cppTango/compare/9.2.7...test-auto-deploy
[9.2.7]: https://github.com/tango-controls/cppTango/compare/cppapi_Release_9_2_5...9.2.7

[c-4a00c8e]: https://github.com/tango-controls/cppTango/commit/4a00c8e4203668c247a2ada6e309470cd53744d3
[c-36aca17]: https://github.com/tango-controls/cppTango/commit/36aca17d43a97ebe09fdc825941cb39f6c48289e
[c-355da96]: https://github.com/tango-controls/cppTango/commit/355da96ac7d82d4a7727f68f3b093c98f087fd98
[c-5c74e8d]: https://github.com/tango-controls/cppTango/commit/5c74e8d33ce85036c9348a09b894e05ac3e8cdf9

[libzmq-c-edc770d]: https://github.com/zeromq/libzmq/commit/edc770d680b2be5a633526bd2c724d66406c8360
[libzmq-c-edb4ca1]: https://github.com/zeromq/libzmq/commit/edb4ca1

[tt-i3]: https://github.com/tango-controls/TangoTickets/issues/3

[i-17]: https://github.com/tango-controls/cppTango/issues/17
[i-244]: https://github.com/tango-controls/cppTango/issues/244
[i-266]: https://github.com/tango-controls/cppTango/issues/266
[i-275]: https://github.com/tango-controls/cppTango/issues/275
[i-315]: https://github.com/tango-controls/cppTango/issues/315
[i-339]: https://github.com/tango-controls/cppTango/issues/339
[pr-342]: https://github.com/tango-controls/cppTango/pull/342
[pr-347]: https://github.com/tango-controls/cppTango/pull/347
[i-349]: https://github.com/tango-controls/cppTango/issues/349
[pr-358]: https://github.com/tango-controls/cppTango/pull/358
[i-359]: https://github.com/tango-controls/cppTango/issues/359
[i-360]: https://github.com/tango-controls/cppTango/issues/360
[i-369]: https://github.com/tango-controls/cppTango/issues/369
[pr-362]: https://github.com/tango-controls/cppTango/pull/362
[pr-371]: https://github.com/tango-controls/cppTango/pull/371
[pr-374]: https://github.com/tango-controls/cppTango/pull/374
[pr-375]: https://github.com/tango-controls/cppTango/pull/375
[pr-376]: https://github.com/tango-controls/cppTango/pull/376
[pr-379]: https://github.com/tango-controls/cppTango/pull/379
[pr-383]: https://github.com/tango-controls/cppTango/pull/383
[i-384]: https://github.com/tango-controls/cppTango/issues/384
[i-392]: https://github.com/tango-controls/cppTango/issues/392
[pr-393]: https://github.com/tango-controls/cppTango/pull/393
[pr-394]: https://github.com/tango-controls/cppTango/pull/394
[i-395]: https://github.com/tango-controls/cppTango/issues/395
[pr-396]: https://github.com/tango-controls/cppTango/pull/396
[pr-398]: https://github.com/tango-controls/cppTango/pull/398
[pr-400]: https://github.com/tango-controls/cppTango/pull/400
[pr-403]: https://github.com/tango-controls/cppTango/pull/403
[pr-404]: https://github.com/tango-controls/cppTango/pull/404
[pr-405]: https://github.com/tango-controls/cppTango/pull/405
[pr-406]: https://github.com/tango-controls/cppTango/pull/406
[pr-413]: https://github.com/tango-controls/cppTango/pull/413
[pr-415]: https://github.com/tango-controls/cppTango/pull/415
[pr-417]: https://github.com/tango-controls/cppTango/pull/417
[pr-418]: https://github.com/tango-controls/cppTango/pull/418
[pr-419]: https://github.com/tango-controls/cppTango/pull/419
[pr-421]: https://github.com/tango-controls/cppTango/pull/421
[pr-422]: https://github.com/tango-controls/cppTango/pull/422
[pr-423]: https://github.com/tango-controls/cppTango/pull/423
[i-424]: https://github.com/tango-controls/cppTango/issues/424
[pr-425]: https://github.com/tango-controls/cppTango/pull/425
[pr-427]: https://github.com/tango-controls/cppTango/pull/427
[i-428]: https://github.com/tango-controls/cppTango/issues/428
[pr-430]: https://github.com/tango-controls/cppTango/pull/430
[pr-431]: https://github.com/tango-controls/cppTango/pull/431
[pr-432]: https://github.com/tango-controls/cppTango/pull/432
[pr-435]: https://github.com/tango-controls/cppTango/pull/435
[pr-436]: https://github.com/tango-controls/cppTango/pull/436
[pr-437]: https://github.com/tango-controls/cppTango/pull/437
[pr-438]: https://github.com/tango-controls/cppTango/pull/438
[i-439]: https://github.com/tango-controls/cppTango/issues/439
[pr-441]: https://github.com/tango-controls/cppTango/pull/441
[pr-442]: https://github.com/tango-controls/cppTango/pull/442
[i-444]: https://github.com/tango-controls/cppTango/issues/444
[pr-445]: https://github.com/tango-controls/cppTango/pull/445
[i-447]: https://github.com/tango-controls/cppTango/issues/447
[pr-448]: https://github.com/tango-controls/cppTango/pull/448
[pr-451]: https://github.com/tango-controls/cppTango/pull/451
[i-453]: https://github.com/tango-controls/cppTango/issues/453
[i-455]: https://github.com/tango-controls/cppTango/issues/455
[i-456]: https://github.com/tango-controls/cppTango/issues/456
[i-457]: https://github.com/tango-controls/cppTango/issues/457
[i-458]: https://github.com/tango-controls/cppTango/issues/458
[pr-459]: https://github.com/tango-controls/cppTango/pull/459
[pr-460]: https://github.com/tango-controls/cppTango/pull/460
[pr-474]: https://github.com/tango-controls/cppTango/pull/474
[pr-476]: https://github.com/tango-controls/cppTango/pull/476
[pr-478]: https://github.com/tango-controls/cppTango/pull/478
[i-484]: https://github.com/tango-controls/cppTango/issues/484
[pr-485]: https://github.com/tango-controls/cppTango/pull/485
[pr-486]: https://github.com/tango-controls/cppTango/pull/486
[pr-488]: https://github.com/tango-controls/cppTango/pull/488
[i-492]: https://github.com/tango-controls/cppTango/issues/492
[pr-493]: https://github.com/tango-controls/cppTango/pull/493
[pr-502]: https://github.com/tango-controls/cppTango/pull/502
[pr-503]: https://github.com/tango-controls/cppTango/pull/503
[pr-508]: https://github.com/tango-controls/cppTango/pull/508
[i-509]: https://github.com/tango-controls/cppTango/issues/509
[i-510]: https://github.com/tango-controls/cppTango/issues/510
[i-514]: https://github.com/tango-controls/cppTango/issues/514
[pr-516]: https://github.com/tango-controls/cppTango/pull/516
[pr-517]: https://github.com/tango-controls/cppTango/pull/517
[pr-518]: https://github.com/tango-controls/cppTango/pull/518
[pr-520]: https://github.com/tango-controls/cppTango/pull/520
[pr-521]: https://github.com/tango-controls/cppTango/pull/521
[pr-522]: https://github.com/tango-controls/cppTango/pull/522
[pr-523]: https://github.com/tango-controls/cppTango/pull/523
[pr-529]: https://github.com/tango-controls/cppTango/pull/529
[pr-531]: https://github.com/tango-controls/cppTango/pull/531
[i-532]: https://github.com/tango-controls/cppTango/issues/532
[pr-533]: https://github.com/tango-controls/cppTango/pull/533
[pr-537]: https://github.com/tango-controls/cppTango/pull/537
[pr-539]: https://github.com/tango-controls/cppTango/pull/539
[i-541]: https://github.com/tango-controls/cppTango/issues/541
[pr-542]: https://github.com/tango-controls/cppTango/pull/542
[pr-544]: https://github.com/tango-controls/cppTango/pull/544
[i-546]: https://github.com/tango-controls/cppTango/issues/546
[pr-549]: https://github.com/tango-controls/cppTango/pull/549
Loading

0 comments on commit 9c8837f

Please sign in to comment.