Skip to content

Releases: CiscoDevNet/ydk-gen

0.7.2

02 Oct 20:45
Compare
Choose a tag to compare
0.7.2 Pre-release
Pre-release

2018-07-02 version 0.7.2

Python, C++ & Go

Bundle improvements
  • 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 with ydk core version 0.7.2
  • Also updated ietf bundle to make it compatible with ydk core version 0.7.2
CRUD / Netconf / Codec / Path API improvements
  • 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)
Netconf provider improvements
  • Improved support for YANG features included in NETCONF hello message (#777)
Documentation improvements
ydk-gen improvements
  • Fixed issue with mixed case objects in Go language model API (#686)

0.7.1

11 Apr 06:06
4b57c83
Compare
Choose a tag to compare
0.7.1 Pre-release
Pre-release
Bundle improvements

NOTE: #604 and #748 introduced a backward incompatibility for python bundles. 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
  • Updated openconfig to introduce support for AFT, ISIS, LLDP, Network Instance and Segment Routing models.
  • Updated ietf bundles to introduce support for NETCONF access control model (ACM)
CRUD / Netconf / 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)
Netconf provider improvements
  • Added support for connecting to devices with no get-schema support (#554)
ydk-gen improvements
  • 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)
Documentation improvements
  • Improved enum documentation (#716)
  • Enhanced table of contents for documentation (#715)
Testing/error improvements
  • 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)
Installation improvements
  • Introduced automated docker builds to produce docker images with ydk-gen, ydk-py and ydk-go pre-installed (#724)
  • Removed epel-release as one of the requirements for libydk RPM (#627)
  • Added testing for libydk packages (#604)

0.7.0

03 Feb 04:32
4cae296
Compare
Choose a tag to compare
0.7.0 Pre-release
Pre-release

2018-01-31 version 0.7.0

Python, C++ & Go

Introduced Go language YDK support (alpha version)
  • Added support for all existing ydk core services, providers, types and errors in Go
  • Added support for all existing ydk bundles including ietf, openconfig, cisco-ios-xr and cisco-ios-xe in Go
  • #673, #663, #660, #658, #606, #605
CRUD service improvements
  • Fixed handling of reading operational data nodes (#664)
  • Improved formatting of payloads in logging output (#670)
Error handling improvements
  • 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)
Documentation improvements
  • Improved documentation for models which augment other models (#426)

0.6.3

19 Dec 18:23
5610815
Compare
Choose a tag to compare
0.6.3 Pre-release
Pre-release

2017-12-15 version 0.6.3

Python & C++

Model API updates
  • Updated cisco-ios-xe bundle to support Cisco IOS XE 16.6.2 and 16.7.1 releases
Netconf provider improvements
  • Added support for keybase authentication (#619)
CRUD service improvements
Documentation improvements
  • Improved documentation for unions (#642) and string patterns (#651)
  • Improved developer guide (#622, #625)
Testing improvements
  • Fixed CI failures and added CI on CentOS & Ubuntu Xenial platforms (#637, #644)

0.6.2

27 Oct 23:46
Compare
Choose a tag to compare
0.6.2 Pre-release
Pre-release

Python & C++

  • CRUD / Executor / Codec service improvements
    • Improved CRUDService support for openconfig-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 and iana-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)

0.6.1

26 Sep 19:18
Compare
Choose a tag to compare
0.6.1 Pre-release
Pre-release

2017-09-25 version 0.6.1

Python & C++

  • 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 with ydk core version 0.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)
Note on cisco-ios-xe bundle
  • As specified above, the cisco-ios-xe bundle version was updated to 16.6.1.post1 without any of the models being changed. This is because the already released 16.6.1 bundle is not compatible with the ydk core version 0.6.1. So, when upgrading your core version to be 0.6.1, please also update the XE bundle to version 16.6.1.post1.

Documentation

ydk-gen

  • Improved model API generation
    • reduced size of generated python model API (#544)
    • fixed issues with class names not following the CapWords style and models containing enum leafrefs (#538, #550, #475)

0.6.0

03 Aug 13:17
Compare
Choose a tag to compare
0.6.0 Pre-release
Pre-release

2017-08-01 version 0.6.0

Python

  • 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 and OpenDaylightServiceProvider
    • 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 changed CRUDService to use XML subtree filtering to create filters for the read operation
    • Added equality/inequality operators to compare YDK model API objects
Note on backward compatibility

The backward incompatible changes introduced with 0.6.0 python release include:

  • Installation: When installing YDK-Py, there is a new system requirement which needs to be installed. This is the libydk 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 the close() 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 the READ and DELETE objects
    • When using logging, the suggested level for users of YDK is INFO as DEBUG provides highly detailed logging suitable for developers working on YDK
    • The type names of enumerations and identities no longer have Enum or Identity in their names. For example, the identity InterfaceTypeIdentity in ydk.models.ietf.ietf_interfaces is now renamed to just InterfaceType

C++

  • Renamed some of the methods in path API to be verbs like DataNode::get_schema() instead of nouns like DataNode::schema() (#498)
  • 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 changed CRUDService to use XML subtree filtering to create filters for the read operation (#489)
  • Added support for non-standard RPCs as well in path API (#498)
  • Add ability to generate Linux and Mac OSX packages in cmake using cpack (#466)

ydk-gen

0.5.5

06 Jun 23:41
Compare
Choose a tag to compare
0.5.5 Pre-release
Pre-release

2017-06-06 version 0.5.5

Python

  • Fixed bundle setup.py to match ydk core dependency in bundle profile (#433)
  • Updated lxml dependency for ydk core package (#427)
  • Improved reading of data using ExecutorService (#332) and CRUDService (#457)
  • Fixed encoding key elements of yang lists (#363) and operational data (#452, #455)

C++

  • Added equality operator for model API objects (#432)
  • Improved handling of presence containers (#437)

ydk-gen

  • 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)

Documentation

  • 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)

0.5.4

23 Mar 04:32
Compare
Choose a tag to compare
0.5.4 Pre-release
Pre-release

2017-03-17 version 0.5.4

Python

  • 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)

C++

  • Changed dependent libraries (#382)
    • Use header-only spdlog library for logging
    • Use header-only catch library for testing
    • Completely remove boost dependency
  • 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 for CodecServiceProvider
  • 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)

ydk-gen

  • 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

Documentation

  • 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)

0.5.3

31 Jan 20:13
Compare
Choose a tag to compare
0.5.3 Pre-release
Pre-release

2017-01-30 version 0.5.3:

Python

  • Fixed issues with netconf service (#323, #305)
  • Disambiguated model API classes called 'None' (#318)
  • Removed 'Bits' from classes representing bits leafs (#318, #320)

C++

  • 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)

Documentation

  • 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)