History of changes#
Document revisions#
Date |
Revision |
Description |
Author |
---|---|---|---|
18/07/03 |
1.0 |
Initial Version |
M. Ounsy |
06/10/03 |
2.0 |
Extension of the “Getting Started” paragraph |
A. Buteau/M. Ounsy |
14/10/03 |
3.0 |
Added Exception Handling paragraph |
M. Ounsy |
13/06/05 |
4.0 |
Ported to Latex, added events, AttributeProxy and ApiUtil |
V. Forchì |
13/06/05 |
4.1 |
fixed bug with python 2.5 and and state events new Database constructor |
V. Forchì |
15/01/06 |
5.0 |
Added Device Server classes |
E.Taurel |
15/03/07 |
6.0 |
Added AttrInfoEx, AttributeConfig events, 64bits, write_attribute |
T. Coutinho |
21/03/07 |
6.1 |
Added groups |
T. Coutinho |
15/06/07 |
Added dynamic attributes doc |
E. Taurel |
|
06/05/08 |
Update to Tango 6.1. Added DB methods, version info |
T. Coutinho |
|
10/07/09 |
Update to Tango 7. Major refactoring. Migrated doc |
T. Coutinho/R. Suñe |
|
24/07/09 |
Added migration info, added missing API doc |
T. Coutinho/R. Suñe |
|
21/09/09 |
Added migration info, release of 7.0.0beta2 |
T. Coutinho/R. Suñe |
|
12/11/09 |
Update to Tango 7.1. |
T. Coutinho/R. Suñe |
|
??/12/09 |
Update to PyTango 7.1.0 rc1 |
T. Coutinho/R. Suñe |
|
19/02/10 |
Update to PyTango 7.1.1 |
T. Coutinho/R. Suñe |
|
06/08/10 |
Update to PyTango 7.1.2 |
T. Coutinho |
|
05/11/10 |
Update to PyTango 7.1.3 |
T. Coutinho |
|
08/04/11 |
Update to PyTango 7.1.4 |
T. Coutinho |
|
13/04/11 |
Update to PyTango 7.1.5 |
T. Coutinho |
|
14/04/11 |
Update to PyTango 7.1.6 |
T. Coutinho |
|
15/04/11 |
Update to PyTango 7.2.0 |
T. Coutinho |
|
12/12/11 |
Update to PyTango 7.2.2 |
T. Coutinho |
|
24/04/12 |
Update to PyTango 7.2.3 |
T. Coutinho |
|
21/09/12 |
Update to PyTango 8.0.0 |
T. Coutinho |
|
10/10/12 |
Update to PyTango 8.0.2 |
T. Coutinho |
|
20/05/13 |
Update to PyTango 8.0.3 |
T. Coutinho |
|
28/08/13 |
Update to PyTango 7.2.4 |
T. Coutinho |
|
27/11/13 |
Update to PyTango 8.1.1 |
T. Coutinho |
|
16/05/14 |
Update to PyTango 8.1.2 |
T. Coutinho |
|
30/09/14 |
Update to PyTango 8.1.4 |
T. Coutinho |
|
01/10/14 |
Update to PyTango 8.1.5 |
T. Coutinho |
|
05/02/15 |
Update to PyTango 8.1.6 |
T. Coutinho |
|
03/02/16 |
Update to PyTango 8.1.8 |
T. Coutinho |
|
12/08/16 |
8.24 |
Update to PyTango 8.1.9 |
V. Michel |
26/02/16 |
Update to PyTango 9.2.0a |
T. Coutinho |
|
15/08/16 |
9.2.0 Release |
V. Michel |
|
23/01/17 |
9.2.1 Release |
V. Michel |
|
27/09/17 |
9.2.2 Release |
G. Cuni/V. Michel/J. Moldes |
|
30/05/18 |
9.2.3 Release |
V. Michel |
|
30/07/18 |
9.2.4 Release |
V. Michel |
|
28/11/18 |
9.2.5 Release |
A. Joubert |
|
13/03/19 |
9.3.0 Release |
T. Coutinho |
|
08/08/19 |
9.3.1 Release |
A. Joubert |
|
30/04/20 |
9.3.2 Release |
A. Joubert |
|
24/12/20 |
9.3.3 Release |
A. Joubert |
|
14/06/22 |
9.3.4 Release |
A. Joubert |
|
07/09/22 |
9.3.5 Release |
Y. Matveev |
|
28/09/22 |
9.3.6 Release |
Y. Matveev |
|
15/02/23 |
9.4.0 Release |
A. Joubert |
|
15/03/23 |
9.4.1 Release |
A. Joubert |
|
27/07/23 |
9.4.2 Release |
Y. Matveev |
|
23/11/23 |
9.5.0 Release |
A. Joubert |
|
28/03/24 |
9.5.1 Release |
A. Joubert |
|
01/10/24 |
10.0.0 Release |
A. Joubert |
|
07/03/25 |
10.0.2 Release |
A. Joubert |
Version history#
10.0.2#
Changed#
Added#
Fixed#
Documentation#
DevOps and code maintenance changes#
!769: test_utils.py: fix assert_close for booleans after pytest 8.3.4 release
!785: Restructure test files and remove redundant test cases
!789: cmake/project_version.*: Remove unused git version gathering logic
!795: CI: Make environment names unique and limit their running time
More details in the full changelog 10.0.0…10.0.2
10.0.1#
SKIPPED
10.0.0#
Changed#
!654: Redirect server run errors to stderr instead of stdout
!631: Improve error message if cannot convert value to DevBoolean type
!673: Improve error message if python float value if written to int attribute for python >= 3.10
!681: Release GIL when adding/removing attributes, and add async methods
!702: Revert !664 (use attribute lock ATTR_BY_KERNEL for push_event)
!737: Fix Database.get_device_attribute_property to mutate input dict
Added#
!645: Extend pydevd debugging and coverage to dynamic attributes and commands
!652: Include stub file in wheels for better autocompletion (e.g., in VSCode)
!680: Update NumPy C API usage for 1.x and 2.0 compatibility
!686: Add option to set device description, status, state at device init
!701: Export DeviceImpl.set_attribute_config, add tests for get/set_attribute_config at server side
!707: Warn if IDL struct interfaces like AttributeConfig are modified
Fixed#
!649: Fix high-level attribute read for asyncio DeviceProxies
!662: Fix Segfault in push_archive_event(self, attr_name) with attr_name != state or status
!672: Fix db.delete_device_attribute_property() if was called with several attributes
!699: Add typing support of DevVarLongStringArray, DevVarDoubleStringArray
!727: Fix from_str_to_char leak from attribute name when pushing events
!730: Fix DbPutProperty in DataBaseDS (Python implementation)
!745: Resolve “_get_listening_tcp_ports in test_context can return wrong port”
!752: Fix some more issues in DatabaseDS (Python implementation)
!757: Fix even more issues in DatabaseDS (Python implementation)
Documentation#
DevOps and code maintenance changes#
!640: CI: show Python and C++ stack trace if test segfaulted
!641: TangoCMakeModules: Add it to standardise build process
!644: ext/precompiled_header.hpp: Remove warnings about deprecated boost headers
!653: Add simple tests for SQLite3 database (including some fixes)
!668: Update Linux wheel Docker image to 1.6.0.dev1 for TangoTest echo_mode
!682: Add more pre-commit hooks and fix various found issues
!696: Add a manual task to run tests against specific branches
!703: CI: Update Linux wheel Docker image to 1.6.0.dev2, and TangoTest
!717: Include extension debug info, and release additional debug Linux wheels
!723: CI: Refactor Gitlab CI into multiple files and fix release to pypi job
!731: Add precompiled_header.hpp to target_precompile_headers
!746: CI: fixed mixed server (TangoTest.so) test and minor CI issues
More details in the full changelog 9.5.1…10.0.0
9.5.1#
Backports#
Changed#
!684: 9.5.x maintenance: restrict NumPy to 1.x for 9.5.1 release
Backport !631: Improve error message if cannot convert value to DevBoolean type
Backport !645: Extend pydevd debugging and coverage to dynamic attributes and commands
Backport !673: Improve error message if python float value if written to int attribute for python >= 3.10
Fixed#
Documentation#
More details in the full changelog 9.5.0…9.5.1
9.5.0#
Changed#
Added#
Fixed#
Removed#
Documentation#
DevOps and code maintenance changes#
!598: Compile TangoTest so test-main-cpptango uses latest cpptango
!607: CI: Allow numpy without blas when testing Linux i686 wheels
!611: Mark test_server_init_hook_subscribe_event_multiple_devices xfail
!619: Bump pytango-builder image (libzmq-4.3.5 for Linux wheels)
!621: Change relative imports to absolute and unpin scikit-build-core
!623: CI: Allow numpy without blas when building Linux i686 Py 3.12 wheels
!632: CI: Use latest TangoTest for linux:test-main-cpptango job
More details in the full changelog 9.4.2…9.5.0
9.4.2#
Features#
Bug fixes and changes#
Doc fixes#
DevOps changes: - !563: Skip log location tests in AppVeyor CI - !566: Add AppVeyor Windows builds for Python 3.9 to 3.11, Boost 1.82.0 - !575: Add job to test main cpptango branch - !574: Added test for checking default and non-default units - !576: Add macOS wheels + gitlab-ci cleaning - !585: Move to cppTango 9.4.2, drop Python<3.9 on Win, update wheel deps - !588: Skip failing test in Winodws - !593: Test_server_init_hook_subscribe_event_multiple_devices skipped
More details in the full changelog 9.4.1…9.4.2
9.4.1#
Bug fixes and changes#
Doc fixes#
Deprecation fixes: - !553: Remove compiler version check from setup.py
DevOps changes: - !545: Run black on repo and add to pre-commit-config - !554: Update to omniorb 4.2.5 for Linux wheels - !549: Use new tango-controls group runners - !550: Update mambaforge image and use conda instead of apt packages in CI - !552: Run gitlab-triage to update old issues/MRs
More details in the full changelog 9.4.0…9.4.1
9.4.0#
Warning
not recommended due to significant regressions
Features#
!535: Allow developer to optionally add attributes to a DeviceProxy instance
!502: Provide binary wheels on PyPI using pytango-builder images
!511: Added fisallowed kwarg for static/dynamic commands and is_allowed method for dynamic commands
!528: Added getter, read and is_allowed attribute decorators
Changes#
Bug fixes#
Doc fixes#
Deprecation fixes: - !491: Remove unused method CppDeviceClassWrap::delete_class - !494: Remove unnecessary constants TANGO_LONG32 and TANGO_LONG64 - !497: Replace pytest-xdist with pytest-forked for testing - !498: Fix Python 3.11 compatibility - !513: Replace deprecated distutils.version - !534: Replace deprecated numpy.bool8 alias
DevOps changes: - !531: Configure unit tests report in gitlab-ci - !532: Run ruff via pre-commit - !519: Testing: improve error message for event test failures - !530: Unnecessary tests removed - !496: Force numpy installation with help of pyproject.toml (PEP 518) before build - !509: Prefer binary dependencies for test-wheel - !508: Allow failure for aarch64 test - !488: Add cpptango_rc to the Dockerfile - !520: Devcontainer fix for Mac M1 host - !525: Git ignore code-workspace and .DS_Store files - !499: Disable AppVeyor but keep the config file - !503: Disable AppVeyor builds temporarily - !504: Update AppVeyor CI for cppTango 9.4.0 - !506: Update AppVeyor cppTango 9.4.0.windows1 package - !543: Fix readme syntax and add twine check
More details in the full changelog 9.3.6…9.4.0
9.3.6#
Changes#
Bug fixes#
9.3.5#
Features#
Changes#
Bug fixes#
Pull Request #461: Fix handling of -ORBEndPointX command line options
Pull Request #462: Ensure PYTANGO_NUMPY_VERSION is stringized to support newer C++ compilers
Pull Request #465: Restore dynamic attribute functionality with unbound methods
Pull Request #466: Explicit boost::python::optional template usage to fix compilation with gcc>10
Doc fixes#
DevOps features: - Pull Request #473: Make universal dockerfile
9.3.4#
Changes#
Bug fixes#
Pull Request #417: Fix DeviceProxy constructor reference cycle (#412)
Pull Request #418: Release GIL in DeviceProxy and AttributeProxy dtor
Pull Request #434: Fix Device green_mode usage in MultiDeviceTestContext
Pull Request #436: Fix MSVC 9 syntax issue with shared pointer deletion
Pull Request #446: Allow pipes to be inherited by Device subclasses (#439)
Deprecation fixes#
Doc fixes#
Pull Request #406: Fix docs - missing DbDevExportInfos and DbDevImportInfos
Pull Request #422: Uncomment docs of tango.Util.instance() and build docs for other static methods
Pull Request #426: [docs] Fixed arguments name when calling command decorator
Pull Request #427: [docs] Fixed variables name in a tango.Database.add_server method example
Pull Request #433: Fix server method in DevEnum example in doc/data_types.rst
Pull Request #440: Resolve “Missing methods in Documentation” (#217)
Pull Request #455: Update contribution guidelines, drop stable branch
DevOps fixes#
9.3.3#
Features#
Changes#
Bug/doc fixes#
Pull Request #360: Fix convert2array for Unicode to DevVarStringArray (Py3) (#361)
Pull Request #386: Fix DeviceProxy repr/str memory leak (#298)
Pull Request #389: Update CI and dev Docker to cpptango 9.3.4
Pull Request #376: Update Windows CI and dev containers to boost 1.73.0
Pull Request #377: VScode remote development container support
Pull Request #393: Fix a typo in get_server_info documentation (#392)
9.3.2#
Features#
Changes#
Bug/doc fixes#
Pull Request #334: Update green mode docs and asyncio example (#333)
Pull Request #335: Generalise search for libboost_python on POSIX (#300, #310)
Pull Request #343: Extend the info on dependencies in README
Pull Request #345: Fix power_supply client example PowerOn -> TurnOn
Pull Request #347: Fix memory leak for DevEncoded attributes
Pull Request #348: Fix dynamic enum attributes created without labels (#56)
9.3.1#
Changes#
Bug fixes#
Pull Request #274: Add unit tests for spectrum attributes, including empty (#271)
Pull Request #281: Fix DevEncoded commands on Python 3 (#280)
Pull Request #288: Make sure we only convert to string python unicode/str/bytes objects (#285)
Pull Request #289: Fix compilation warnings and conda build (#286)
9.3.0#
Changes#
Bug fixes#
9.2.5#
Changes#
Bug fixes#
Pull Request #211: Yet another fix to the gevent threadpool error wrapping
Pull Request #214 (issue #213): DevEncoded attribute should produce a bytes object in python 3
Pull Request #220: Fix ‘DevFailed’ object does not support indexing
Pull Request #225 (issue #215): Fix exception propagation in python 3
Pull Request #226 (issue #216): Add missing converter from python bytes to char*
Pull Request #227: Gevent issue #1260 should be fixed by now
Pull Request #232: use special case-insensitive weak values dictionary for Tango nodes
9.2.4#
Changes#
Bug fixes#
9.2.3#
Changes#
Bug fixes#
9.2.2#
Features#
Changes#
Pull Request #113: Adding asyncio green mode documentation and a how-to on contributing
Pull Request #115: Commands polling tests (client and server)
Pull Request #116: Attribute polling tests (client and server)
Pull Request #117: Use official tango-controls conda channel
Pull Request #137: Codacy badge in README and code quality policy in How to Contribute
Pull Request #143: Added missing PipeEventData & DevIntrChangeEventData
Bug fixes#
Pull Request #85 (issue #84): Fix Gevent ThreadPool exceptions
Pull Request #94 (issue #93): Fix issues in setup file (GCC-7 build)
Pull Request #98: Refactor green mode for client and server APIs
Pull Request #101 (issue #100) check for None and return null string
Pull Request #103: Cache build objects to optimize travis builds
Pull Request #112 (issue #111): Use _DeviceClass as tango device class constructor
Pull Request #128 (issue #127): Set default worker in server.py
Pull Request #135: Better exception handling in server.run and test context (issue #131)
Pull Request #142 (issue #142): Added missing PipeEventData & DevIntrChangeEventData
Pull Request #149: Fix return value of proxy.subscribe_event
Pull Request #158 (issue #155): Fix timestamp and casing in utils.EventCallback
9.2.1#
Features#
Changes#
Bug fixes#
9.2.0#
Features#
Bug fixes#
Fix cache problem when using
DeviceProxy
through anAttributeProxy
Fix compilation on several platforms
Issue #19: Defining new members in DeviceProxy has side effects
Fixed bug in
beacon.add_device
Fix for
get_device_list
if server_name is ‘*’Fix
get_device_attribute_property2
ifprop_attr
is notNone
Accept
StdStringVector
input_device_property
Map ‘int’ to DevLong64 and ‘uint’ to DevULong64
Changes#
Move ITango to another project
Use
setuptools
instead ofdistutils
Add
six
as a requirementRefactor directory structure
Rename
PyTango
module totango
(import PyTango
still works for backward compatibility)Add a ReST readme for GitHub and PyPI
ITango changes (moved to another project): - Fix itango event logger for python 3 - Avoid deprecation warning with IPython 4.x - Use entry points instead of scripts
9.2.0a#
Missing#
writtable pipes (client and server)
dynamic commands (server)
device interface change event (client and server)
pipe event (client and server)
Bug fixes#
8.1.9#
Features#
Bug fixes#
8.1.8#
Features#
Bug fixes#
8.1.6#
Bug fixes#
8.1.5#
Bug fixes#
8.1.4#
Features#
Bug fixes#
8.1.3#
SKIPPED
8.1.2#
Features#
Bug fixes#
8.1.1#
Features#
Implemented tango C++ 8.1 API
Bug fixes#
8.1.0#
SKIPPED
8.0.3#
Features#
Bug fixes#
8.0.2#
Bug fixes#
8.0.1#
SKIPPED
8.0.0#
Features#
Implemented tango C++ 8.0 API
Python 3k compatible
Bug fixes#
7.2.4#
Bug fixes#
7.2.3#
Features#
Bug fixes#
7.2.2#
Features#
Bug fixes#
7.2.1#
SKIPPED
7.2.0#
Features#
7.1.6#
Bug fixes#
7.1.5 distribution is missing some files
7.1.5#
Bug fixes#
7.1.4#
Features#
Bug fixes#
3124427: PyTango.WAttribute.set_max_value() changes min value
3170399: Missing documentation about is_<attr>_allowed method
3196068: delete_device() not called after server_admin.Kill()
3257286: Binding crashes when reading a WRITE string attribute
3267628: DP.read_attribute(, extract=List/tuple) write value is wrong
3277269: read_attribute(DevEncoded) is not numpy as expected
Documentation#
Added The Utilities API chapter
Added Encoded API chapter
Improved Writing TANGO servers in Python chapter
7.1.3#
Features#
tango logging with print statement
tango logging with decorators
from sourceforge:
Bug fixes#
added licence header to all source code files
spock didn’t work without TANGO_HOST env. variable (it didn’t recognize tangorc)
spock should give a proper message if it tries to be initialized outside ipython
3073378: DeviceImpl.signal_handler raising exception crashes DS
3088031: Python DS unable to read DevVarBooleanArray property
3102776: PyTango 7.1.2 does not work with python 2.4 & boost 1.33.0
7.1.2#
Features#
Bug fixes#
7.1.1#
Features#
Improved setup script
Interfaced with PyPI
Cleaned build script warnings due to unclean python C++ macro definitions
Bug fixes#
7.1.0#
Features#
2908176: read_*, write_* and is_*_allowed() methods can now be defined
added str representation on Attr, Attribute, DeviceImpl and DeviceClass
Bug fixes#
7.1.0rc1#
Features#
v = image_attribute.get_write_value() returns square sequences (arrays of arrays, or numpy objects) now instead of flat lists. Also for spectrum attributes a numpy is returned by default now instead.
image_attribute.set_value(v) accepts numpy arrays now or square sequences instead of just flat lists. So, dim_x and dim_y are useless now. Also the numpy path is faster.
new enum AttrSerialModel
Attribute new methods: set(get)_attr_serial_model, set_change_event, set_archive_event, is_change_event, is_check_change_event, is_archive_criteria, is_check_archive_criteria, remove_configuration
added support for numpy scalars in tango operations like write_attribute (ex: now a DEV_LONG attribute can receive a numpy.int32 argument in a write_attribute method call)
Bug fixes#
DeviceImpl.set_value for scalar attributes
DeviceImpl.push_***_event
server commands with DevVar***StringArray as parameter or as return type
in windows,a bug in PyTango.Util prevented servers from starting up
DeviceImpl.get_device_properties for string properties assigns only first character of string to object member instead of entire string
added missing methods to Util
exported SubDevDiag class
error in read/events of attributes of type DevBoolean READ_WRITE
error in automatic unsubscribe events of DeviceProxy when the object disapears (happens only on some compilers with some optimization flags)
fix possible bug when comparing attribute names in DeviceProxy
pretty print of DevFailed -> fix deprecation warning in python 2.6
device class properties where not properly fetched when there is no property value defined
memory leak when converting DevFailed exceptions from C++ to python
python device server file without extension does not start
Documentation#
Improved FAQ
Improved compilation chapter
Improved migration information