- Added Entity class member function to clone entity object
- python bundle generator must escape 'async' as variable name (#980)
- YDK fails instantiate some of the generated bundle classes (#983)
- Updated cisco-ios-xe bundle to support Cisco IOS XE 16.9.3 due to bug in Python generated code
- Updated cisco-ios-xr bundle to support Cisco IOS XR 6.6.3
- Updated openconfig bundle to support YANG models of revision "2019-06-21"
- Expanded meta data in Python bundles by adding flags
has_must
andhas_when
(#927) - Added utility function to compare two entities and build diff (#925)
- 'ietf-netconf-monitoring:get-schema' returns schema with escape sequences (#614)
- NETCONF provider should raise more appropriate exceptions (#774)
- Inherited classes not initialized properly in Python3 when constructor uses super() (#921)
- Delete operation fails on container (#931)
- Absolute path for generated entity of second level list child is incorrect (#933)
- Get entity path methods should be consistent (#953)
- Added documentation for XmlSubtreeCodec and JsonSubtreeCodec.
- Improved documentation for System Requirements and Python Requirements
- Resolved GitHub issue (#952): Public API for entity has documentation gaps
- Updated cisco-ios-xr bundle to support Cisco IOS XR 6.6.2
- Updated openconfig bundle to introduce support for additional models.
- cgo compile error (#781)
- YDK netconf read fails when tag has namespace prefix (#799)
- YDK return value of YANG action missing some attributes (#871)
- Duplicate code in generated cisco-ios-xe Go bundle (#891)
- YDK-Py docker container does not support Python3 (#905)
- Installation documentation for YDK-Py needs an update (#906)
- README file for YDK-Py repo is not rendering correctly (#907)
- Max value of range is set to None when not specified in the Yang model (#916)
- YDK MetaInfo should have a field for mandatory leaf (#918)
The solution for GitHub issue (#891) changed model API. However all model bundles generated with YDK-Gen version 0.7.3 and later are still compatible with core YDK components.
- Expanded disabling of data validation to read operations with NetconfServiceProvider.
- Expanded disabling of data validation to gNMIServiceProvider.
- ydk-py and ydk-gen Travis tests fail on Mac (#834)
- When MacOS is updated from Homebrew any Python2 YDK application fails (#837)
- ImportError: dynamic module does not define module export function (PyInit_ydk_) (#840)
- Libyang error: Reached limit (65535) for storing typedefs (#874)
- AttributeError: 'Config' object has no attribute 'logger' (#876)
- gNMI provider requires 'port' argument (#880)
- 'delete' and 'replace' filters doesn't work properly with gNMI and CRUD service (#881)
- Released cisco-ios-xr bundle to support Cisco IOS XR 6.5.2
- Released cisco-ios-xe bundle to support Cisco IOS XE 16.9.3
- Released cisco-nx-os bundle to support Cisco NX OS 9.2.3
- Added support for CRUD, Netconf Service, and gNMI Service operations on non-top level objects.
- Introduced a feature, which allows to disable validation of entity data processed by NetconfServiceProvider.
- Added capability to generate meta-data in Python bundles by adding
--generate-meta
flag ingenerate.py
script. - Added
generate.py
script options '-i --install' and '-s --sudo' to generate and install Python packages in one step. - Use CMake build number for release numbers with suffix (#864)
- YFilter dropped when used with NetconfService and EntityCollection (#803)
- Test for non-top level Entity fails when bundle created with 'one-class-per-module' flag (#839)
- NETCONF Session constructor doesn't allow port to be None (#846)
- YDK fails process RPC payload, which contain 'data' tag (#851)
- gNMI script results in a segmentation fault if repository is missing a required model (#852)
- CodecService fails correctly encode multiple entries in keyless list (#854)
- Segmentation fault when decoding gNMI config payload (#856)
- Decoding gNMI payload fails with ValueError exception (#858)
- gNMI missing from ydk-py docker (#860)
Addressed multiple documentation issues: #848, #850, #861, #862
- Introduced YDK support for gNMI protocol (protobuf version 0.4.0) including gNMI Session for Path API and CRUD service and gNMI Service with gNMI Service Provider.
- Added Netconf support for certificate-based authentication for multiple servers
- Added capability to generate YDK service packages from
generate.py
script.
- Updated cisco-ios-xr bundle to include previously missing action models in Cisco IOS XR 6.5.1 release
- Released cisco-nx-os bundle to support Cisco NX OS 9.2.2 release
Introduced Codec feature to decode multiple JSON payload. (#812)
Improved support for YList (#811)
Improve handling of python native types in model API. (#733)
Validate leaf values based on python type of model API. (#739)
Improve checking of invalid attributes for model API objects. (#815)
Updated cisco-ios-xr bundle to support Cisco IOS XR 6.5.1 release.
Updated cisco-ios-xe bundle to support Cisco IOS XE 16.9.1 release.
Released cisco-nx-os bundle to support Cisco NX OS 9.2.1 release.
Updated openconfig to to make it compatible with ydk core version 0.7.3.
Also updated ietf bundle to make it compatible with ydk core version 0.7.3.
Bundle excludes the following files due to duplicate namespaces:
Cisco-IOS-XR-sysadmin-clear-ncs5500.yang
Cisco-IOS-XR-sysadmin-clear-ncs5502.yang
Cisco-IOS-XR-sysadmin-clear-ncs55A1.yang
Cisco-IOS-XR-sysadmin-controllers-ncs5500.yang
Cisco-IOS-XR-sysadmin-controllers-ncs5501.yang
Cisco-IOS-XR-sysadmin-controllers-ncs5502.yang
Cisco-IOS-XR-sysadmin-controllers-ncs55A1.yang
Cisco-IOS-XR-sysadmin-fabric-mgr-fsdb-aggregator-ncs5500.yang
Cisco-IOS-XR-sysadmin-fabric-mgr-fsdb-aggregator-ncs5502.yang
Cisco-IOS-XR-sysadmin-fabric-mgr-fsdb-server-ncs5500.yang
Cisco-IOS-XR-sysadmin-fabric-mgr-fsdb-server-ncs5502.yang
Cisco-IOS-XR-sysadmin-fabric-ncs5500.yang
Cisco-IOS-XR-sysadmin-fabric-ncs5501.yang
Cisco-IOS-XR-sysadmin-fabric-ncs5502.yang
- Released
cisco-nx-os
bundle to support Cisco NX OS 7.0-3-I7-4 release - Updated
cisco-ios-xr
bundle to support Cisco IOS XR 6.4.1 release - Updated
openconfig
to introduce support for additional AFT models. - Updated
cisco-ios-xe
bundle to continue to support Cisco IOS XE 16.8.1 release and make it compatible withydk core
version 0.7.2 - Also updated
ietf
bundle to make it compatible withydk core
version 0.7.2
- Introduced support for key-based access to list items in Python, C++ and Go model API (#231)
- Introduced support for multiple entities in Go (#768)
- Improved support for YANG
presence
nodes (#629, #738, #763) - Fixed issue with invoking sequential CRUD operations on different model APIs (#727)
- Improved NETCONF service commit API (#796)
- Enhanced support for leaf value patterns (#786)
- Improved support for YANG
feature
s included in NETCONF hello message (#777)
NOTE: #604 introduced a backward incompatibility. The below bundles generated with 0.7.1
or newer ydk-gen will only work with ydk core
version 0.7.1
or newer
- Updated
cisco-ios-xr
to support Cisco IOS XR 6.3.2 release - Updated
cisco-ios-xe
to support Cisco IOS XE 16.8.1 release - Also updated
openconfig
andietf
bundles
- Released
cisco-nx-os
bundle to support Cisco NX OS 7.0-3-I7-4 release - Updated
cisco-ios-xr
bundle to support Cisco IOS XR 6.4.1 release - Updated
openconfig
bundle to introduce support for additional AFT models. - Updated
cisco-ios-xe
bundle to continue to support Cisco IOS XE 16.8.1 release and make it compatible withydk core
version 0.7.2 - Also updated
ietf
bundle to make it compatible withydk core
version 0.7.2
- Introduced support for key-based access to list items in Python, C++ and Go model API (#231)
- Improved support for YANG
presence
nodes (#629, #738, #763) - Fixed issue with invoking sequential CRUD operations on different model APIs (#727)
- Improved NETCONF service commit API (#796)
- Enhanced support for leaf value patterns (#786)
- Improved support for YANG
feature
s included in NETCONF hello message (#777)
- Improved documentation logos (#754, #755, #756)
tconf / Codec / Path API improvements
- Introduced support for multiple entities in Python and C++ (#713, #719, #726, #736)
- Added support for yang models with more than 256 typedefs (#678, #607)
- Fixed segfault with
cisco-ios-xe
model (#627) - Changed default arguments to be more pythonic (#682)
- Handled XML escape characters included in yang models (#683)
- Improved handling XML declaration in XML payloads (#662)
- Fixed support for yang models with lists as top-level nodes (#728)
- Added support for yang 1.1
action
statement in path API (#717)
- Added support for connecting to devices with no
get-schema
support (#554)
- Updated leafs in python model APIs to use native python types. (#604)
- Improved the size and performance of Golang model APIs (#604)
- Fixed issue with handling of some typedefs in Golang (#706, #747)
- Improved ydk-gen error reporting and fixed
--one-class-per-module
option of generating python packages (#604) - Added coverage for Golang and C++ (740, #705)
- Introduced automated docker builds to produce docker images with
ydk-gen
,ydk-py
andydk-go
pre-installed (#724) - Removed
epel-release
as one of the requirements for libydk RPM (#627) - Added testing for
libydk
packages (#604)
- Added support for all existing
ydk core
services, providers, types and errors in Go - Added support for all existing
ydk bundles
includingietf
,openconfig
,cisco-ios-xr
andcisco-ios-xe
in Go - #673, #663, #660, #658, #606, #605
- Fixed handling of reading operational data nodes (#664)
- Improved formatting of payloads in logging output (#670)
- Fixed naming of errors across C++ and Go to be consistent. Changed YCPPError, YError etc to YError (#669, #668)
- Fixed warning in CMake build system to look for CMake version of
3.0.0
or greater (#655)
- Improved documentation for models which augment other models (#426)
- Added support for keybase authentication (#619)
- Fixed various issues with usage of XE model API (#640, #535, #612, #632)
- Improved handling of leaf-lists (#621, #631, #646)
- Improved documentation for unions (#642) and string patterns (#651)
- Improved developer guide (#622, #625)
- CRUD / Executor / Codec service improvements
- Improved
CRUDService
support foropenconfig-routing-policy
yang module (#580, #540) - Improved CRUD support for parent-child yang nodes with the same name (#566, #598, #596)
- Improved CRUD support for
openconfig-if-ethernet
andiana-if-types
modules (#513) - Fixed CRUD issue with encoding containers and list instances in user-selected order (#563, #564)
- Fixed issue with
ExecutorService
(#590, #558) - Improved
CodecService
performance (#537) - Documentation improvements
- Fixed YDK-Py installation documentation on macOS (#513)
- Fixed
libydk
installation documentation (#584)
- Updated
cisco-ios-xr
bundle to support Cisco IOS XR 6.3.1 release - Updated
cisco-ios-xe
bundle to continue to support Cisco IOS XE 16.6.1 release and make it compatible withydk core
version0.6.1
- Also updated
openconfig
bundle version 0.1.4 with additional support for optical transport (channel monitor, optical amplifier, terminal device and transport line) - Improved Service Providers
- Improved Netconf Service Provider to support timeout and retrieving device capabilities (#217, #492, #557)
- Decoupled path API-specific details from Service Provider and created Netconf & Restconf Session to be used instead of Provider in path API (#494, #511)
- Fixed segmentation fault with the
openconfig-platform
model (#527)
- Improved Netconf Service's
kill_session
method (#528)
- As specified above, the
cisco-ios-xe
bundle version was updated to16.6.1.post1
without any of the models being changed. This is because the already released16.6.1
bundle is not compatible with theydk core
version0.6.1
. So, when upgrading yourcore
version to be0.6.1
, please also update the XE bundle to version16.6.1.post1
.
- Fixed documentation issues for installation (#529, #531, #542, #541)
- Improved API documentation (#424, #94)
- Improved model API generation
- Introduced new YDK python
core
package using pybind11 to wrap around YDK C++core
(#507)- Introduced
ydk.path
module consisting of APIs to read, manipulate and write YANG data using XPath-like expressions - Updated YDK services and providers to internally use the path API
- Introduced
RestconfServiceProvider
andOpenDaylightServiceProvider
- Updated
NetconfServiceProvider
to be able to download the device yang models on connecting to a device - Introduced ability to encode/decode subtree XML in
CodecService
and changedCRUDService
to use XML subtree filtering to create filters for theread
operation - Added equality/inequality operators to compare YDK model API objects
- Add option for TCP transport in
NetconfServiceProvider
(#476, #444) - Support
get
/get-config
with no filter in path API (#503) - Introduce optimized on-demand yang model downloading for
NetconfServiceProvider
(#499) - Add support for choosing either a per-device or a common cache for storing downloaded yang models (#502)
- Introduced encoding/decoding subtree XML in
CodecService
and changedCRUDService
to use XML subtree filtering to create filters for theread
operation (#489) - Added support for non-standard RPCs as well in path API (#498)
- Introduced
- Updated
cisco-ios-xr
to support Cisco IOS XR 6.2.2 release - Updated
cisco-ios-xe
to support Cisco IOS XE 16.6.1 release - Also updated
openconfig
andietf
bundles
The backward incompatible changes introduced with 0.6.0
release include:
- Installation: When installing
YDK-Py
, there is a new system requirement which needs to be installed. This is thelibydk
library, which is available on the DevHub website for various OS platforms. Please refer to the system requirements for details. - Windows support: From release
0.6.0
onwards, YDK is no longer supported on the Windows platform. We plan to add back support for this platform in the future. - API changes: Please refer to the developer guide and API guide for details about APIs and how to use them.
NetconfServiceProvider
no longer has theclose()
method. There is no need to explicitly close the provider as it will be automatically cleaned up when the object goes out of scope.YFilter
has replaced the functionality of theREAD
andDELETE
objects- When using logging, the suggested level for users of YDK is
INFO
asDEBUG
provides highly detailed logging suitable for dvelopers working on YDK - The type names of
enumerations
andidentities
no longer haveEnum
orIdentity
in their names. For example, the identityInterfaceTypeIdentity
inydk.models.ietf.ietf_interfaces
is now renamed to justInterfaceType
. - The
is_config()
method is no longer available for the YDK model APIs. This may be added back in a future release.
- Fixed bundle
setup.py
to match ydkcore
dependency in bundle profile (#433) - Updated
lxml
dependency for ydkcore
package (#427) - Improved reading of data using
ExecutorService
(#332) andCRUDService
(#457) - Fixed encoding key elements of yang
list
s (#363) and operational data (#452, #455) - Added
cisco-ios-xe
bundle to support Cisco IOS XE 16.5.1 release
- Improved getting-started guides for YDK-Py and YDK-Cpp (#418, #419)
- Made table of contents for bundle documentation be sorted alphabetically (#446, #419)
- Improved documentation of
rpc
classes (#435)
- Improved logging to indicate message directionality (#388)
- Provide more details for validation error message for leaf-lists (#398)
- Remove indirect python requirements from
setup.py
(#392) - If validation error occurs when decoding payload, include payload as an attribute of the
YPYModelError
raised (#381) - Updated
cisco-ios-xr
bundle to support Cisco IOS XR 6.2.1 release
- Separated top data classes from type classes in table of contents (#372)
- Fixed ydk version not being correctly printed for C++ documentation (#374)
- Indicate bundle version in C++ and python bundle documentation (#383)
- Fixed issues with netconf service (#323, #305)
- Disambiguated model API classes called 'None' (#318)
- Removed 'Bits' from classes representing bits leafs (#318, #320)
- Included model revision in documentation (#272)
- Improved documentation for string leafs (#346), decimal64 leafs (#300, #294)
- Improved look and feel of documentation (#361, #356)
-
CRUD service / Codec service / Netconf service improvements
-
Bundle improvements
- Made generate.py executable (#227)
- Removed auto capitalization of enum literals (#230)
- Updated
cisco-ios-xr
bundle to support Cisco IOS XR 6.1.2 release (#316)
-
Logging improvements
-
Documentation improvements
-
Support for Python3
- Introduced support for Python 3 (#60)
- Both Python 2 and Python 3 are now supported for
ydk-gen
andydk-py
-
Bundle improvements
- Improved usage of import statements in YDK model API to reduce chances of circular import dependency (#216)
- Updated
cisco-ios-xr
bundle to support Cisco IOS XR 6.1.1 release (#258) - Updated
openconfig
bundle (#258)
-
Documentation improvements
-
Created YDK core library and pluggable namespace packages that share the same module prefix
ydk.models
-
Generated documentation for YDK core and bundles
-
CRUD service / Codec service / Netconf service improvements
- Improved support for presence containers, nested enum and identity classes (#169)
- Improved support for lists with multiple keys by ensuring that the order of keys is preserved (#179)
- Improved support for leaf-list of identity type (#186)
- Added check for user error which can occur when self-referencing YDK object as parent object (#184)
- Improved error-reporting for commit-time error (#190)
- Fixed CRUD read support for modules containing top-level list (#194)
-
Testing improvements
- Added Mac OS X installation and running codec service sanity tests to CI (#175)
-
Documentation improvements
- Indicated mandatory leafs in the documentation (#177)
- Specified path to referred leaf for leafrefs (#177)
- Fix documentation of presence containers (#192)
- Enhanced documentation of leafs of identityref type by indicating all the subclasses of identity base class referred to by the identityref (#161)
- Added documentation on how to use YDK delete operation and improved documentation for YDK read operation (#204)
- Error handling improvements
- Fixed local validation to correctly check for types and values (#116)
- Introduced error hierarchy to represent errors from various components, viz.: YPYModelErrors, YPYServiceError, YPYServiceProviderError (#133)
- When raising YPYModelErrors, include errors dictionary with key as path to data, and value as tuple of error code and error message
- Added more extensive negative test cases to ydk-gen to test handling of error (#134)
- CRUD service / Codec service / Netconf service provider improvements
- Added support for multiple objects to codec service (#122)
- Added logging for codec service (#97)
- Have logging hierarchy automatically follow package hierarchy (#100)
- Have netconf service return YDK python objects instead of XML strings (#120)
- Fixed decoding issue with leaf-list of enums (#150)
- Removed requirements.txt from ydk-py and added all requirements to setup.py
- Enforce PEP8 naming for Identity classes (#152)
- Added full ydk-py version to the documentation (#144)
- Added openconfig bgp-policy APIs to ydk-py (#102)
- Introduced ability to programmatically retrieve SDK version of ydk-py (#8)
- Removed unused dependencies from ydk-py's requirements.txt (#48)
- Introduced coveralls and improved travis CI integration for ydk-gen github (#84, #54, #15, #46)
- CRUD service / Netconf service provider improvements
- Added timeout parameter to NetconfServiceProvider (#1)
- Fixed issues with decoding leafs of union type and nodes defined in sub-modules (#5, #56)
- Fixed issue with encoding enums, identities defined in external modules (#30, #103)
- Improved support for deleting leafs, leaf-lists and lists (#55, #103)
- Documentation improvements
- Added 'About ydk-py' page with information about ydk-gen used to generate ydk-py (#6)
- Indicate in documentation YDK class attributes that are keys (#41)
- Made top containers show up at the top of the table of contents for every module document (#39)
- Introduced netconf service and codec service
- Netconf service provides APIs to execute netconf operations
- Codec service provides APIs to encode python objects and decode payloads
- Support for yang deviation
- Support for subscribing to model-driven telemetry
- Logging made more consistent
- CRUDService outputs type of operation
- When logging is enabled, all NETCONF messages are logged including commit
- Log messages at various stages (send RPC request, receive reply, commit etc) instead of logging all at once at the end
- Updated enums in YDK classes to use enum34
- Improved enum documentation
- Improved error reporting for ydk-py and ydk-gen
- First public release.