Version
|
Changes
introduced
|
Possible
backward incompatibilites
|
JIRA
Release notes
|
1.3.0
|
The build system is the primary actor of this
release:
- CMake3 is now required,
- out-of-source builds are now default
|
If you use UASDK (or any other backend that
comes built before quasar server gets build) rather than
open62541-compat, you should add a virtual target in your
build config file:
add_custom_target( quasar_opcua_backend_is_ready )
|
Bug
- [OPCUA-1213]
- ASInformationModel generation not dependent (in CMake
sense) on the xslt
Task
- [OPCUA-1016]
- Yocto+quasar
- [OPCUA-1165]
- Yocto branch upmerge
- [OPCUA-1183]
- cmake3 in quasar projects
- [OPCUA-1186]
- Compatibility for open62541 0.3 for
opcserver_open62541.cpp
- [OPCUA-1193]
- Fix documentation on quasar build for Ubuntu 18
(FetchContent issues)
- [OPCUA-1211]
- Convenience quasar function to prepare environment in
build/bin
Improvement
|
1.2.7
|
This release is mostly oriented on the
deployment of new version of LogIt and the change in which
LogIt source code is maintained. A number of improvements
have been implemented as well.
|
After checking out the tag 1.2.7 in the
quasar repo, due to the fact of moving LogIt to a separate
github repo, you should execute:
git submodule update --init --recursive
Read more about LogIt
changes
|
Bug
- [OPCUA-1123]
- check_consistency should not complain about generated
address space classes
- [OPCUA-1150]
- UaVariant related AddressSpace generation - generates
non-compiling code
New Feature
- [OPCUA-1131]
- Range (min/max) restrictions in config restrictions
- [OPCUA-1132]
- Add documentation option to source variables
- [OPCUA-1139]
- Address space documentation creation in analogy to
config doc
Task
- [OPCUA-1128]
- generate device --all doesn't work in SCA OPC-UA
- [OPCUA-1144]
- Remove stale boost/foreach includes in Meta
- [OPCUA-1147]
- Compilation error for sourcevariable but without
device logic
- [OPCUA-1151]
- Add d:documentation to methods' arguments and
returnvalues
- [OPCUA-1153]
- LogIt CMakeFiles.txt needs separate paths for
standalone vs non-standalone
Improvement
- [OPCUA-853]
- Range-based for adoption
- [OPCUA-1140]
- Rationalise LogIt source code maintenance - quasar to
obtain LogIt source code from the dedicated stand-alone
LogIt repository.
- [OPCUA-1141]
- Replace call to system::abort in meta with something
more user friendly - throw an exception containing an
error message
|
1.2.6
|
Major features:
- Out-of-source builds
- XSD restrictions support
Minor features
- Generating Config Schema documentation
|
(none known) |
New Feature
Task
- [OPCUA-1006]
- Try to include quasar project as a CMake subproject
- [OPCUA-1007]
- Out-of-source build capability
- [OPCUA-1012]
- Rework argument passing into internal quasar functions
- [OPCUA-1113]
- Abandon out-of-source build if there is CMakeCache
present in-source
Improvement
- [OPCUA-1126]
- Improve the config doc generator for types of values
(including restrictions)
|
1.2.5
|
This is mostly a service release bringing
significant simplifications in internal quasar scripting for
features to come in future.
|
The CMake target to generate
Configuration.hxx has been renamed to
Configuration.hxx_GENERATED .
If you used this target e.g. for add_dependencies()
statement then you should follow the change accordingly.
Please also note that @makeSetGet attribute of
cachevariables finally disappears at it has been deprecated
since 2014.
|
Bug
- [OPCUA-1036]
- isKey doesn't work without device logic and with
arrays
- [OPCUA-1061]
- Target Configuration.hxx confuses the ninja build
system, rename it
- [OPCUA-1103]
- Return code of a quasar server is zero despite an
exception caught in BaseQuasarServer
Task
- [OPCUA-1097]
- Expose device logic mutex via getLock()
Improvement
- [OPCUA-1106]
- Simplify Python scripting for running Quasar code
generation
- [OPCUA-1107]
- remove @makeSetGet
- [OPCUA-1111]
- Embedded commands help into quasarCommands.html
|
1.2.4
|
Major features:
- Asynchronous methods
- Quasar's thread pool
|
Methods have a new compulsory attribute
called "executionSynchronicity". Please pick "synchronous"
for the old behaviour. Picking asynchronous will execute a
method in a separate context, as per OPCUA-1034.
On some systems (e.g. Ubuntu) the following addition in your
custom build config might be necessary:
SET(
QUASAR_SERVER_LIBS "-lssl -lcrypto
-lpthread" )
otherwise you might get a message about unmet link
dependency to libpthread.
|
New Feature
- [OPCUA-1033]
- Methods having array arguments and return values in
quasar servers
- [OPCUA-1034]
- Asynchronous methods
Task
- [OPCUA-1009]
- Source variables not scaling well in certain types of
use cases
- [OPCUA-1051]
- Remove quasarGUI.py
- [OPCUA-1056]
- Improve memory management in Certificate.cpp
Improvement
- [OPCUA-1031]
- Improve designToConfigurationXSD.xslt post arrays
merge
- [OPCUA-1044]
- Move variant-vector converters from
designToClassBody.xslt to CommonFunctions
|
1.2.3
|
Major features:
Minor features:
|
(none known) |
Bug
- [OPCUA-990]
- cache-variable of "UaByteString" and "UaVariant" types
don't compile
- [OPCUA-1018]
- name attribute of any quasar object in config file
permitted to be empty string
- [OPCUA-1030]
- Array delegator for UaString implies known data type
so xsl:choose should not be used
- [OPCUA-1032]
- quasar should remove a partially generated file in
case generation fails
Task
- [OPCUA-915]
- Diagram generation support for arrays
- [OPCUA-1023]
- integration branch for quasar arrays integration
Improvement
- [OPCUA-1024]
- Optimize ArrayTools
- [OPCUA-1025]
- OneToMaxLimits -> ArraySizeLimits
- [OPCUA-1027]
- Improve designToClassBody.xslt post arrays merge
- [OPCUA-1028]
- Move array bounds validation from Design.xml from
designToClassBody.xslt to Design.xsd or to 2nd stage
validator
- [OPCUA-1046]
- Cannot document methods in Design.xml
|
1.2.2
|
Please have a look at release note for
summary.
|
(none known)
|
Bug
- [OPCUA-923]
- ProjectSettings should be included after Build config
- [OPCUA-1001]
- Sourcevariable datatype declared as float is listed as
Variant (type 24) in the address-space
Task
- [OPCUA-994]
- Relax case restrictions for variable names in quasar
Improvement
- [OPCUA-854]
- Optional module version check fails with 'release
candidate' tags
|
1.2.1
|
Bug fixes:
- the mode to create PKI certificates and exit didn't
work with UA SDK 1.5.x - fixed
- honkyTonk didn't work
|
(none known)
|
Bug
Improvement
- [OPCUA-858]
- --create-certificate misleading, no warning when
certificate already exists, plus possibly it doesnt work
with tkit 155
- [OPCUA-874]
- Improve honkyTonk, generate only when devicelogic
present, warn when not
|
1.2.0
|
Major features:
- Methods support (UASDK + open62541)
Minor features:
- astyle compatibility mode
- sticky build config
- commonalization of master CMakeLists.txt
|
- Note that since this release, the master CMakeLists is
"one-size-fits-all", i.e. you should customize it.
Instead, your per-project settings like the name of the
executable and so on should go to ProjectSettings.cmake,
which will be included after the upgrade.
- Please note that you no longer append your build
config file name to "./quasar.py build". Now you
should do:
./quasar.py set_build_config
<path_to_your_build_config>
|
Bug
- [OPCUA-662]
- prepare.py (from open62541-compat) does not work
- [OPCUA-745]
- Asynchronous source variable with UaString doesn't
compile
- [OPCUA-800]
- Cosmetic fixes for methods
New Feature
Task
- [OPCUA-106]
- Quasar methods
- [OPCUA-579]
- Easily selectable OPC-UA backend configuration file
(ServerConfig.xml)
- [OPCUA-668]
- Post-merge: missing copyright header in
designToHonkyTonk
- [OPCUA-786]
- astyle equivalent with no/minimal deployment cost
- [OPCUA-830]
- Commonalize master CMakeLists.txt, find what specific
extensions people have
Improvement
- [OPCUA-689]
- Optional modules should work from branches too
- [OPCUA-799]
- Sticky build config
- [OPCUA-819]
- Model visualization improvements
|
1.1.8
|
Major features:
Minor features:
- Python-based scripting clean-up and enhancement
(external_tool_check, etc)
|
In the Design.xsd schema,
vendor attribute is now renamed to author. If you used that
attribute, please update your Design.xml accordingly.
|
Bug
- [OPCUA-640]
- Compilation error with UA API 1.5.x
Task
- [OPCUA-634]
- Add option to enable_module which would persistify the
selection in the VCS used
- [OPCUA-635]
- Optional modules
- [OPCUA-646]
- Improve quasar generated headers for device, rename
vendor to author
Improvement
- [OPCUA-583]
- Python scripting system better error handling and
messages, refactoring, and other improvements
|
1.1.7
|
Major features:
- Compatibility with the API of OPC-UA Toolkit 1.3.x,
1.4.x and 1.5.x.
|
NONE KNOWN
|
Bug
- [OPCUA-611]
- Debug builds (sometimes) abort on startup during meta
configuration
- [OPCUA-616]
- Bug found in shutdown.cpp, affecting certain versions
of Windows
- [OPCUA-618]
- ConfigValidator missing inclusion of Utils.h
New Feature
- [OPCUA-617]
- check_consistency working with projects stored on git
Task
Improvement
|
1.1.6
|
Major and minor features,
look into the rightmost column for details.
|
NONE KNOWN
|
New Feature
- [OPCUA-608]
- Ability to use server LogIt instance for logging from
within dynamically loaded libraries on linux and windows
Task
- [OPCUA-560]
- Configuration discovery/serialization
- [OPCUA-575]
- Application-specific command line options
- [OPCUA-594]
- RPM building in Quasar: Create an analogue of
build_from_svn for git projects
- [OPCUA-600]
- Clarify situation of Saxon jar inclusion; if
impossible find alternative deployment
|
1.1.5
|
Minor fixes:
- Missing copyright headers, and a small fix that
wouldn't compile in proper C++11 compiler
|
NONE KNOWN
|
Bug
- [OPCUA-577]
- gcc4.8.2 confused by const of NodeManager
Task
- [OPCUA-574]
- Missing copyright header in ASNodeQueries.h
|
1.1.4
|
Major features:
- Supplied MSVC (Windows) configuration now defaults to
MSVC2013
Minor features:
- Fix for cache variables with isKey=true and UaString
dataType
|
sys/time.h and uadatetime.h
are no longer included Utils.h.
|
Bug
- [OPCUA-565]
- Using configentry with dataType "UaString" as key
(attribute isKey="true") generates non-compiling Base_D*
code
Improvement
- [OPCUA-566]
- QUASAR for windows: Migration from VC++ 2010 to VC++
2013
|
1.1.3
|
Major features:
- Single-item-classes (where the only variable takes
place of the object in the Address Space)
|
None known
|
Improvement
- [OPCUA-540]
- Unified device parent in DeviceLogic no matter if the
factual parent exists or not
New Feature
- [OPCUA-489]
- Make QUASAR framework version info available to OPC-UA
clients from StandardMetaData
Task
- [OPCUA-555]
- Single-item-class support (a.k.a. 'primitive')
- [OPCUA-557]
- Move heavy (templated) code for node search from
ASNodeManager.h into separate header
- [OPCUA-561]
- Better level of detail for visualtion (generate
diagram) to see presence of device lgoic
|
1.1.2
|
Major features:
- Re-design of main.cpp: it should since this revision
be unchanged by the developer. Custom parts should go
into QuasarServer.cpp
|
It is required to migrate to
your main.cpp into new QuasarServer.cpp
Your initialization code should go to
QuasarServer::initialize(),
your shutdown code should go to QuasarServer::shutdown(),
and the main loop into QuasarServer::mainLoop().
|
Improvement
- [OPCUA-447]
- Improve main.cpp to clearly structure it
- [OPCUA-527]
- New standard meta data
New Feature
- [OPCUA-489]
- Make QUASAR framework version info available to OPC-UA
clients from StandardMetaData
Task
- [OPCUA-519]
- Fix copyright info - LogIt, Meta
- [OPCUA-522]
- Add License.txt with GPL license into Quasar sources
- [OPCUA-532]
- Add header for files.txt and original_files.txt
|
1.1.1
|
Minor features:
- Python commands got renamed to what was chosen by
Quasar developers as most optimial
|
framework.py -> quasar.py
|
Bug
- [OPCUA-529]
- upgrade_design parameters not forwarded (effectively
not working)
Improvement
|
1.1.0
|
Major features:
- Big clean-up which brings awaited feature of
converting "deviceLogicTypeName" into something human
(but breaks Design.xml compatibility at the same time)
- Decoupling Base device classes from the address space
completely
- Proper headers now introduced in almost anything apart
from Meta, LogIt and Python scripts
Minor features:
- Clean-up of source variables logging -> now using
LogIt
- Added in-line (i.e. Eclipse compatible) documentation
to source variables attributes
|
Design.xml compatibility
likely to be broken in your case (if you use Device Logic),
but this can be easily fixed, just run:
./quasar.py upgrade_design convert_to_hasDeviceLogic=yes
Also bear in mind that if upgrading from a version earlier
than 1.0.2, namespaces have to get fixed (look at notes in
1.0.2)
|
Sub-task
- [OPCUA-512]
- Dissociate base from Address Space completely
Bug
- [OPCUA-513]
- Shipped config.xml and Design.xml still have old XML
namespace
Improvement
- [OPCUA-514]
- deviceLogicTypeName -> hasDeviceLogic
Task
- [OPCUA-515]
- Fix copyright info - Piotr's code
- [OPCUA-516]
- In-line documentation to attributes of source
variables
- [OPCUA-517]
- upgrade_design doesn't take arguments
- [OPCUA-518]
- Fix the namespace for CommonFunctions
- [OPCUA-520]
- Source variables should be logged using LogIt
|
1.0.2
|
Minor
features:
- A feature to store configentry data permanently in the
Device object.
|
Is is required to replace in
your Design.xml the occurencies of:
"http://www.example.org/Design"
to
"http://cern.ch/quasar/Design"
You can automate it using sed:
sed -e 's/www.example.org/cern.ch\/quasar/g' Design.xml -i
same for configuration files.
|
Bug
- [OPCUA-504]
- Problem with pythonized scripts
- [OPCUA-505]
- check_consistency fails
- [OPCUA-506]
- Synchronous source variable not properly generated in
Device
Improvement
- [OPCUA-495]
- Design.XSD Protection for unique names of variables
within a class
New Feature
- [OPCUA-482]
- (optional) storage of <configentry> values, in
generated Device classes, provides 'raw' configuration
values at runtime.
Task
|
1.0.1
|
Minor features:
- Supported data types collection has grown to: Int16,
UInt16, Int8(=SByte), UInt8(=Byte)
|
|
Improvement
- [OPCUA-488]
- Keep msbuild specific instructions in msbuild build
configuration
- [OPCUA-501]
- frameworkGUI improved logging
New Feature
|
1.0.0
|
Major features:
- sh build scripts converted to Python, so the
development and build may be started on any operating
system (previously Linux only)
- MSVC10 compatibility is now guaranteed for delivered
and generated code
Note that versioning
schema has changed since this release into more common
3-section version id. Otherwise it would be more logical to
continue with 0.100 after 0.99 ;-)
|
With new multiplatform
scripts, the entry points of the framework have changed.
I.e. there is no longer automated_build_linux.sh script.
|
Improvement
- [OPCUA-487]
- Improve #ifdefs in main.cpp to include at least one
section or fail if impossible to do so
Task
- [OPCUA-363]
- transformDesign in python
- [OPCUA-364]
- Documentation how to install astyle, kdiff3, (possibly
Java), python, on Windows (update in Documentation.html)
- [OPCUA-483]
- Windows-enabled Generic Server
|
0.99
|
Major features:
- Cleaned up build system, which allows for
customization of paramteres like boost version and path,
OPC UA toolkit, custom compiler etc
Minor features:
- In-line documentation in the Design and in the
(generated)Configuration schema
- Esthetical improvements with LogIt and Meta
- Many small useful fixes
|
- The structure of CMakeLists.txt have changed:
- Server/CMakeLists.txt got standardised, it is no
longer supposed to be maintained by the user
- It is the master CMakeLists.txt which now have the
statement to create the exec and link appropriate
libraries
- Therefore it may be necessary to put some effort
into resolving CMakeLists.txt business
- One may need to prepare custom build configuration
file to capture their specific build instructions
(i.e. custom boost)
|
Bug
- [OPCUA-387]
- Bug found in official framework release, file
designToGeneratedCmakeDevice.xslt
- [OPCUA-428]
- Error messages from Meta assume the config file is
called config.xml
- [OPCUA-450]
- No parent device is generated in Base class under
certain conditions
Improvement
- [OPCUA-220]
- in-line documentation as to what is meant by
[forbidden|delegated|regular] for addressSpaceWrite
- [OPCUA-429]
- Catch global exceptions
- [OPCUA-434]
- Print component name instead of numerical id when
changing log level from the address space
- [OPCUA-441]
- Include empty Design.xml and config.xml in the
framework installation package
- [OPCUA-446]
- DRoot camelCase for objects
- [OPCUA-448]
- Inline documentation for all attributes of
cachevariable
- [OPCUA-449]
- Print class and variable for error "For valueAndStatus
initializer initialStatus must be given."
- [OPCUA-458]
- Try carrying documentation over from Design file to
Configuration schema
Task
- [OPCUA-166]
- Allow no device logic for children when parent has one
- [OPCUA-357]
- Check with evaluation version of OPC UA toolkit;
mention in tutorial+docs; prepare build target
- [OPCUA-375]
- Master CMakeLists: toolkit location should be
specified with one CMake variable (defined at the top)
- [OPCUA-377]
- LogIt, use 4 digit year in timestamp
- [OPCUA-385]
- Proposal of enhancement of the build system to nicely
capture OS differences and possibly non-standard
components (e.g. boost)
- [OPCUA-396]
- Better end-user error message if trying to start new
server instance when server is already running
- [OPCUA-430]
- Prepare default config when build configuration wasnt
specified
- [OPCUA-439]
- Investigate write/read through the same variable
feature
- [OPCUA-440]
- Fix "Discovery Server not available" currently logged
in all OPC UA srv logs
|
0.98
|
Major features:
Minor features:
- Thread pool size is not hardcoded (and can be
configured from the config file)
- Data Type identifier field is now populated for
variables which have initialValue. Therefore it matches
the type declared in the design file. This was
completely unrelevant for UA Toolkit-based clients but
affected i.e. LabView OPC UA client.
- ConfigValidator has more verbose output
- When loading of configuration fails, xsd's native
mechanism is now used instead of running the external
validator (here: xmllint). This will both improve
portability (xmllint might be unavailable in the target
system), and help with configuration schemas that may
have very nonstandard locations.
- A bug is fixed which would affect delegated
cachevariables of UaVariant type.
|
NONE KNOWN
|
Task
- [OPCUA-156]
- Extend config file with configuration options (e.g.
thread pool size)
- [OPCUA-157]
- Improve InformationModel for Variables
- [OPCUA-371]
- LogIt: dont put full path to file which generates
message in the log
- [OPCUA-372]
- Common way of initializing log levels at startup
- [OPCUA-379]
- Merge respective changes from latest Wiener server
- [OPCUA-401]
- Suboptimal error message when schema specified in
config.xml cannot be found
- [OPCUA-402]
- DataType identifiers are necessary for certain OPC UA
clients
- [OPCUA-403]
- UaVariant forbidden in delegated write
- [OPCUA-425]
- Improvement in loading component log levels from the
config file
|
0.97
|
Major features:
- Device classes are split into Base part (100%
generated) and User part (with generated stubs). This
helps to reduce merging efforts by an order of
magnitude.
Minor features:
- No more compilation warnings coming from ASNodeManager
- SourceVariables only rebuilt for classes which
actually have a source variable (and not all classes)
- Configurator, Root fully autogenerated
- Queriying object name is now easy in Device logic
- A list of device logic files is now filled
automatically
- Possible to have "self-referring" hasObjects relation
- When given device logic body/header doesnt exist, user
is asked whether to generate
- When given device logic body/header is older than
design file, user will be warned
|
- regenerating Device Logic may ask for removal of big
parts of already existing Device Logic code. This is
actually intentional as this code will now go to the
Base part of Device Logic class
|
Bug
- [OPCUA-259]
- Fix build warnings
- [OPCUA-361]
- ConfigValidator attempts to validate per-design
instantiated objects (should skip them)
- [OPCUA-362]
- check_consistency: add option to ask for fixing.
Task
- [OPCUA-248]
- Make SourceVariables.{h,c++} dependencies less tight
- [OPCUA-250]
- Should getName() be present for all Device Logic
objects automatically?
- [OPCUA-257]
- Evaluate Ben's anti-merge improvement
- [OPCUA-281]
- Make Configurator.cpp and DRoot generation fully
automatic
- [OPCUA-349]
- Cleanup generated_files_list and
generated_headers_list
- [OPCUA-350]
- A warning when Device file is newer than Device Logic
classes
- [OPCUA-355]
- Improve install tool
- [OPCUA-360]
- Exchange compile-time recursion for exec-time
recursion of self "has" relation
- [OPCUA-370]
- check_consistencty: when file doesnt exist, md5sum
bails out
|
0.96
|
|
- nullPolicy attribute needs to be added
per-cachevariable. This can be automated by
upgrade_design script (look at its help)
|
Bug
- [OPCUA-260]
- addressSpaceWrite confused with addressSpaceRead
Improvement
- [OPCUA-258]
- Better deprecation warning msg
- [OPCUA-263]
- Flood of destructor messages.
- [OPCUA-279]
- Focus 2nd level validation in 1 XSLT transform
Task
- [OPCUA-209]
- null setters for non-uavariant variables
- [OPCUA-266]
- Failing XSLT processor should make the output to be
deleted
- [OPCUA-267]
- Create simple XSLT for updates of the version of the
framework in existing projects
|
0.95
|
Major features:
- Doxygen integration
- Cardinality modelling (possibility to specify min and
max number of objects in ts relation)
Minor features:
- Cachevariable's setter's source time argument (3rd
argument) has now a default of current datetime.
Therefore it can be omitted for 99% cases.
|
NONE KNOWN
|
Task
- [OPCUA-203]
- Integrate doxygen
- [OPCUA-215]
- Cardinality modelling in hasObjects relation
- [OPCUA-231]
- setters: current datetime (UaDateTime::now()) should
be default argument for time
|
0.94
|
Major features:
|
NONE KNOWN
Beware though that recommended layout of Device headers and
sources changed, and you may need to reshuffle it a bit for
getting easy merging.
|
Bug
- [OPCUA-217]
- simple addressspace setters not updated in
addressspace body generator
Task
- [OPCUA-168]
- Device header and body shall have a comment that
indicates the start of custom section
- [OPCUA-197]
- Config Entries
- [OPCUA-204]
- Document all transformations (including building the
project) in a nice diagram and put it into documentation
- [OPCUA-206]
- openssl-dev and libxml2-devel dependency missing in
Generic Server documentation
- [OPCUA-212]
- dont generate Device Logic stubs when
DeviceLogicTypeName not defined
|
0.93
|
Major features:
- Files database (files.txt) and number of tools that
depend on it: consistency checker, new installer
Minor features:
- Setters for simple data types take plain value instead
of reference
- makeSetGet dropped as a cachevariable attribute
(equivalence of true assumed)
Internal features:
|
NONE KNOWN
(only deprecation warning shown for makeSetGet attribute)
|
Task
- [OPCUA-120]
- Consider makeSetGet=true as normal, non-configurable
parameter
- [OPCUA-127]
- A way to check that files that shall not be modified
(transforms...?) are not modified
- [OPCUA-160]
- Install script should be more gentle ...
- [OPCUA-167]
- Setters: simple data types (integers, floats...) shall
be passed by value rather than by reference
- [OPCUA-188]
- A script to verify if proper things are committed to
the SVN (and warn if too much/not enough is within
version control)
- [OPCUA-198]
- Create script for tagging Generic Server releases
|
0.92
|
Major features:
- Source variables
- Automated mutex generation
- UaVariant added as allowed data type
- honkyTonk tool to simulate address space updates
Improvements:
- Unified and cleaned initialization of cache variables
- Configuration.xsd: proper types for various flavours
of integers (previously every int irrespectively of
length and signedness was just "int")
- createDiagram.sh creates diagrams of varied level of
details
|
|
|