YANG Tools

Overview

YANG Tools provides a set of libraries to deal with YANG models and data modeled using them.

Behavior/Feature Changes

The mapping of YANG augmentations in yang-data-api has changed. Where previously these have been supported by AugmetationNode and addressable via AugmentationIdentifier, any augmented nodes are now direct children of their data tree parent nodes.

YangTextSchemaSource is now a CharSource rather than a ByteSource. This eliminates ambiguity and assumptions made on the text encoding character set, pushing the responsibility down to users introducing schema sources into the system.

New Features

yang-maven-plugin now executes during incremental builds and does its best to not overwrite unchanged outputs.

Removed Features

AugmentationNode and AugmentationIdentifer constructs have been removed.

Deprecated Features

No deprecated features.

Resolved Issues

The following table lists the issues resolved in this release.

Issues resolved in versions 11.0.0 through 11.0.2 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1416

ChoiceNodeContextNode’s handling of case augmentations

Duplicate

11.0.0

Bug

YANGTOOLS-1514

Failed to process YANGs containing refine of a if-feature’d target

Done

10.0.8, 11.0.0, 9.0.9

Bug

YANGTOOLS-1505

yang-maven-plugin elicits deprecation warning with maven-3.9.1

Done

10.0.7, 11.0.0, 9.0.8

Bug

YANGTOOLS-1473

XML/JSON YangInstanceIdentifier codecs mis-handle key values

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1537

CME in AbstractNodeContainerModificationStrategy.checkChildPreconditions()

Done

10.0.10, 11.0.2, 9.0.9

Bug

YANGTOOLS-1522

XML parser omits leading/trailing whitespace in string values

Done

10.0.9, 11.0.1, 9.0.9

Bug

YANGTOOLS-1533

XmlParserStream reports “Unhandled mount-aware schema”

Done

10.0.10, 11.0.1, 9.0.9

Bug

YANGTOOLS-1485

Fail to process deviation of augmented node without feature support

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1480

Fail to process deviation/augmentation from multiple modules

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Bug

YANGTOOLS-1011

Empty XML anydata nodes cannot be normalized

Done

10.0.5, 11.0.0, 8.0.10, 9.0.7

Epic

YANGTOOLS-746

Improve Maven/CodeGenerator plugin interaction

Done

11.0.0

Improvement

YANGTOOLS-1413

Refactor DataSchemaContextNode

Done

11.0.0

Improvement

YANGTOOLS-1403

Integrate EffectiveAugmentationSchema into AugmentationSchemaNode/AugmentEffectiveStatement}

Won’t Do

11.0.0

Improvement

YANGTOOLS-1518

Change UsesNode.getRefines()

Done

11.0.0

Improvement

YANGTOOLS-1516

Ensure statement visibility before notifying listeners

Done

11.0.0

Improvement

YANGTOOLS-1515

Require full declarations during schema tree traversal

Done

11.0.0

Improvement

YANGTOOLS-1511

Improve DataContainerNode addressing

Done

11.0.0

Improvement

YANGTOOLS-1510

Capture AnnotationName

Done

11.0.0

Improvement

YANGTOOLS-1509

Revise ExtensibleObject API

Done

11.0.0

Improvement

YANGTOOLS-1508

Make YangTextSchemaSource work on CharSource

Done

11.0.0

Improvement

YANGTOOLS-1507

Add an immediate YangTextSchemaSource

Done

11.0.0

Improvement

YANGTOOLS-1497

Improve NamespaceBehaviour/NamespaceStorageNode interactions

Done

11.0.0

Improvement

YANGTOOLS-1463

YangTextSchemaContextResolver needs to we aware of supported features

Done

10.0.5, 11.0.0

Improvement

YANGTOOLS-1534

Seal XmlCodec interface to deal with XmlCodecFactory warnings

Done

10.0.10, 11.0.1, 9.0.9

Improvement

YANGTOOLS-1479

Update YangDataStatement to use YangDataName

Done

11.0.0

Improvement

YANGTOOLS-1204

Do not subclass NamespaceBehaviour in NamespaceBehaviourWithListeners

Done

11.0.0

Improvement

YANGTOOLS-568

Remove AugmentationIdentifier and AugmentationNode

Done

11.0.0

New Feature

YANGTOOLS-1491

Add file-backed YangToSourcesState storage

Done

11.0.0

New Feature

YANGTOOLS-1472

Add data.api.schema.NormalizedYangData

Done

11.0.0

New Feature

YANGTOOLS-1541

Expose YangInstanceIdentifier codec from codec factories

Done

10.0.10, 11.0.2, 9.0.9

New Feature

YANGTOOLS-1483

Enrich YangParserTestUtils with String literal YANG methods

Done

10.0.9, 11.0.0, 9.0.9

New Feature

YANGTOOLS-1172

Integrate rfc8528-data-api into yang-data-api

Done

11.0.0

New Feature

YANGTOOLS-745

Enable execution M2E in incremental builds

Done

11.0.0

Sub-task

YANGTOOLS-1501

NamespaceBehaviour should not be Identifiable

Done

11.0.0

Sub-task

YANGTOOLS-1500

Separate NamespaceBehaviour and NamespaceStorageNode

Done

11.0.0

Sub-task

YANGTOOLS-1499

Remove NamespaceBehaviour.Registry

Done

11.0.0

Sub-task

YANGTOOLS-1498

Disconnect StatementContextBundle from NamespaceBehaviour.Registry

Done

11.0.0

Sub-task

YANGTOOLS-1490

Capture yang-maven configuration

Done

11.0.0

Sub-task

YANGTOOLS-1529

Add DataSchemaContext.SimpleValue.type()

Done

11.0.1

Sub-task

YANGTOOLS-1525

Do not use SchemaContext.findModule(s)

Done

11.0.1

Sub-task

YANGTOOLS-1166

Capture yang-maven generated files

Done

11.0.0

Sub-task

YANGTOOLS-1165

Capture yang-maven input streams

Done

11.0.0

Task

YANGTOOLS-1423

Do not warn about unkeyed config=true lists by default

Done

11.0.0

Task

YANGTOOLS-1513

Modernize DataTreeCandidateNode methods

Done

11.0.0

Task

YANGTOOLS-1512

Deprecate MixinNode

Done

11.0.0

Task

YANGTOOLS-1506

Migrate unit test YANG inputs

Done

11.0.0

Task

YANGTOOLS-1504

Refactor FeatureSet to yang-model-api

Done

11.0.0

Task

YANGTOOLS-1502

Remove DerivedNamespaceBehaviour

Done

11.0.0

Task

YANGTOOLS-1492

Do not allow writeout of pre-Magnesium binary formats

Done

11.0.0

Task

YANGTOOLS-1489

Integrate rfc7952-data-{api,util} into yang-data-{api,util}

Done

11.0.0

Known Issues

The following table lists the known issues that exist in this release.

Issues affecting versions 11.0.0 through 11.0.2 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1543

XmlStringInstanceIdentifierCodec is using JSON encoding for writeValue()

Resolved

10.0.9, 11.0.2, 8.0.10, 9.0.8

10.0.10, 11.0.3, 9.0.9

Bug

YANGTOOLS-1532

Fail to parse YANG module with a node with if-feature augmented within grouping

Resolved

10.0.9, 11.0.0, 9.0.8

10.0.11, 11.0.4, 12.0.0, 9.0.9

Resolved Issues in SR1

The following table lists the issues resolved in Service Release 1.

Issues resolved in versions 11.0.3 through 11.0.4 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Bug

YANGTOOLS-1543

XmlStringInstanceIdentifierCodec is using JSON encoding for writeValue()

Done

10.0.10, 11.0.3, 9.0.9

Bug

YANGTOOLS-1532

Fail to parse YANG module with a node with if-feature augmented within grouping

Done

10.0.11, 11.0.4, 12.0.0, 9.0.9

Improvement

YANGTOOLS-1272

Expose SchemaInferenceStack.effectiveStatus()

Done

11.0.4, 12.0.0

Improvement

YANGTOOLS-1544

Enhance XML prefix assignment

Done

10.0.10, 11.0.3, 9.0.9

Improvement

YANGTOOLS-1542

Improve YangInstanceIdentifier serialization error reporting

Done

10.0.10, 11.0.3, 9.0.9

Improvement

YANGTOOLS-1539

Improve InMemoryDataTreeModification state management

Done

11.0.3

Improvement

YANGTOOLS-1538

Do not use Optional in yang-data-tree-ri operations

Done

11.0.4, 12.0.0

Improvement

YANGTOOLS-1482

Validate ietf-restconf:yang-data substatements are unique

Done

10.0.10, 11.0.4, 12.0.0

Known Issues in SR1

The following table lists the known issues that exist in Service Release 1.

Resolved Issues in SR2

The following table lists the issues resolved in Service Release 2.

Issues resolved in versions 11.0.5 through 11.0.5 (JIRA)

Type

Key

Summary

Resolution

Fix Version(s)

Improvement

YANGTOOLS-1550

Improve ImmutableOffsetMapTemplate error reporting

Done

10.0.13, 11.0.5, 12.0.0

Task

YANGTOOLS-1553

Deprecate SchemaContextListener

Done

11.0.5

Known Issues in SR2

The following table lists the known issues that exist in Service Release 2.

Issues affecting versions 11.0.5 through 11.0.5 (JIRA)

Type

Key

Summary

Status

Affected Version(s)

Fix Version(s)

Bug

YANGTOOLS-1563

Unstable NodeWithValue.toString()

Resolved

10.0.12, 11.0.5, 12.0.0, 13.0.0, 9.0.10

11.0.6, 13.0.1