aboutsummaryrefslogtreecommitdiff
path: root/RELEASE_NOTES.md
blob: 43ad2bfd8cd6aed1b745ff232e3ff43ab8880d47 (plain)
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
Release v1.1.2
==============

* Fixed a path parsing bug.
* The `Element.Text` function now handles comments embedded between
  character data spans.

Release v1.1.1
==============

* Updated go version in `go.mod` to 1.20

Release v1.1.0
==============

**New Features**

* New attribute helpers.
  * Added the `Element.SortAttrs` method, which lexicographically sorts an
    element's attributes by key.
* New `ReadSettings` properties.
  * Added `Entity` for the support of custom entity maps.
* New `WriteSettings` properties.
  * Added `UseCRLF` to allow the output of CR-LF newlines instead of the
    default LF newlines. This is useful on Windows systems.
* Additional support for text and CDATA sections.
  * The `Element.Text` method now returns the concatenation of all consecutive
    character data tokens immediately following an element's opening tag.
  * Added `Element.SetCData` to replace the character data immediately
    following an element's opening tag with a CDATA section.
  * Added `Element.CreateCData` to create and add a CDATA section child
    `CharData` token to an element.
  * Added `Element.CreateText` to create and add a child text `CharData` token
    to an element.
  * Added `NewCData` to create a parentless CDATA section `CharData` token.
  * Added `NewText` to create a parentless text `CharData`
    token.
  * Added `CharData.IsCData` to detect if the token contains a CDATA section.
  * Added `CharData.IsWhitespace` to detect if the token contains whitespace
    inserted by one of the document Indent functions.
  * Modified `Element.SetText` so that it replaces a run of consecutive
    character data tokens following the element's opening tag (instead of just
    the first one).
* New "tail text" support.
  * Added the `Element.Tail` method, which returns the text immediately
    following an element's closing tag.
  * Added the `Element.SetTail` method, which modifies the text immediately
    following an element's closing tag.
* New element child insertion and removal methods.
  * Added the `Element.InsertChildAt` method, which inserts a new child token
    before the specified child token index.
  * Added the `Element.RemoveChildAt` method, which removes the child token at
    the specified child token index.
* New element and attribute queries.
  * Added the `Element.Index` method, which returns the element's index within
    its parent element's child token list.
  * Added the `Element.NamespaceURI` method to return the namespace URI
    associated with an element.
  * Added the `Attr.NamespaceURI` method to return the namespace URI
    associated with an element.
  * Added the `Attr.Element` method to return the element that an attribute
    belongs to.
* New Path filter functions.
  * Added `[local-name()='val']` to keep elements whose unprefixed tag matches
    the desired value.
  * Added `[name()='val']` to keep elements whose full tag matches the desired
    value.
  * Added `[namespace-prefix()='val']` to keep elements whose namespace prefix
    matches the desired value.
  * Added `[namespace-uri()='val']` to keep elements whose namespace URI
    matches the desired value.

**Bug Fixes**

* A default XML `CharSetReader` is now used to prevent failed parsing of XML
  documents using certain encodings.
  ([Issue](https://github.com/beevik/etree/issues/53)).
* All characters are now properly escaped according to XML parsing rules.
  ([Issue](https://github.com/beevik/etree/issues/55)).
* The `Document.Indent` and `Document.IndentTabs` functions no longer insert
  empty string `CharData` tokens.

**Deprecated**

* `Element`
    * The `InsertChild` method is deprecated. Use `InsertChildAt` instead.
    * The `CreateCharData` method is deprecated. Use `CreateText` instead.
* `CharData`
    * The `NewCharData` method is deprecated. Use `NewText` instead.


Release v1.0.1
==============

**Changes**

* Added support for absolute etree Path queries. An absolute path begins with
  `/` or `//` and begins its search from the element's document root.
* Added [`GetPath`](https://godoc.org/github.com/beevik/etree#Element.GetPath)
  and [`GetRelativePath`](https://godoc.org/github.com/beevik/etree#Element.GetRelativePath)
  functions to the [`Element`](https://godoc.org/github.com/beevik/etree#Element)
  type.

**Breaking changes**

* A path starting with `//` is now interpreted as an absolute path.
  Previously, it was interpreted as a relative path starting from the element
  whose
  [`FindElement`](https://godoc.org/github.com/beevik/etree#Element.FindElement)
  method was called.  To remain compatible with this release, all paths
  prefixed with `//` should be prefixed with `.//` when called from any
  element other than the document's root.
* [**edit 2/1/2019**]: Minor releases should not contain breaking changes.
  Even though this breaking change was very minor, it was a mistake to include
  it in this minor release. In the future, all breaking changes will be
  limited to major releases (e.g., version 2.0.0).

Release v1.0.0
==============

Initial release.