forked from mbj4668/pyang
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
341 lines (296 loc) · 14.6 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
1.7.4 - ?????
added --max-status to prune old definitions
added yang2dsdl -x to try to translate 1.1 modules
check that a current/deprecated node does not reference a node
with "lesser" status.
1.7.3 - 2017-06-27
#318 - handle multiple rc:yang-data statements.
this bug caused validation of ietf-restconf, or any
module that imported ietf-restconf, to fail.
1.7.2 - 2017-06-14
added support for external plugins, using setuptools entry_points
added a warning for unsafe escape sequences in double quoted
strings.
added --lax-quote-checks to turn of the warning for unsafe
escape sequences.
added restconf plugin
added --tree-print-yang-data
print anydata/anyxml better in tree diagrams
grammar fix; "must" not allowed in "case"
pr:248 replace newlines in typestrings with spaces in UML,
thanks to William Lupton
pr:281 added --jstree-path, thanks to Ralph Schmieder
pr:289 added plugins for bbf, ieee, and mef, thanks to
Mahesh Jethanandani
pr:312 ignore actions when generating sample XML, thanks to
William Lupton
pr:313 corrected --tree-help output, thanks to lifeunleaded
#278 - handle unprefixed leafref paths in jsonxsl.py
#284 - removed broken error message for 'when' on key leafs
#285 - handle illegal integer strings
#297 - corrected translation of empty container with extension
statement in DSDL
#300 - handle unknown extensions in deviation
#301 - fix bug w/ refine of leafref leaf
#310 - when using the windows command prompt, "pyang" was not
found, thanks to Mallikarjunarao Kosuri
1.7.1 - 2016-11-02
added support for RFC 7952, metadata annotations
added --tree-max-length option
#126 - correctly validate implicitly added YIN files
#218 - do not copy if-feature to augment children
#225 - improve default implicit YANG_MODPATH discovery
#232 - bit default fix
#259 - handle multiple bases in identityref
#261 - detect mandatory and default after refine
#262 - fixed chorthand case expansion
#263 - don't validate nodes that are not-supported
#265 - an identity is not derived from itself
#267 - generate error if config property is added in deviation
#271 - do not warn about submodule revision mismatch
#272 - incorrect handling of unprefixed paths in leafrefs in
groupings
#276 - detect enumeration/bits/identityref w/o enum/bit/base
#277 - handle shorthand choice correctly
1.7 - 2016-06-16
added support for YANG 1.1
added command line flag --ignore-error, thanks to Nick Weeds
added option --tree-print-groupings to the 'tree' plugin
removed the 'hypertree' and 'xmi' plugins
#180,#191,#221 - YIN and YANG modules now support utf-8 encoded
characters
#190 - the options --lint and --ietf now checks for mandatory
top-level nodes
#200 - unique statements w/o prefixes now work in yang2dsdl
#201 - the options --lint and --ietf now verifies that a
module's revision is newer or the same as the most recent
submodule's revision
#206 - detect bad augment from submodule
#208 - yang2dsdl now correctly handle must statements in nested
groupings
#234 - handling of XPath operator bug fix
1.6 - 2015-10-06
removed the deprecated, incomplete and erroneous XSD plugin - use
the DSDL plugin instead.
added new plugin: 'lint' to check if a module follow
the generic guidelines defined in RFC 6087. the 'ietf' plugin
still exists, but is rewritten to use the new 'lint' plugin.
added new plugin: 'name' to print a module's name, thanks to
Giles Heron.
by default, pyang now scans the YANG module path recursively,
i.e., it searches for YANG modules also in subdirectories to the
directories in the load path. this behavior can be disabled with
--no-path-recurse.
the directory 'modules' now has two subdirectories 'iana' and
'ietf', where all current IANA and IETF modules are located.
a bash completions file has been added etc/bash_completion.d
#76 - some grammar tests for various deviate statements
#114 - deviation module in capability plugin
#115 - deviation of shorthand case
#121 - added --depend-recurse
#122 - handle CRLF in max-line-len checks; also do not count
single LF
#123 - check that modules are encoded in utf-8
#130 - validate position value
#133 - python 3 syntax fix
#141 - remove call to cmp()
#156 - i_config unset in some shorthand cases
#158 - handle defaults in binary
#160 - pprint fails when printing a statement without an argument
thanks to Nick Weeds.
#164 - updated comment in plugin.py to reflect reality
fix bug with adding a unique statement via a deviation, thanks
to Denys Knertser.
do not reorder data definition statements in --yang-canonical
names in nested choices are now checked for uniqueness
remove warning about multiple top-level nodes in lint plugin.
thanks to Pravin Gohite.
implement try/except block for plugin directory listing,
thanks to Ebben Aries
1.5 - 2014-11-18
added new plugin: 'capability' to print the capability string for
a module
added new plugin: 'check-update' which can be used to compare
two revisions of a module and check if the update rules defined
in RFC 6020 are followed
added new plugin: 'omni' to generate OmniGraffle output
added new plugin: 'sample-xml-skeleton' to generate a sample xml
instance skeleton document adhering to a YANG model
added command line flag --features to prune the data model
by removing unsupported features
added command line flag --deviation-module to modify the data model
by applying devaitions from a separate module
added command line flag --verbose (-V)
added command line flag --ignore-errors
added command line flag --keep-comments (can be used by plugins)
added doc/tutorial
added support for YANG meta data as defined in
draft-lhotka-netmod-yang-metadata
jstree: added command line flag --jstree-no-path
tree: when --depth is used, indicate pruned subtrees with '...'
tree: print leafref targets
yang: print comments if --keep-comments are given
#97 - check for circular leafref paths
#99 - missing version attribute in 'xmi' output
#100 - check for prefixes in qname literals in XPath expressions
#101 - enum fixes in 'uml' output
#103 - type empty now handled in 'dsdl' output
1.4.1 - 2013-11-11
#96 - 1.4 doesn't work with Pyhton 3
1.4 - 2013-10-24
added option --lax-xpath-checks
deprecated the xsd output plugin
tree: now prints augmented nodes
tree: now prints rpcs nad notifications defined in submodules
tree: new syntax for presence containers
tree: mark lists with '*'
allow 'must' under 'anyxml'
fixed unique check for keys
reject leaf-list of type empty
#83 - reject identifiers that start with "[xX][mM][lL]"
#89 - dsdl: handle % in strings
#90 - do not crash on null key statements
#92 - dsdl: handle conditional uses
#93 - dsdl: fixed problem with anyxml
#94 - dsdl: mandatory choice inside a grouping
1.3 - 2013-01-31
added new plugins: hypertree and jstree
added new plugins: jsonxsl and jtox
added command line flags -W and -E to treat warnings as errors
xsd: added command line flag --xsd-global-complex-types
tree: added command line flasgs --tree-depth and
--tree-path to prune the printed tree
#58 - detect when a leaf restricts a type so that the type's
default value becomes illegal
#59 - given an error if a list's unique statement references
leafs which have different config flags
#60 - xpath tokenizer bug fix
#62 - dsdl: handle empty default values
#63 - dsdl: handle empty containers and lists.
#66 - dsdl: interleave module grammars
#68 - dsdl: schematron rule for instance identifier.
#73 - dsdl: fixed bug when a submodule used an extension from
an imported module
#74 - dsdl: correctly handle empty choice and case nodes
#79 - dsdl: now treats identity derivation as irreflexive and
transitive
allow choice in case
fixed bug when checking the canonical order for length and pattern
(any orded was accepted)
dsdl: proper handling of instance-identifiers
pyang now works with python 3, as well as old 2.x
yang output plugin quote fix for strings ending in newline
smiv2: allow smiv2:oid under identity
smiv2: fixes in oid regexp
smiv2: RFC 6643 compatible
... and numerous other minor fixes
1.2 - 2011-07-27
added edit-config target to yang2dsls
if a submodule A includes submodule B, which includes
submodule C, definitions in C are visible in A, even if A does
not include C. this bug has been fixed.
make sure additional must statements in refine are added; not
replacing existing ones.
fixed bug when checking for '..' in relative leafrefs
variuos augment bug fixes in yang2dsdl
some xsd output fixes
removed the --xsd-no-include option. the xsd ouput never generates
inlcude anymore
1.1 - 2011-02-16
DSDL output compatible with RFC 6110
added uml output format
inherit the config property correctly with augment
added check to verify that a leafref type had a path substatement
removed bashisms from yang2dsdl script
fixed setup.py script
fixed optional marker bug in tree output
generate an error if a submodule's name is not the same
correct (typically this means that it is not the same as
the filename)
made yang2dsdl POSIX.2 compatible
reorganized command-line parameters in yand2dsdl
fixed bug wit input modules not on module path
added examples for DSDL Mapping Tutorial
1.0 - 2010-10-07
compatible with RFC 6020
added yang2dsdl(1) program
added tree output format
added depend output format
too many bugfixes to list them all
0.9.3 - 2008-12-07
compatible with draft-ietf-netmod-yang-02
rewrote validation code. got rid of all the specialized classes
handle circular defintions
removed command-line option --level. print warnings and errors
instead
added command-line option -Werror to treat warning as errors
added command-line option -Wnone to suppress warning
handle auto-assignment of enum values and bit positions
allow plugins to register grammar for extensions
added a plugin for the 'yang-smi' SMIv2 module
rewrote yin_parser - now handles extensions properly
added bin/yang2html which can be used to syntax coloring of yang
modules
new algorithm for finding standard YANG modules (see pyang(1))
0.9.2 - 2008-10-13
handle prefixed references to local groupings
make use of path argument given to pyang
handle multiple patterns
allow refinements in any order
fixed bug where a grouping defined in a submodule was not
detected (if the submodule was included more than once)
fixed length and range validation bug across mutiple YANG modules.
allow 'must' and 'config' in 'choice'
allow 'must' in 'case'
added some initial text describing code layout to README
XSD: report some XSD error conditions that used to cause XSD
translation to silently fail to stderr
XSD: added --xsd-break-pattern command line option
(thanks to Juergen Schoenwaelder)
XSD: added --xsd-no-lecture command line option
XSD: fixed XSD output bug in some rare cases involving typedef chains
DSDL: corrected handling of multiple length alternatives
DSDL: added TODO
DSDL: added support for multiple patterns in string restrictions
DSDL: added xmlns declaration for the data model NS
DSDL: $this in must-stmt is now replaced with current()
rather than '.'
DSDL: local top-level named patterns now don't start with '__'
DSDL: added XSLT stylesheet that separates DSRL
known issue: augmenting the input parameters of an rpc that is
declared without any input parameters does not work
known issue: an error is not reported if the same node is added
twice via an augment
known issue: chained derivation of types doesn't work properly
in the DSDL translator
0.9.1 - 2008-07-08
rewrote yang parser
added yin parser
added dsdl output
added yang output
more internal restructuring
0.9.0b - 2008-05-19
first release of restructured code
02.2 - 2008-02-21
fixed some xsd output bugs
fixed bug in refinmenet, where a valid refinmened would
generate a duplicate node definition error
fixed range/length check bug
verify that a list in a grouping which is used from config
has keys
internal preparation for major restructure of the code
02.1 - 2008-02-06
draft-bjorklund-netconf-yang-02 compliant.
01.3 - 2008-02-01
draft-bjorklund-netconf-yang-01 compliant.
00.2 - 2008-01-15
fixed grouping translation in XSD output
generate YIN appinfo by default in XSD output
added validation of identifiers
handle min/max in length and range expressions
handle must in leaf refinement
handle yin-element in extensions
handle bits types in XSD generation
xs:key generation fix in XSD output by John Dickinson
00.1 - 2007-11-14
Initial version, draft-bjorklund-netconf-yang-00 compliant.