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

Commit 9c8837f

Browse files
bourtembIngvord
authored and
Ingvord
committed
Add CHANGELOG.md (#519)
* 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
1 parent b76b006 commit 9c8837f

File tree

3 files changed

+514
-73
lines changed

3 files changed

+514
-73
lines changed

CHANGELOG.md

+291
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,291 @@
1+
# Changelog
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
5+
6+
## [9.3.3] - 2019-03-29
7+
### Added
8+
- Add asyn_reconnection test ([#502][pr-502])
9+
- Add .gitignore ([#522][pr-522])
10+
- Add Visual Studio 2017 compatibility. Appveyor now builds for Visual Studio 2017 in addition to all the previously
11+
supported versions ([#533][pr-533])
12+
13+
### Changed
14+
- Replace CORBA::string_dup calls with Tango::string_dup ([#474][pr-474])
15+
- Replace CORBA::string_free calls with Tango::string_free ([#539][pr-539])
16+
- Make it possible to remove dynamic attributes from delete_device() by moving the location where the device is removed
17+
from the device list ([#518][pr-518])
18+
- Use python2 (if available) to run cxxtestgen ([#523][pr-523])
19+
- Switch to Travis Xenial infrastructure ([#516][pr-516])
20+
- Catch exceptions from unsubscribe_event() in DeviceProxy destructor ([#521][pr-521])
21+
- Improve install documentation ([#529][pr-529])
22+
- Install log4tango include files under *<install_prefix>*/include/tango/log4tango ([#517][pr-517])
23+
- Update Doxygen documentation ([#532][i-532], [#544][pr-544])
24+
- Update Debian 7 and Debian 8 Travis Docker files after Debian Wheezy end of life and jessie-updates removal
25+
([#546][i-546], [#549][pr-549])
26+
27+
### Fixed
28+
- Fix memory leak in get_device_property() on Windows when code compiled with Visual Studio 10 or older
29+
([#439][i-439], [#488][pr-488])
30+
- Fix cxx_fwd_att occasional failure ([#384][i-384], [#428][i-428], [#493][pr-493])
31+
- Fix "Change event subscription blind to change events right after device server restart" issue
32+
([#359][i-359], [#503][pr-503]).
33+
**This bug fix may trigger the reception of 2 consecutive events having possibly the same attribute value
34+
(but different timestamps) during the Device Server startup phase.**
35+
- Fix client crash in case of asynchronous write_attribute executed immediately after reconnection ([#502][pr-502])
36+
- Fix issue with dynamic attributes when a device is restarted on a device server exporting several devices which are
37+
creating dynamic attributes ([#458][i-458], [#508][pr-508])
38+
- Fix uncaught DevFailed exception in DeviceProxy destructor in cxx_stateless_subscription test case when using
39+
ZMQ 4.2.3 ([#514][i-514]). Since [zeromq/libzmq@edb4ca1][libzmq-c-edb4ca1], peer disconnection triggers zmq_disconnect
40+
on a zmq socket.
41+
Further zmq_disconnect calls for such socket and endpoint will fail with errno set to ENOENT.
42+
The patch provided in [#520][pr-520] ignores such failure.
43+
- Fixed a broken dependency on generated Debian package ([5c74e8d][c-5c74e8d])
44+
- Fix appveyor.yml after appveyor windows image update ([#537][pr-537])
45+
- Fix event compatibility issues with device servers exporting Device_4 devices. Fix bug with Pipe, Data Ready and
46+
Device Interface Change events. Fix event channel name issues in these different cases. ([#492][i-492], [#531][pr-531])
47+
- Fix WAttribute::rollback() for DevUshort WRITE attributes ([#541][i-541], [#542][pr-542])
48+
49+
## [9.3.2] - 2018-09-12 [unstable]
50+
### Added
51+
- Add Tango::string_free ([#460][pr-460])
52+
- Integrate Coveralls and Sonar ([#369][i-369], [#478][pr-478])
53+
54+
### Changed
55+
- Tests: Split runner executable into several executables ([#275][i-275], [#476][pr-476]).
56+
- Doxygen: upgrade to doxygen 1.8.13
57+
58+
## Removed
59+
- Disable log4tango benchmark tests.
60+
61+
### Fixed
62+
- Fix memory leak in zmq_event_subscription_change() ([#457][i-457], [#460][pr-460])
63+
- Fix bug impacting device servers using dynamic attributes ([#458][i-458], [#459][pr-459])
64+
- Fix reconnection issues when a client subscribes to several events ([#455][i-455])
65+
- Fix some event compatibility issues with device server <= Tango 8 ([#456][i-456])
66+
- Fix event field in EventData structure passed to user's callback (broken in Tango 9.3.0 and 9.3.1)
67+
- Fix attribute name in EventData structure passed to user's callback for Attribute Config events
68+
- Fix a bug occurring when an event is pushed at the same time as an event (re)subscription occurs
69+
([#484][i-484], [#485][pr-485])
70+
- Fix event name (EventData.event) passed to client's Callback after Tango 9 attribute reconnection ([#486][pr-486])
71+
- Fix some doxygen warnings
72+
73+
## [9.3.1] - 2018-05-23 [unstable]
74+
### Changed
75+
- Add -pedantic for GCC/Clang and debug mode ([#441][pr-441]). **This change can generate
76+
errors with very old compilers (e.g. gcc 3.4.6) when compiling the lib debug
77+
version.** Please remove manually -pedantic flag in configure/CMakeLists.txt if
78+
you need to compile the debug version on a very old compiler.
79+
- Generate static library ([#17][i-17])
80+
81+
### Fixed
82+
- DServerSignal: Include errno header instead of trying to manually get the declaration right ([#441][pr-441])
83+
- Remove GNU_CXX definition for GCC/Clang ([#441][pr-441])
84+
- filedatabase.cpp: Remove stray semicolon ([#441][pr-441])
85+
- FileDatabase: Use correct format specifier for unsigned arguments to sscanf ([#441][pr-441])
86+
- EventConsumer::connect_event: Fix misleading indentation ([#441][pr-441])
87+
- PollThread: Fix multiline macro definitions ([#451][pr-451])
88+
- Fix compilation definitions ([#437][pr-437])
89+
- Replace asserts in EventConsumer::initialize_received_from_admin with exceptions ([#453][i-453])
90+
91+
## [9.3.0] - 2018-05-04 [unstable]
92+
### Fixed
93+
- Fix FQDN events ([#423][pr-423], [#315][i-315])
94+
Limitations:
95+
- in case DeviceProxy is used for event subscription, client will get incorrect value
96+
in the event callback if short domain name is used in env.TANGO_HOST
97+
e.g. hzgc103 -> hzgc103.desy.de
98+
- Fix memory leak when pipe event is sent and there is no client ([#447][i-447],[#448][pr-448])
99+
- Set the ZMQ Receive Buffer High Water Mark only if it changes ([#444][i-444],[#445][pr-445])
100+
to reduce the impact of a bug in ZMQ 4.2.0 and ZMQ 4.2.1 which was fixed in
101+
commit [zeromq/libzmq@edc770d][libzmq-c-edc770d].
102+
103+
## [9.2.8] - 2018-03-29 [unstable]
104+
### Changed
105+
- Cmake release targets ([#438][pr-438])
106+
- **Install include files in <install_prefix>/include/tango directory instead of
107+
<install_prefix>/include**.
108+
109+
### Fixed
110+
- Fix appveyor build
111+
112+
## [9.2.7] - 2018-02-27 [unstable]
113+
### Added
114+
- **Use CMake**
115+
- Set CMake minimum requirement to CMake 2.8.12 ([#422][pr-422])
116+
- Add DevVarBooleanArray operators ([#347][pr-347])
117+
- Add support for NaN and inf in device properties ([#360][i-360], [#362][pr-362],[ #371][pr-371])
118+
- Refactor DeviceAttribute code ([#394][pr-394]). DeviceAttribute::init_common_class_members() method is now private
119+
- Forwarded dynamic attributes ([#342][pr-342])
120+
- Build on Windows using CMake and setup appveyor CI ([#413][pr-413])
121+
- Enable Travis CI ([#375][pr-375], [#417][pr-417], [#418][pr-418], [#419][pr-419])
122+
- tango_config.h: Add clang detection ([#442][pr-442])
123+
- Doxygen: Add searchbar ([#432][pr-432])
124+
125+
### Changed
126+
- DeviceAttribute::get_type() no longer throws an API_EmptyDeviceAttribute exception when the DeviceAttribute is empty.
127+
It returns DATA_TYPE_UNKNOWN instead ([#393][pr-393], [#509][i-509]).
128+
129+
**Warning! This change could lead to Segmentation fault** in code doing things like:
130+
```
131+
DeviceAttribute da;
132+
da = device->read_attribute("AnAttributeWithINVALIDQualityFactor");
133+
cout << "Type = " << Tango::CmdArgTypeName[da.get_type()] << endl;
134+
```
135+
Please refer to [#510][i-510] for more details.
136+
- Improve ZmqEventSubscriptionChange command argin and argout descriptions ([355da96][c-355da96])
137+
- Generate files from IDL (**add a dependency to tango-idl repository. omniidl is required to be able to generate some
138+
files from CORBA IDL**)
139+
- Get exception message from event callback ([#431][pr-431])
140+
- Add a map in MultiAttribute object to improve performances ([#424][i-424], [#430][pr-430])
141+
- A small Doxygen improvement - take version from cmake ([#436][pr-436])
142+
- Reduce event subscription sleeps on linux ([#415][pr-415]).
143+
144+
**Warning**: There is no guarantee that after a successful call to subscribe_event() that a subscriber will receive all
145+
the events it is interested in. In some situations, some important events might be missed if they occur between the
146+
subscribe_event() call and the ZMQ subscription reception on the ZMQ publisher side, potentially leading to situations
147+
where a client application might show out of date/incorrect values.
148+
- Tango 9 LTS fix[#395][i-395] (Inserting const C string in DeviceData) ([#396][pr-396])
149+
150+
### Removed
151+
- Remove zmq.hpp ([#266][i-266], [#421][pr-421]). **Add a dependency to https://github.com/zeromq/cppzmq**
152+
153+
### Fixed
154+
- Add missing event implementation with \_TG_WINDOWS\_ ifdef ([#349][i-349])
155+
- Fix [TangoTickets#3][tt-i3] (Events received with UNKNOWN data format and without values when subscribing from
156+
a Tango 9 client to a Tango 7 server DevShort attribute)
157+
- Fix bug related to heartbeat endpoints which could eventually occur when the device server runs on a host with
158+
multiple network interfaces ([36aca17][c-36aca17])
159+
- Fix bug after admin device RestartServer command ([#358][pr-358])
160+
- Fix bug in Attribute::get_att_device_class() ([4a00c8e][c-4a00c8e])
161+
- Fix RcsId warnings ([#374][pr-374])
162+
- Fix warnings reported by gcc 6.3 related to misleading indentations ([#376][pr-376])
163+
- Fix "unused parameter" warnings ([#379][pr-379])
164+
- Fix shift-negative-value compilation warnings reported by g++ 6.3 ([#383][pr-383])
165+
- Fix DeviceAttribute constructor for short and enum data types ([#392][i-392], [#393][pr-393])
166+
- Fix bug leading occasionally to segmentation faults of Tango 9 device servers ([#398][pr-398])
167+
- Fix bug in event name when pushing an error event to IDL5 clients ([#400][pr-400])
168+
- Attribute: Don't treat an integer as an char* ([#403][pr-403], [#406][pr-406])
169+
- pointer-cast-size-mismatch attrgetsetprop.cpp:200 ([#339][i-339], [#406][pr-406])
170+
- Fix build errors when using C++17 ([#405][pr-405], [#425][pr-425])
171+
- Fix issue with polling not starting automatically on dynamic attributes ([#427][pr-427])
172+
- Add noreturn to remove some compilation warnings ([#435][pr-435])
173+
- CPU load when device has large number of attributes ([#404][pr-404])
174+
- push event performance issue ([#244][i-244])
175+
176+
[9.3.3]: https://github.com/tango-controls/cppTango/compare/9.3.2...9.3.3
177+
[9.3.2]: https://github.com/tango-controls/cppTango/compare/9.3.1...9.3.2
178+
[9.3.1]: https://github.com/tango-controls/cppTango/compare/9.3.0...9.3.1
179+
[9.3.0]: https://github.com/tango-controls/cppTango/compare/test-auto-deploy...9.3.0
180+
[9.2.8]: https://github.com/tango-controls/cppTango/compare/9.2.7...test-auto-deploy
181+
[9.2.7]: https://github.com/tango-controls/cppTango/compare/cppapi_Release_9_2_5...9.2.7
182+
183+
[c-4a00c8e]: https://github.com/tango-controls/cppTango/commit/4a00c8e4203668c247a2ada6e309470cd53744d3
184+
[c-36aca17]: https://github.com/tango-controls/cppTango/commit/36aca17d43a97ebe09fdc825941cb39f6c48289e
185+
[c-355da96]: https://github.com/tango-controls/cppTango/commit/355da96ac7d82d4a7727f68f3b093c98f087fd98
186+
[c-5c74e8d]: https://github.com/tango-controls/cppTango/commit/5c74e8d33ce85036c9348a09b894e05ac3e8cdf9
187+
188+
[libzmq-c-edc770d]: https://github.com/zeromq/libzmq/commit/edc770d680b2be5a633526bd2c724d66406c8360
189+
[libzmq-c-edb4ca1]: https://github.com/zeromq/libzmq/commit/edb4ca1
190+
191+
[tt-i3]: https://github.com/tango-controls/TangoTickets/issues/3
192+
193+
[i-17]: https://github.com/tango-controls/cppTango/issues/17
194+
[i-244]: https://github.com/tango-controls/cppTango/issues/244
195+
[i-266]: https://github.com/tango-controls/cppTango/issues/266
196+
[i-275]: https://github.com/tango-controls/cppTango/issues/275
197+
[i-315]: https://github.com/tango-controls/cppTango/issues/315
198+
[i-339]: https://github.com/tango-controls/cppTango/issues/339
199+
[pr-342]: https://github.com/tango-controls/cppTango/pull/342
200+
[pr-347]: https://github.com/tango-controls/cppTango/pull/347
201+
[i-349]: https://github.com/tango-controls/cppTango/issues/349
202+
[pr-358]: https://github.com/tango-controls/cppTango/pull/358
203+
[i-359]: https://github.com/tango-controls/cppTango/issues/359
204+
[i-360]: https://github.com/tango-controls/cppTango/issues/360
205+
[i-369]: https://github.com/tango-controls/cppTango/issues/369
206+
[pr-362]: https://github.com/tango-controls/cppTango/pull/362
207+
[pr-371]: https://github.com/tango-controls/cppTango/pull/371
208+
[pr-374]: https://github.com/tango-controls/cppTango/pull/374
209+
[pr-375]: https://github.com/tango-controls/cppTango/pull/375
210+
[pr-376]: https://github.com/tango-controls/cppTango/pull/376
211+
[pr-379]: https://github.com/tango-controls/cppTango/pull/379
212+
[pr-383]: https://github.com/tango-controls/cppTango/pull/383
213+
[i-384]: https://github.com/tango-controls/cppTango/issues/384
214+
[i-392]: https://github.com/tango-controls/cppTango/issues/392
215+
[pr-393]: https://github.com/tango-controls/cppTango/pull/393
216+
[pr-394]: https://github.com/tango-controls/cppTango/pull/394
217+
[i-395]: https://github.com/tango-controls/cppTango/issues/395
218+
[pr-396]: https://github.com/tango-controls/cppTango/pull/396
219+
[pr-398]: https://github.com/tango-controls/cppTango/pull/398
220+
[pr-400]: https://github.com/tango-controls/cppTango/pull/400
221+
[pr-403]: https://github.com/tango-controls/cppTango/pull/403
222+
[pr-404]: https://github.com/tango-controls/cppTango/pull/404
223+
[pr-405]: https://github.com/tango-controls/cppTango/pull/405
224+
[pr-406]: https://github.com/tango-controls/cppTango/pull/406
225+
[pr-413]: https://github.com/tango-controls/cppTango/pull/413
226+
[pr-415]: https://github.com/tango-controls/cppTango/pull/415
227+
[pr-417]: https://github.com/tango-controls/cppTango/pull/417
228+
[pr-418]: https://github.com/tango-controls/cppTango/pull/418
229+
[pr-419]: https://github.com/tango-controls/cppTango/pull/419
230+
[pr-421]: https://github.com/tango-controls/cppTango/pull/421
231+
[pr-422]: https://github.com/tango-controls/cppTango/pull/422
232+
[pr-423]: https://github.com/tango-controls/cppTango/pull/423
233+
[i-424]: https://github.com/tango-controls/cppTango/issues/424
234+
[pr-425]: https://github.com/tango-controls/cppTango/pull/425
235+
[pr-427]: https://github.com/tango-controls/cppTango/pull/427
236+
[i-428]: https://github.com/tango-controls/cppTango/issues/428
237+
[pr-430]: https://github.com/tango-controls/cppTango/pull/430
238+
[pr-431]: https://github.com/tango-controls/cppTango/pull/431
239+
[pr-432]: https://github.com/tango-controls/cppTango/pull/432
240+
[pr-435]: https://github.com/tango-controls/cppTango/pull/435
241+
[pr-436]: https://github.com/tango-controls/cppTango/pull/436
242+
[pr-437]: https://github.com/tango-controls/cppTango/pull/437
243+
[pr-438]: https://github.com/tango-controls/cppTango/pull/438
244+
[i-439]: https://github.com/tango-controls/cppTango/issues/439
245+
[pr-441]: https://github.com/tango-controls/cppTango/pull/441
246+
[pr-442]: https://github.com/tango-controls/cppTango/pull/442
247+
[i-444]: https://github.com/tango-controls/cppTango/issues/444
248+
[pr-445]: https://github.com/tango-controls/cppTango/pull/445
249+
[i-447]: https://github.com/tango-controls/cppTango/issues/447
250+
[pr-448]: https://github.com/tango-controls/cppTango/pull/448
251+
[pr-451]: https://github.com/tango-controls/cppTango/pull/451
252+
[i-453]: https://github.com/tango-controls/cppTango/issues/453
253+
[i-455]: https://github.com/tango-controls/cppTango/issues/455
254+
[i-456]: https://github.com/tango-controls/cppTango/issues/456
255+
[i-457]: https://github.com/tango-controls/cppTango/issues/457
256+
[i-458]: https://github.com/tango-controls/cppTango/issues/458
257+
[pr-459]: https://github.com/tango-controls/cppTango/pull/459
258+
[pr-460]: https://github.com/tango-controls/cppTango/pull/460
259+
[pr-474]: https://github.com/tango-controls/cppTango/pull/474
260+
[pr-476]: https://github.com/tango-controls/cppTango/pull/476
261+
[pr-478]: https://github.com/tango-controls/cppTango/pull/478
262+
[i-484]: https://github.com/tango-controls/cppTango/issues/484
263+
[pr-485]: https://github.com/tango-controls/cppTango/pull/485
264+
[pr-486]: https://github.com/tango-controls/cppTango/pull/486
265+
[pr-488]: https://github.com/tango-controls/cppTango/pull/488
266+
[i-492]: https://github.com/tango-controls/cppTango/issues/492
267+
[pr-493]: https://github.com/tango-controls/cppTango/pull/493
268+
[pr-502]: https://github.com/tango-controls/cppTango/pull/502
269+
[pr-503]: https://github.com/tango-controls/cppTango/pull/503
270+
[pr-508]: https://github.com/tango-controls/cppTango/pull/508
271+
[i-509]: https://github.com/tango-controls/cppTango/issues/509
272+
[i-510]: https://github.com/tango-controls/cppTango/issues/510
273+
[i-514]: https://github.com/tango-controls/cppTango/issues/514
274+
[pr-516]: https://github.com/tango-controls/cppTango/pull/516
275+
[pr-517]: https://github.com/tango-controls/cppTango/pull/517
276+
[pr-518]: https://github.com/tango-controls/cppTango/pull/518
277+
[pr-520]: https://github.com/tango-controls/cppTango/pull/520
278+
[pr-521]: https://github.com/tango-controls/cppTango/pull/521
279+
[pr-522]: https://github.com/tango-controls/cppTango/pull/522
280+
[pr-523]: https://github.com/tango-controls/cppTango/pull/523
281+
[pr-529]: https://github.com/tango-controls/cppTango/pull/529
282+
[pr-531]: https://github.com/tango-controls/cppTango/pull/531
283+
[i-532]: https://github.com/tango-controls/cppTango/issues/532
284+
[pr-533]: https://github.com/tango-controls/cppTango/pull/533
285+
[pr-537]: https://github.com/tango-controls/cppTango/pull/537
286+
[pr-539]: https://github.com/tango-controls/cppTango/pull/539
287+
[i-541]: https://github.com/tango-controls/cppTango/issues/541
288+
[pr-542]: https://github.com/tango-controls/cppTango/pull/542
289+
[pr-544]: https://github.com/tango-controls/cppTango/pull/544
290+
[i-546]: https://github.com/tango-controls/cppTango/issues/546
291+
[pr-549]: https://github.com/tango-controls/cppTango/pull/549

0 commit comments

Comments
 (0)