- 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 equality operator for model API objects (#432)
- Improved handling of presence
container
s (#437)
- Added
cisco-ios-xe
bundle to support Cisco IOS XE 16.5.1 release - Improved exception handling in the ydk-gen
generate.py
script (#440)
- 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) - Update Python package generation and post YDK-Py on the Python package index - PyPi (#404, #406)
- Changed dependent libraries (#382)
- Create default yang models repository for each bundle. Install yang models as part of bundle shared library (#292)
- Make passing in
path::Repository
object optional forCodecServiceProvider
- Make passing in
- Fix issue with handling augmented leafs in
CrudService
(#351) - Use smart pointers (like
shared_ptr
) in place of raw pointers (#382), (#393) - Support linking to multiple bundles (#349)
- Added sample code for using YDK with JSON configs in combination with CRUD service (#387)
- Improved generation of C++ code to consume less compile-time memory for large yang models (#386), (#336)
- Add check for valid profile file to ydkgen (#378)
- Added code coverage for C++ code (#373)
- 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)
- Introduced support for two new service providers (#365)
- RestconfServiceProvider
- OpenDaylightServiceProvider
- Introduced support for netconf service (#341, #352)
- Released ydk-cpp for OSX platform (on Homebrew) and on Ubuntu platform (on Lauchpad) (#362, #322)
- Added support for generated CRUD model tests based on bundles (#354)
- Improved negative test cases and added support for netconf operations on leafs and leaf-lists (#324)
- Added documentation with examples for C++ OpenDaylightServiceProvider and RestconfServiceProvider (#365)
- Included model revision in documentation (#272)
- Improved documentation for string leafs (#346), decimal64 leafs (#300, #294)
- Added more detailed documentation for ydk-gen (#335, #364)
- Improved look and feel of documentation (#361, #356)
- Cleaned up unused bundle profiles and added READMEs (#208)
-
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
- Introduced support for C++ YDK bindings (issue#118, related commits and pull requests)
- Added support for CRUD, Validation and Codec services, along with Netconf and Codec providers, YDK types and errors
- Added support for Path API
- Used libyang and libnetconf libraries as part of the service and provider abstraction layer
- Integrated with CMake build system
- Wrote unit tests using
boost::unit_test
- Added support for logging using
boost::log
- Added documentation using
sphinx
- Integrated C++ testing into CI using travis-ci (#286)
-
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.