Changelog

v3.10.0 - 2026-06-11

  • Add the yang::NetconfDiscoveryResource entity and its discovery handler, scanning a netconf device for the entries of a yang list (or a single container) and reporting them as discovered resources (cf. docs/discovery.md)

  • Fix phantom change detection on identityref leaves when the device returns the value without a namespace prefix (relying on the default namespace), while the desired state uses the module-name prefix

v3.9.0 - 2026-06-03

  • Add the omit_root_namespaces flag (disabled by default) to the yang::BaseResource and yang::BaseDevice entities (netconf, gnmi and restconf resources and devices). When enabled, the module namespaces are not declared on the root config element of the resource desired state but defined dynamically in the config tree.

  • Only include the compiled models of the yang modules used by the resource itself in compiled_models, instead of all the modules used by any resource sharing the same root

v3.8.2 - 2026-05-26

  • Fix usage of yang::GnmiResource with credentials in clear or references

  • Constrain paramiko version to allow rsa-sha1

v3.8.1 - 2026-05-06

  • Allow verify resources to set the managed attribute

  • Remove empty containers from end-user diff

v3.8.0 - 2026-04-24

  • Fix normalize_xml crash and phantom change detection in apply_netconf_xml when a list node’s default namespace is inherited from an ancestor with a different namespace

  • Add support for wrapped_value on Container to allow non-string leaf values (integers, booleans, etc.) across all serialization backends

  • Apply changes to running datastore when candidate capability is not supported

  • Skip datastore lock when lock is not supported by the device

  • Add support for identityref leaves: serialize with explicit namespace mapping and normalize prefix aliases when diffing

v3.7.5 - 2026-04-09

  • Don’t require ncdiff compiled models for non-ncdiff comparison

v3.7.4 - 2026-04-01

  • Add depth, content query params to RestconfVerifyResource

  • Cache device responses in RestconfVerifyHandler

v3.7.3 - 2026-01-08

  • Allow nested deletions in Restconf

v3.7.2 - 2025-12-16

  • Log restconf requests and responses in web console

v3.7.1 - 2025-12-04

  • Fix RestconfVerify error on empty response

  • Fix get_key_attributes when there is no default XML namespace

  • RestconfResource: add content to URL query

  • RestconfResource: fix key attributes order in patch target

v3.7.0 - 2025-11-28

  • Add forward compatible report_only flag to yang-based resources

  • Fix yang::CredentialsV2 usage

  • Add RestconfVerify resource

  • Fix schema access in get_key_attributes

v3.6.0 - 2025-11-12

  • Change default diff mode to NON_NCDIFF

  • Add RESTCONF support

v3.5.0 - 2025-10-01

  • Improve logging when there is an unknown in the xml

  • Ensure elements at the root of the filter are ordered too

  • Add yang::CredentialsV2 entity, compatible with references

v3.4.0 - 2025-02-12

  • Improve Gnmi parsing

  • Add index on yang::Credentials entity, for better developer experience.

  • Add ordered_by_user attribute on yang::ListContainer entity for improved diffing.

  • Sort xml nodes in changes reported by experimental diff

  • Add shadow-fail mode to experimental diff

v3.3.1 - 2024-11-20

  • Avoid leaking open sockets when unable to close NETCONF session

  • Allow to use experimental diff in gnmi handler

v3.3.0 - 2024-11-18

  • Add is_float plugin for generated modules

  • Cache YangResourceHelper instance in yang resource

  • Fix pydantic deprecation warnings

  • Drop ISO6 support

v3.2.2 - 2024-10-08

  • ncverify: fix quantifier typedef to allow “count” value

  • ncverify: report number of matches in resource changes

v3.2.1 - 2024-10-07

  • Update module documentation

v3.2.0 - 2024-10-07

  • ncverify: add option to count matches

  • ncverify: fixed data validation in NetconfVerifyEntry

v3.1.0 - 2024-09-18

  • Use md-compare for dry-run diff on Nokia devices

v3.0.1 - 2024-08-19

  • Fix filter serialization for comanaged containers with both subs and children

v3.0.0 - 2024-07-05

  • migrate to module v2

  • Add YangBaseResource schema

  • Allow nesting resources

  • Dropping (unused) support for downloading yang models from the managed devices.

  • Add experimental diff function

v2.20.0 - 2024-05-23

  • Add ncdiff model in-memory caching

  • Fix netconf verification resource: report missing configuration elements which have checks on them.

v2.19.0 - 2024-04-29

  • Add BaseDevice, NetconfDevice, GnmiDevice and ResourceBuilder entities

v2.18.0 - 2024-03-27

  • Added netconf verification resource

v2.17.2 - 2024-03-01

  • Fix download of compiled yang models

v2.17.1 - 2024-01-29

  • Fix issue where resources fail with the Exception ‘lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1’, due to code reloading

v2.17.0 - 2024-01-23

  • Fix issue where resources fail with the Exception ‘lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1’, because different agents are concurrently manipulating the model cache

  • Make all resources extends std::ManagedResource

v2.16.1 - 2024-01-10

  • Import modules using qualified names

  • Replace deprecated lxml.etree.tounicode function

v2.16.0 - 2023-11-27

  • Fixed type of port and retries attributes (number -> int)

  • add support for netbox-secret integration

v2.15.0 - 2023-07-10

  • Import generic plugins and types from yang-module-generator

v2.14.3 - 2023-06-08

  • Fix pre-compiled ncdiff model usage for modules that don’t contain all of the xml files (#121).

  • Work around validation problem in pyang: https://github.com/mbj4668/pyang/issues/834

v2.14.2 - 2023-06-01

  • Decrease logging level for python dependencies of the module (set to WARNING)

v2.14.1 - 2023-05-17

  • Decrease logging level for python dependencies of the module (set to INFO)

v2.14.0 - 2023-03-17

  • Make ncdiff pyimport plugin output deterministic

v2.13.0 - 2023-03-15

  • Improved ordering of generated xml to have more stable incremental deploy

  • Introduced shared storage for precompiled model files downloaded from orchestrator

  • Add an option to ignore errors in config diff calculation

  • Make ncdiff compiled files generation consistent

V2.12.0 - 2022/12/19

  • Add support for precompiled yang models in netconf modules

  • New option to persist config on Cisco IOS XE

  • Make netconf exceptions visible in resource logs

  • Better handling of pygnmi code (re-)loading issues

  • Patch support for leaf reference to identity in other yang module

V2.11.3 - 2022/10/24

  • Fix monkeypatch of xml parser in cxml plugin

V2.11.2 - 2022/10/22

  • Fix diff xml generation from gnmi objects.

  • Fix error reporting in case of missing tag in RPCError (#91 and #96)

  • Use forked ncdiff

  • Don’t load the std module in code path loaded by the agent (#101)

  • Use warnings from python

V2.11.1 - 2022/08/25

  • Pin version to working ncdiff

V2.11.0 - 2022/08/01

  • Added support for skip_verify option on yang::GnmiResource entity.

  • Added deprecation warning log for usage of yang::Resource entity.

  • Fixed usage of empty gnmi resources.

V2.10.0 - 2022/06/29

  • Changed the retry mechanism of the router to an exponential back-off.

  • Catch ssh errors in retry mechanism for the netconf handler.

V2.9.0 - 2022/05/19

  • Added gnmi device basic support. (#83)

  • Verify that no more than one root resource is defined for each Root

V2.8.1 - 2022/02/09

  • Patch ssh session leak when we fail to load models.

V2.8.0 - 2021/12/24

  • Added the ability to set a value on a Container to represent a leaf

V2.7.1 - 2021/11/2

  • Added license disclaimer. This disclaimer doesn’t modify the existing situation, but is there to avoid confusion.

V2.7.0 - 2021/10/15

  • Add support for ssh config for the yang ssh client

V2.6.1 - 2021/09/15

  • Add support for namespaces in subs by using the ‘namespace:tag’ notation

V2.5.0 - 2021/05/05

  • Improve filter generation for configs with multiple roots (e.g. for Cisco)

V2.4.0 - 2021/04/08

This version provides significant performance improvements on devices with a large config.

  • Improved resolution for generated netconf-filters

  • Improved multi-vendor support

  • Fixed bug in null handling

  • Reduced duplicate information in log

V2.3.0 - 2021/03/18

  • Improved tests

  • Official support for Nokia R20

  • Improve multivendor support

V2.2.3 - 2021/02/22

  • Improved handling of empty resources

V2.2.2 - 2021/02/16

  • Improved labeling algorithm to fix issues in generating filters

V2.2.1 - 2021/02/10

  • Require latest version of ncdiff

V2.2.0 - 2021/02/04

  • Add retry to the handler

  • Improve yang generation

  • Update documentation

V2.1.1 - 2020/11/13

  • Fixed leaf-list serialization

  • Fixed session closing

V2.1.0 - 2020/09/14

  • Add option to persist configuration after commit

V2.0.0 - 2020/07/17

  • Breaking change: moved all credentials into environment variables

  • Added subfilter to netconf requests to handle large configuration

V1.0.0 - 2020/06/06

  • Add caching to improve performance

  • Improve state difference calculation

  • Improve resource packing algorithm

V0.2.0 - 2020/05/11

  • Beta version of stable version

  • Support use of replace instead of merge

  • Update requires/provides management

  • Many performance improvements

V0.1.0 - 2020/03/13

  • Pre-production version of the generic yang handler based on technology demonstrator

  • Performance improvements

  • Bug fixes

  • Use of ncdiff for state difference calculation

V0.0.0 - 2019/11/30

  • First version of a generic yang handler