github-markup 6.0.0 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,47 +6,44 @@ result format (<a href="https://github.com/robotframework/robotframework/issues/
6
6
  <p>Robot Framework 7.0 was released on Thursday January 11, 2024. Questions and comments
7
7
  related to the release can be sent to the <code>#devel</code> channel on <a href="http://slack.robotframework.org">Robot Framework Slack</a>
8
8
  and possible bugs submitted to the <a href="https://github.com/robotframework/robotframework/issues">issue tracker</a>.</p>
9
- <div>
9
+ <div id="contents">
10
10
  <ul>
11
- <li><a href="#installation">Installation</a></li>
12
- <li>
13
- <a href="#most-important-enhancements">Most important enhancements</a><ul>
14
- <li><a href="#listener-enhancements">Listener enhancements</a></li>
15
- <li><a href="#native-var-syntax">Native <code>VAR</code> syntax</a></li>
16
- <li><a href="#mixed-argument-support-with-library-keywords">Mixed argument support with library keywords</a></li>
17
- <li><a href="#json-result-format">JSON result format</a></li>
18
- <li><a href="#argument-conversion-enhancements">Argument conversion enhancements</a></li>
19
- <li><a href="#tags-set-globally-can-be-removed-using-tag-syntax">Tags set globally can be removed using <code>-tag</code> syntax</a></li>
20
- <li><a href="#dynamic-and-hybrid-library-apis-support-asynchronous-execution">Dynamic and hybrid library APIs support asynchronous execution</a></li>
21
- <li><a href="#timestamps-in-result-model-and-output-xml-use-standard-format">Timestamps in result model and output.xml use standard format</a></li>
22
- <li><a href="#dark-mode-support-to-report-and-log">Dark mode support to report and log</a></li>
11
+ <li><a href="#installation" id="id113">Installation</a></li>
12
+ <li><a href="#most-important-enhancements" id="id114">Most important enhancements</a><ul>
13
+ <li><a href="#listener-enhancements" id="id115">Listener enhancements</a></li>
14
+ <li><a href="#native-var-syntax" id="id116">Native <code>VAR</code> syntax</a></li>
15
+ <li><a href="#mixed-argument-support-with-library-keywords" id="id117">Mixed argument support with library keywords</a></li>
16
+ <li><a href="#json-result-format" id="id118">JSON result format</a></li>
17
+ <li><a href="#argument-conversion-enhancements" id="id119">Argument conversion enhancements</a></li>
18
+ <li><a href="#tags-set-globally-can-be-removed-using-tag-syntax" id="id120">Tags set globally can be removed using <code>-tag</code> syntax</a></li>
19
+ <li><a href="#dynamic-and-hybrid-library-apis-support-asynchronous-execution" id="id121">Dynamic and hybrid library APIs support asynchronous execution</a></li>
20
+ <li><a href="#timestamps-in-result-model-and-output-xml-use-standard-format" id="id122">Timestamps in result model and output.xml use standard format</a></li>
21
+ <li><a href="#dark-mode-support-to-report-and-log" id="id123">Dark mode support to report and log</a></li>
23
22
  </ul>
24
23
  </li>
25
- <li>
26
- <a href="#backwards-incompatible-changes">Backwards incompatible changes</a><ul>
27
- <li><a href="#python-3-6-and-3-7-are-no-longer-supported">Python 3.6 and 3.7 are no longer supported</a></li>
28
- <li><a href="#changes-to-output-xml">Changes to output.xml</a></li>
29
- <li><a href="#changes-to-result-model">Changes to result model</a></li>
30
- <li><a href="#changes-to-parsing-model">Changes to parsing model</a></li>
31
- <li><a href="#changes-to-libdoc-spec-files">Changes to Libdoc spec files</a></li>
32
- <li><a href="#changes-to-selecting-tests-with-suite-test-and-include">Changes to selecting tests with <code>--suite</code>, <code>--test</code> and <code>--include</code></a></li>
33
- <li><a href="#other-backwards-incompatible-changes">Other backwards incompatible changes</a></li>
24
+ <li><a href="#backwards-incompatible-changes" id="id124">Backwards incompatible changes</a><ul>
25
+ <li><a href="#python-3-6-and-3-7-are-no-longer-supported" id="id125">Python 3.6 and 3.7 are no longer supported</a></li>
26
+ <li><a href="#changes-to-output-xml" id="id126">Changes to output.xml</a></li>
27
+ <li><a href="#changes-to-result-model" id="id127">Changes to result model</a></li>
28
+ <li><a href="#changes-to-parsing-model" id="id128">Changes to parsing model</a></li>
29
+ <li><a href="#changes-to-libdoc-spec-files" id="id129">Changes to Libdoc spec files</a></li>
30
+ <li><a href="#changes-to-selecting-tests-with-suite-test-and-include" id="id130">Changes to selecting tests with <code>--suite</code>, <code>--test</code> and <code>--include</code></a></li>
31
+ <li><a href="#other-backwards-incompatible-changes" id="id131">Other backwards incompatible changes</a></li>
34
32
  </ul>
35
33
  </li>
36
- <li>
37
- <a href="#deprecations">Deprecations</a><ul>
38
- <li><a href="#return-setting"><code>[Return]</code> setting</a></li>
39
- <li><a href="#singular-section-headers">Singular section headers</a></li>
40
- <li><a href="#deprecated-attributes-in-parsing-running-and-result-models">Deprecated attributes in parsing, running and result models</a></li>
41
- <li><a href="#other-deprecated-features">Other deprecated features</a></li>
34
+ <li><a href="#deprecations" id="id132">Deprecations</a><ul>
35
+ <li><a href="#return-setting" id="id133"><code>[Return]</code> setting</a></li>
36
+ <li><a href="#singular-section-headers" id="id134">Singular section headers</a></li>
37
+ <li><a href="#deprecated-attributes-in-parsing-running-and-result-models" id="id135">Deprecated attributes in parsing, running and result models</a></li>
38
+ <li><a href="#other-deprecated-features" id="id136">Other deprecated features</a></li>
42
39
  </ul>
43
40
  </li>
44
- <li><a href="#acknowledgements">Acknowledgements</a></li>
45
- <li><a href="#full-list-of-fixes-and-enhancements">Full list of fixes and enhancements</a></li>
41
+ <li><a href="#acknowledgements" id="id137">Acknowledgements</a></li>
42
+ <li><a href="#full-list-of-fixes-and-enhancements" id="id138">Full list of fixes and enhancements</a></li>
46
43
  </ul>
47
44
  </div>
48
45
  <a name="installation"></a>
49
- <h2><a href="#toc-entry-1">Installation</a></h2>
46
+ <h2><a href="#id113">Installation</a></h2>
50
47
  <p>If you have <a href="http://pip-installer.org">pip</a> installed, just run</p>
51
48
  <pre>
52
49
  pip install --upgrade robotframework
@@ -59,7 +56,7 @@ pip install robotframework==7.0
59
56
  from <a href="https://pypi.python.org/pypi/robotframework">PyPI</a> and install it manually. For more details and other installation
60
57
  approaches, see the <a href="../../INSTALL.rst">installation instructions</a>.</p>
61
58
  <a name="most-important-enhancements"></a>
62
- <h2><a href="#toc-entry-2">Most important enhancements</a></h2>
59
+ <h2><a href="#id114">Most important enhancements</a></h2>
63
60
  <blockquote>
64
61
  <p>If you are interested to learn more about the new features in Robot Framework 7.0,
65
62
  join the <a href="https://robocon.io">RoboCon conference</a> in February, 2024. <a href="https://github.com/pekkaklarck">Pekka Klärck</a>, Robot Framework
@@ -71,7 +68,7 @@ tools and libraries in the ecosystem. All profits from the conference will be
71
68
  used for future Robot Framework development.</p>
72
69
  </blockquote>
73
70
  <a name="listener-enhancements"></a>
74
- <h3><a href="#toc-entry-3">Listener enhancements</a></h3>
71
+ <h3><a href="#id115">Listener enhancements</a></h3>
75
72
  <p>Robot Framework's <a href="http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface">listener interface</a> is a very powerful mechanism to get
76
73
  notifications about various events during execution and it also allows modifying
77
74
  data and results on the fly. It is not typically directly used by normal Robot
@@ -93,12 +90,12 @@ from robot import result, running
93
90
 
94
91
 
95
92
  def start_keyword(data: running.Keyword, result: result.Keyword):
96
- print(f"Keyword '{result.full_name}' used on line {data.lineno} started.")
93
+ print(f&quot;Keyword '{result.full_name}' used on line {data.lineno} started.&quot;)
97
94
 
98
95
 
99
96
  def end_while(data: running.While, result: result.While):
100
- print(f"WHILE loop on line {data.lineno} ended with status {result.status} "
101
- f"after {len(result.body)} iterations.")
97
+ print(f&quot;WHILE loop on line {data.lineno} ended with status {result.status} &quot;
98
+ f&quot;after {len(result.body)} iterations.&quot;)
102
99
  </pre>
103
100
  <p>With keyword calls it is possible to also get more information about the actually
104
101
  executed keyword. For example, the following listener prints some information
@@ -112,10 +109,10 @@ def start_library_keyword(data: KeywordData,
112
109
  implementation: LibraryKeyword,
113
110
  result: KeywordResult):
114
111
  library = implementation.owner
115
- print(f"Keyword '{implementation.name}' is implemented in library "
116
- f"'{library.name}' at '{implementation.source}' on line "
117
- f"{implementation.lineno}. The library has {library.scope.name} "
118
- f"scope and the current instance is {library.instance}.")
112
+ print(f&quot;Keyword '{implementation.name}' is implemented in library &quot;
113
+ f&quot;'{library.name}' at '{implementation.source}' on line &quot;
114
+ f&quot;{implementation.lineno}. The library has {library.scope.name} &quot;
115
+ f&quot;scope and the current instance is {library.instance}.&quot;)
119
116
  </pre>
120
117
  <p>As the above example already illustrated, it is even possible to get an access to
121
118
  the actual library instance. This means that listeners can inspect the library
@@ -144,26 +141,25 @@ the listener version as earlier. The are no plans to deprecate the listener
144
141
  version 2, but we nevertheless highly recommend using the version 3 whenever
145
142
  possible.</p>
146
143
  <a name="libraries-can-register-themselves-as-listeners-by-using-string-self"></a>
147
- <h4>Libraries can register themselves as listeners by using string <code>SELF</code>
148
- </h4>
144
+ <h4>Libraries can register themselves as listeners by using string <code>SELF</code></h4>
149
145
  <p>Listeners are typically enabled from the command line, but libraries
150
146
  can register listeners as well. Often libraries themselves want to act
151
- as listeners, and that has earlier required using <code>self.ROBOT_LIBRARY_LISTENER = self</code>
147
+ as listeners, and that has earlier required using <code>self.ROBOT_LIBRARY_LISTENER&nbsp;=&nbsp;self</code>
152
148
  in the <code>__init__</code> method. Robot Framework 7.0 makes it possible to use string
153
149
  <code>SELF</code> (case-insensitive) for this purpose as well (<a href="https://github.com/robotframework/robotframework/issues/4910">#4910</a>), which means
154
150
  that a listener can be specified as a class attribute and not only in <code>__init__</code>.
155
- This is especially convenient when using the <code>@library</code> decorator:</p>
151
+ This is especially convenient when using the <code>&#64;library</code> decorator:</p>
156
152
  <pre lang="python">
157
153
  from robot.api.deco import keyword, library
158
154
 
159
155
 
160
- @library(listener='SELF')
156
+ &#64;library(listener='SELF')
161
157
  class Example:
162
158
 
163
159
  def start_suite(self, data, result):
164
160
  ...
165
161
 
166
- @keyword
162
+ &#64;keyword
167
163
  def example(self, arg):
168
164
  ...
169
165
  </pre>
@@ -179,7 +175,7 @@ result files are ready so that they get the file path as an argument. Earlier
179
175
  paths were strings, but nowadays listener version 3 methods get them as
180
176
  more convenient <a href="https://docs.python.org/3/library/pathlib.html">pathlib.Path</a> objects.</p>
181
177
  <a name="native-var-syntax"></a>
182
- <h3><a href="#toc-entry-4">Native <code>VAR</code> syntax</a></h3>
178
+ <h3><a href="#id116">Native <code>VAR</code> syntax</a></h3>
183
179
  <p>The new <code>VAR</code> syntax (<a href="https://github.com/robotframework/robotframework/issues/3761">#3761</a>) makes it possible to create local variables
184
180
  as well as global, suite and test/task scoped variables dynamically during
185
181
  execution. The motivation is to have a more convenient syntax than using
@@ -208,7 +204,7 @@ Example continued
208
204
  <p>When creating <code>${scalar}</code> variables having long values, it is possible to split
209
205
  the value to multiple lines. Lines are joined together with a space by default,
210
206
  but that can be changed with the <code>separator</code> configuration option. Similarly as
211
- in the Variables section, it is possible to create also <code>@{list}</code> and <code>&amp;{dict}</code>
207
+ in the Variables section, it is possible to create also <code>&#64;{list}</code> and <code>&amp;{dict}</code>
212
208
  variables. Unlike in the Variables section, variables can be created conditionally
213
209
  using IF/ELSE structures:</p>
214
210
  <pre lang="robotframework">
@@ -228,7 +224,7 @@ Multiline
228
224
 
229
225
  List
230
226
  # Creates a list with three items.
231
- VAR @{list} a b c
227
+ VAR &#64;{list} a b c
232
228
 
233
229
  Dictionary
234
230
  # Creates a dictionary with two items.
@@ -245,7 +241,7 @@ Inline IF
245
241
  IF 1 &gt; 0 VAR ${x} true value ELSE VAR ${x} false value
246
242
  </pre>
247
243
  <a name="mixed-argument-support-with-library-keywords"></a>
248
- <h3><a href="#toc-entry-5">Mixed argument support with library keywords</a></h3>
244
+ <h3><a href="#id117">Mixed argument support with library keywords</a></h3>
249
245
  <p>User keywords got support to use both embedded and normal arguments in Robot
250
246
  Framework 6.1 (<a href="https://github.com/robotframework/robotframework/issues/4234">#4234</a>) and now that support has been added also to library keywords
251
247
  (<a href="https://github.com/robotframework/robotframework/issues/4710">#4710</a>). The syntax works so, that if a function or method implementing a keyword
@@ -253,7 +249,7 @@ accepts more arguments than there are embedded arguments, the remaining argument
253
249
  can be passed in as normal arguments. This is illustrated by the following example
254
250
  keyword:</p>
255
251
  <pre lang="python">
256
- @keyword('Number of ${animals} should be')
252
+ &#64;keyword('Number of ${animals} should be')
257
253
  def example(animals, count):
258
254
  ...
259
255
  </pre>
@@ -266,7 +262,7 @@ Example
266
262
  Number of dogs should be 3
267
263
  </pre>
268
264
  <a name="json-result-format"></a>
269
- <h3><a href="#toc-entry-6">JSON result format</a></h3>
265
+ <h3><a href="#id118">JSON result format</a></h3>
270
266
  <p>Robot Framework 6.1 added support to <a href="https://github.com/robotframework/robotframework/blob/master/doc/releasenotes/rf-6.1.rst#json-data-format">convert test/task data to JSON and back</a>
271
267
  and Robot Framework 7.0 extends the JSON serialization support to execution results
272
268
  (<a href="https://github.com/robotframework/robotframework/issues/4847">#4847</a>). One of the core use cases for data serialization was making it easy to
@@ -293,13 +289,12 @@ rebot --merge original.xml rerun.json
293
289
  <p>The plan is to enhance the support for JSON output files in the future so that
294
290
  they could be created already during execution. For more details see issue <a href="https://github.com/robotframework/robotframework/issues/3423">#3423</a>.</p>
295
291
  <a name="argument-conversion-enhancements"></a>
296
- <h3><a href="#toc-entry-7">Argument conversion enhancements</a></h3>
292
+ <h3><a href="#id119">Argument conversion enhancements</a></h3>
297
293
  <p>Automatic argument conversion is a very powerful feature that library developers
298
294
  can use to avoid converting arguments manually and to get more useful Libdoc
299
295
  documentation. There are two important new enhancements to it.</p>
300
296
  <a name="support-for-literal"></a>
301
- <h4>Support for <code>Literal</code>
302
- </h4>
297
+ <h4>Support for <code>Literal</code></h4>
303
298
  <p>In Python, the <a href="https://docs.python.org/3/library/typing.html#typing.Literal">Literal</a> type makes it possible to type arguments so that type
304
299
  checkers accept only certain values. For example, this function only accepts
305
300
  strings <code>x</code>, <code>y</code> and <code>z</code>:</p>
@@ -312,7 +307,7 @@ a <code>Literal</code> type can only be used with the specified values (<a href=
312
307
  example, using a keyword with the above implementation with a value <code>xxx</code> would
313
308
  fail.</p>
314
309
  <p>In addition to validation, arguments are also converted. For example, if an
315
- argument accepts <code>Literal[-1, 0, 1]</code>, used arguments are converted to
310
+ argument accepts <code>Literal[-1,&nbsp;0,&nbsp;1]</code>, used arguments are converted to
316
311
  integers and then validated. In addition to that, string matching is case, space,
317
312
  underscore and hyphen insensitive. In all cases exact matches have a precedence
318
313
  and the argument that is passed to the keyword is guaranteed to be in the exact
@@ -321,14 +316,13 @@ format used with <code>Literal</code>.</p>
321
316
  Framework has supported for long time. <code>Enum</code> conversion has benefits like
322
317
  being able to use a custom documentation and it is typically better when using
323
318
  the same type multiple times. In simple cases being able to just use
324
- <code>arg: Literal[...]</code> without defining a new type is very convenient, though.</p>
319
+ <code>arg:&nbsp;Literal[...]</code> without defining a new type is very convenient, though.</p>
325
320
  <a name="support-stringified-types-like-list-int-and-int-float"></a>
326
- <h4>Support "stringified" types like <code>'list[int]'</code> and <code>'int | float'</code>
327
- </h4>
321
+ <h4>Support &quot;stringified&quot; types like <code>'list[int]'</code> and <code>'int | float'</code></h4>
328
322
  <p>Python's type hinting syntax has evolved so that generic types can be parameterized
329
323
  like <code>list[int]</code> (new in <a href="https://peps.python.org/pep-0585">Python 3.9</a>) and unions written as <code>int | float</code>
330
324
  (new in <a href="https://peps.python.org/pep-0604">Python 3.10</a>). Using these constructs with older Python versions causes
331
- errors, but Python type checkers support also "stringified" type hints like
325
+ errors, but Python type checkers support also &quot;stringified&quot; type hints like
332
326
  <code>'list[int]'</code> and <code>'int | float'</code> that work regardless the Python version.</p>
333
327
  <p>Support for stringified generics and unions has now been added also to
334
328
  Robot Framework's argument conversion (<a href="https://github.com/robotframework/robotframework/issues/4711">#4711</a>). For example,
@@ -340,7 +334,7 @@ def example(a: 'list[int]', b: 'int | float'):
340
334
  <p>These stringified types are also compatible with the Remote library API and other
341
335
  scenarios where using actual types is not possible.</p>
342
336
  <a name="tags-set-globally-can-be-removed-using-tag-syntax"></a>
343
- <h3><a href="#toc-entry-8">Tags set globally can be removed using <code>-tag</code> syntax</a></h3>
337
+ <h3><a href="#id120">Tags set globally can be removed using <code>-tag</code> syntax</a></h3>
344
338
  <p>Individual tests and keywords can nowadays remove tags that have been set in
345
339
  the Settings section with <code>Test Tags</code> or <code>Keyword Tags</code> settings by using
346
340
  the <code>-tag</code> syntax with their own <code>[Tags]</code> setting (<a href="https://github.com/robotframework/robotframework/issues/4374">#4374</a>). For example,
@@ -364,7 +358,7 @@ setting and overriding it where needed. That syntax is, however, considered
364
358
  deprecated (<a href="https://github.com/robotframework/robotframework/issues/4365">#4365</a>) and using the new <code>-tag</code> syntax is recommended. With
365
359
  keywords there was no similar functionality earlier.</p>
366
360
  <a name="dynamic-and-hybrid-library-apis-support-asynchronous-execution"></a>
367
- <h3><a href="#toc-entry-9">Dynamic and hybrid library APIs support asynchronous execution</a></h3>
361
+ <h3><a href="#id121">Dynamic and hybrid library APIs support asynchronous execution</a></h3>
368
362
  <p>Dynamic and hybrid libraries nowadays support asynchronous execution.
369
363
  In practice the special methods like <code>get_keyword_names</code> and <code>run_keyword</code>
370
364
  can be implemented as async methods (<a href="https://github.com/robotframework/robotframework/issues/4803">#4803</a>).</p>
@@ -372,7 +366,7 @@ can be implemented as async methods (<a href="https://github.com/robotframework/
372
366
  6.1 (<a href="https://github.com/robotframework/robotframework/issues/4089">#4089</a>). A bug related to handling asynchronous keywords if execution
373
367
  is stopped gracefully has also been fixed (<a href="https://github.com/robotframework/robotframework/issues/4808">#4808</a>).</p>
374
368
  <a name="timestamps-in-result-model-and-output-xml-use-standard-format"></a>
375
- <h3><a href="#toc-entry-10">Timestamps in result model and output.xml use standard format</a></h3>
369
+ <h3><a href="#id122">Timestamps in result model and output.xml use standard format</a></h3>
376
370
  <p>Timestamps used in the result model and stored to the output.xml file used custom
377
371
  format like <code>20231107 19:57:01.123</code> earlier. Non-standard formats are seldom
378
372
  a good idea, and in this case parsing the custom format turned out to be slow
@@ -404,18 +398,18 @@ but that can be changed in the future if there are needs.</p>
404
398
  that process timestamps. This is discussed more in <a href="#changes-to-output-xml">Changes to output.xml</a>
405
399
  section below along with other output.xml changes.</p>
406
400
  <a name="dark-mode-support-to-report-and-log"></a>
407
- <h3><a href="#toc-entry-11">Dark mode support to report and log</a></h3>
401
+ <h3><a href="#id123">Dark mode support to report and log</a></h3>
408
402
  <p>Report and log got a new dark mode (<a href="https://github.com/robotframework/robotframework/issues/3725">#3725</a>). It is enabled automatically based
409
403
  on browser and operating system preferences, but there is also a toggle to
410
404
  switch between the modes.</p>
411
405
  <a name="backwards-incompatible-changes"></a>
412
- <h2><a href="#toc-entry-12">Backwards incompatible changes</a></h2>
406
+ <h2><a href="#id124">Backwards incompatible changes</a></h2>
413
407
  <a name="python-3-6-and-3-7-are-no-longer-supported"></a>
414
- <h3><a href="#toc-entry-13">Python 3.6 and 3.7 are no longer supported</a></h3>
408
+ <h3><a href="#id125">Python 3.6 and 3.7 are no longer supported</a></h3>
415
409
  <p>Robot Framework 7.0 requires Python 3.8 or newer (<a href="https://github.com/robotframework/robotframework/issues/4294">#4294</a>). The last version
416
410
  that supports Python 3.6 and 3.7 is Robot Framework 6.1.1.</p>
417
411
  <a name="changes-to-output-xml"></a>
418
- <h3><a href="#toc-entry-14">Changes to output.xml</a></h3>
412
+ <h3><a href="#id126">Changes to output.xml</a></h3>
419
413
  <p>The output.xml file has changed in different ways making Robot Framework 7.0
420
414
  incompatible with external tools processing output.xml files until these tools
421
415
  are updated. We try to avoid this kind of breaking changes, but in this case
@@ -438,12 +432,12 @@ are now stored to <code>start</code> and <code>elapsed</code> attributes and mes
438
432
  <p>Examples:</p>
439
433
  <pre lang="xml">
440
434
  &lt;!-- Old format --&gt;
441
- &lt;msg timestamp="20231108 15:36:34.278" level="INFO"&gt;Hello world!&lt;/msg&gt;
442
- &lt;status status="PASS" starttime="20231108 15:37:35.046" endtime="20231108 15:37:35.046"/&gt;
435
+ &lt;msg timestamp=&quot;20231108 15:36:34.278&quot; level=&quot;INFO&quot;&gt;Hello world!&lt;/msg&gt;
436
+ &lt;status status=&quot;PASS&quot; starttime=&quot;20231108 15:37:35.046&quot; endtime=&quot;20231108 15:37:35.046&quot;/&gt;
443
437
 
444
438
  &lt;!-- New format --&gt;
445
- &lt;msg time="2023-11-08T15:36:34.278343" level="INFO"&gt;Hello world!&lt;/msg&gt;
446
- &lt;status status="PASS" start="2023-11-08T15:37:35.046153" elapsed="0.000161"/&gt;
439
+ &lt;msg time=&quot;2023-11-08T15:36:34.278343&quot; level=&quot;INFO&quot;&gt;Hello world!&lt;/msg&gt;
440
+ &lt;status status=&quot;PASS&quot; start=&quot;2023-11-08T15:37:35.046153&quot; elapsed=&quot;0.000161&quot;/&gt;
447
441
  </pre>
448
442
  <p>The new format is standard compliant, contains more detailed times, makes the elapsed
449
443
  time directly available and makes the <code>&lt;status&gt;</code> elements over 10% shorter.
@@ -464,12 +458,12 @@ the result model.</p>
464
458
  <p>Examples:</p>
465
459
  <pre lang="xml">
466
460
  &lt;!-- Old format --&gt;
467
- &lt;kw name="Log" library="BuiltIn"&gt;...&lt;/kw&gt;
468
- &lt;kw name="Number of horses should be" sourcename="Number of ${animals} should be" library="my_resource"&gt;...&lt;/kw&gt;
461
+ &lt;kw name=&quot;Log&quot; library=&quot;BuiltIn&quot;&gt;...&lt;/kw&gt;
462
+ &lt;kw name=&quot;Number of horses should be&quot; sourcename=&quot;Number of ${animals} should be&quot; library=&quot;my_resource&quot;&gt;...&lt;/kw&gt;
469
463
 
470
464
  &lt;!-- New format --&gt;
471
- &lt;kw name="Log" owner="BuiltIn"&gt;...&lt;/kw&gt;
472
- &lt;kw name="Number of horses should be" source_name="Number of ${animals} should be" owner="my_resource"&gt;...&lt;/kw&gt;
465
+ &lt;kw name=&quot;Log&quot; owner=&quot;BuiltIn&quot;&gt;...&lt;/kw&gt;
466
+ &lt;kw name=&quot;Number of horses should be&quot; source_name=&quot;Number of ${animals} should be&quot; owner=&quot;my_resource&quot;&gt;...&lt;/kw&gt;
473
467
  </pre>
474
468
  <a name="other-changes"></a>
475
469
  <h4>Other changes</h4>
@@ -485,7 +479,7 @@ increase the output.xml size.</p>
485
479
  <p>The output.xml schema has been updated and can be found via
486
480
  <a href="https://github.com/robotframework/robotframework/tree/master/doc/schema/">https://github.com/robotframework/robotframework/tree/master/doc/schema/</a>.</p>
487
481
  <a name="changes-to-result-model"></a>
488
- <h3><a href="#toc-entry-15">Changes to result model</a></h3>
482
+ <h3><a href="#id127">Changes to result model</a></h3>
489
483
  <p>There have been some changes to the result model that unfortunately affect
490
484
  external tools using it. The main motivation for these changes has been
491
485
  cleaning up the model before creating a JSON representation for it (<a href="https://github.com/robotframework/robotframework/issues/4847">#4847</a>).</p>
@@ -503,10 +497,8 @@ in Robot Framework 7.0:</p>
503
497
  <li>Old <code>kwname</code> is renamed to <code>name</code>. This is consistent with the execution side <code>Keyword</code>.</li>
504
498
  <li>Old <code>libname</code> is renamed to generic <code>owner</code>.</li>
505
499
  <li>New <code>full_name</code> is introduced to replace the old <code>name</code>.</li>
506
- <li>
507
- <code>sourcename</code> is renamed to <code>source_name</code>.</li>
508
- <li>
509
- <code>kwname</code>, <code>libname</code> and <code>sourcename</code> are preserved as properties. They are considered
500
+ <li><code>sourcename</code> is renamed to <code>source_name</code>.</li>
501
+ <li><code>kwname</code>, <code>libname</code> and <code>sourcename</code> are preserved as properties. They are considered
510
502
  deprecated, but accessing them does not cause a deprecation warning yet.</li>
511
503
  </ul>
512
504
  <p>The backwards incompatible part of this change is changing the meaning of the
@@ -519,25 +511,19 @@ and code using them does not need to be updated immediately.</p>
519
511
  <p>The following attributes that were deprecated already in Robot Framework 4.0
520
512
  have been removed (<a href="https://github.com/robotframework/robotframework/issues/4846">#4846</a>):</p>
521
513
  <ul>
522
- <li>
523
- <code>TestSuite.keywords</code>. Use <code>TestSuite.setup</code> and <code>TestSuite.teardown</code> instead.</li>
524
- <li>
525
- <code>TestCase.keywords</code>. Use <code>TestCase.body</code>, <code>TestCase.setup</code> and <code>TestCase.teardown</code> instead.</li>
526
- <li>
527
- <code>Keyword.keywords</code>. Use <code>Keyword.body</code> and <code>Keyword.teardown</code> instead.</li>
528
- <li>
529
- <code>Keyword.children</code>. Use <code>Keyword.body</code> and <code>Keyword.teardown</code> instead.</li>
530
- <li>
531
- <code>TestCase.critical</code>. The whole criticality concept has been removed.</li>
514
+ <li><code>TestSuite.keywords</code>. Use <code>TestSuite.setup</code> and <code>TestSuite.teardown</code> instead.</li>
515
+ <li><code>TestCase.keywords</code>. Use <code>TestCase.body</code>, <code>TestCase.setup</code> and <code>TestCase.teardown</code> instead.</li>
516
+ <li><code>Keyword.keywords</code>. Use <code>Keyword.body</code> and <code>Keyword.teardown</code> instead.</li>
517
+ <li><code>Keyword.children</code>. Use <code>Keyword.body</code> and <code>Keyword.teardown</code> instead.</li>
518
+ <li><code>TestCase.critical</code>. The whole criticality concept has been removed.</li>
532
519
  </ul>
533
520
  <p>Additionally, <code>TestSuite.keywords</code> and <code>TestCase.keywords</code> have been removed
534
521
  from the execution model.</p>
535
522
  <a name="changes-to-parsing-model"></a>
536
- <h3><a href="#toc-entry-16">Changes to parsing model</a></h3>
523
+ <h3><a href="#id128">Changes to parsing model</a></h3>
537
524
  <p>There have been some changes also to the parsing model:</p>
538
525
  <ul>
539
- <li>
540
- <p>The node representing the deprecated <code>[Return]</code> setting has been renamed from
526
+ <li><p>The node representing the deprecated <code>[Return]</code> setting has been renamed from
541
527
  <code>Return</code> to <code>ReturnSetting</code>. At the same time, the node representing the
542
528
  <code>RETURN</code> statement has been renamed from <code>ReturnStatement</code> to <code>Return</code> (<a href="https://github.com/robotframework/robotframework/issues/4939">#4939</a>).</p>
543
529
  <p>To ease transition, <code>ReturnSetting</code> has existed as an alias for <code>Return</code> starting
@@ -548,39 +534,34 @@ correctly with <code>ReturnSetting</code> and <code>ReturnStatement</code> with
548
534
  newer. Issue <a href="https://github.com/robotframework/robotframework/issues/4939">#4939</a> explains this in more detail and has a concrete example
549
535
  how to support also older Robot Framework versions.</p>
550
536
  </li>
551
- <li>
552
- <p>The node representing the <code>Test Tags</code> setting as well as the deprecated
537
+ <li><p>The node representing the <code>Test Tags</code> setting as well as the deprecated
553
538
  <code>Force Tags</code> setting has been renamed from <code>ForceTags</code> to <code>TestTags</code> (<a href="https://github.com/robotframework/robotframework/issues/4385">#4385</a>).
554
539
  <code>ModelVisitor</code> has special handling for the <code>visit_ForceTags</code> method so
555
540
  that it will continue to work also after the change.</p>
556
541
  </li>
557
- <li>
558
- <p>The token type used with <code>AS</code> (or <code>WITH NAME</code>) in library imports has been changed
542
+ <li><p>The token type used with <code>AS</code> (or <code>WITH NAME</code>) in library imports has been changed
559
543
  to <code>Token.AS</code> (<a href="https://github.com/robotframework/robotframework/issues/4375">#4375</a>). <code>Token.WITH_NAME</code> still exists as an alias for <code>Token.AS</code>.</p>
560
544
  </li>
561
- <li>
562
- <p>Statement <code>type</code> and <code>tokens</code> have been moved from <code>_fields</code> to <code>_attributes</code> (<a href="https://github.com/robotframework/robotframework/issues/4912">#4912</a>).
545
+ <li><p>Statement <code>type</code> and <code>tokens</code> have been moved from <code>_fields</code> to <code>_attributes</code> (<a href="https://github.com/robotframework/robotframework/issues/4912">#4912</a>).
563
546
  This may affect debugging the model.</p>
564
547
  </li>
565
548
  </ul>
566
549
  <a name="changes-to-libdoc-spec-files"></a>
567
- <h3><a href="#toc-entry-17">Changes to Libdoc spec files</a></h3>
550
+ <h3><a href="#id129">Changes to Libdoc spec files</a></h3>
568
551
  <p>The following deprecated constructs have been removed from Libdoc spec files (<a href="https://github.com/robotframework/robotframework/issues/4667">#4667</a>):</p>
569
552
  <ul>
570
- <li>
571
- <code>datatypes</code> have been removed from XML or JSON spec files. They were deprecated in
553
+ <li><code>datatypes</code> have been removed from XML or JSON spec files. They were deprecated in
572
554
  favor of <code>typedocs</code> already in Robot Framework 5.0 (<a href="https://github.com/robotframework/robotframework/issues/4160">#4160</a>).</li>
573
555
  <li>Type names are not anymore written to XML specs as content of the <code>&lt;type&gt;</code> elements.
574
556
  The name is available as the <code>name</code> attribute of <code>&lt;type&gt;</code> elements since
575
557
  Robot Framework 6.1 (<a href="https://github.com/robotframework/robotframework/issues/4538">#4538</a>).</li>
576
- <li>
577
- <code>types</code> and <code>typedocs</code> attributes have been removed from arguments in JSON specs.
558
+ <li><code>types</code> and <code>typedocs</code> attributes have been removed from arguments in JSON specs.
578
559
  The <code>type</code> attribute introduced in RF 6.1 (<a href="https://github.com/robotframework/robotframework/issues/4538">#4538</a>) needs to be used instead.</li>
579
560
  </ul>
580
561
  <p>Libdoc schema files have been updated and can be found via
581
562
  <a href="https://github.com/robotframework/robotframework/tree/master/doc/schema/">https://github.com/robotframework/robotframework/tree/master/doc/schema/</a>.</p>
582
563
  <a name="changes-to-selecting-tests-with-suite-test-and-include"></a>
583
- <h3><a href="#toc-entry-18">Changes to selecting tests with <code>--suite</code>, <code>--test</code> and <code>--include</code></a></h3>
564
+ <h3><a href="#id130">Changes to selecting tests with <code>--suite</code>, <code>--test</code> and <code>--include</code></a></h3>
584
565
  <p>There are two changes related to selecting tests:</p>
585
566
  <ul>
586
567
  <li>When using <code>--test</code> and <code>--include</code> together, tests matching either of them
@@ -590,7 +571,7 @@ the given name must match the full suite name (<a href="https://github.com/robot
590
571
  the prefix matched the closest parent or parents.</li>
591
572
  </ul>
592
573
  <a name="other-backwards-incompatible-changes"></a>
593
- <h3><a href="#toc-entry-19">Other backwards incompatible changes</a></h3>
574
+ <h3><a href="#id131">Other backwards incompatible changes</a></h3>
594
575
  <ul>
595
576
  <li>The default value of the <code>stdin</code> argument used with <code>Process</code> library keyword
596
577
  has been changed from <code>subprocess.PIPE</code> to <code>None</code> (<a href="https://github.com/robotframework/robotframework/issues/4103">#4103</a>). This change ought
@@ -599,34 +580,32 @@ need to use <code>stdin=PIPE</code> explicitly to enable that.</li>
599
580
  <li>When type hints are specified as strings, they must use format <code>type</code>, <code>type[param]</code>,
600
581
  <code>type[p1, p2]</code> or <code>t1 | t2</code> (<a href="https://github.com/robotframework/robotframework/issues/4711">#4711</a>). Using other formats will cause errors taking
601
582
  keywords into use. In practice problems occur if the special characters <code>[</code>, <code>]</code>, <code>,</code>
602
- and <code>|</code> occur in unexpected places. For example, <code>arg: "Hello, world!"</code> will cause
583
+ and <code>|</code> occur in unexpected places. For example, <code>arg: &quot;Hello, world!&quot;</code> will cause
603
584
  an error due to the comma.</li>
604
- <li>
605
- <code>datetime</code>, <code>date</code> and <code>timedelta</code> objects are sent over the Remote interface
585
+ <li><code>datetime</code>, <code>date</code> and <code>timedelta</code> objects are sent over the Remote interface
606
586
  differently than earlier (<a href="https://github.com/robotframework/robotframework/issues/4784">#4784</a>). They all used to be converted to strings, but
607
587
  nowadays <code>datetime</code> is sent as-is, <code>date</code> is converted to <code>datetime</code> and sent like
608
588
  that, and <code>timedelta</code> is converted to a <code>float</code> by using <code>timedelta.total_seconds()</code>.</li>
609
589
  <li>Argument conversion support with <code>collections.abc.ByteString</code> has been removed (<a href="https://github.com/robotframework/robotframework/issues/4983">#4983</a>).
610
590
  The reason is that <code>ByteString</code> is deprecated and will be removed in Python 3.14.
611
591
  It has not been too often needed, but if you happen to use it, you can change
612
- <code>arg: ByteString</code> to <code>arg: bytes | bytearray</code> and the functionality
592
+ <code>arg:&nbsp;ByteString</code> to <code>arg:&nbsp;bytes&nbsp;|&nbsp;bytearray</code> and the functionality
613
593
  stays exactly the same.</li>
614
594
  <li>Paths passed to result file related listener version 3 methods like <code>output_file</code>
615
595
  and <code>log_file</code> have been changed from strings to <code>pathlib.Path</code> objects (<a href="https://github.com/robotframework/robotframework/issues/4988">#4988</a>).
616
596
  Most of the time both kinds of paths work interchangeably, so this change is unlikely
617
597
  to cause issues. If you need to handle these paths as strings, they can be converted
618
598
  by using <code>str(path)</code>.</li>
619
- <li>
620
- <code>robot.utils.normalize</code> does not anymore support bytes (<a href="https://github.com/robotframework/robotframework/issues/4936">#4936</a>).</li>
599
+ <li><code>robot.utils.normalize</code> does not anymore support bytes (<a href="https://github.com/robotframework/robotframework/issues/4936">#4936</a>).</li>
621
600
  <li>Deprecated <code>accept_plain_values</code> argument has been removed from the
622
601
  <code>timestr_to_secs</code> utility function (<a href="https://github.com/robotframework/robotframework/issues/4861">#4861</a>).</li>
623
602
  </ul>
624
603
  <a name="deprecations"></a>
625
- <h2><a href="#toc-entry-20">Deprecations</a></h2>
604
+ <h2><a href="#id132">Deprecations</a></h2>
626
605
  <a name="return-setting"></a>
627
- <h3><a href="#toc-entry-21"><code>[Return]</code> setting</a></h3>
606
+ <h3><a href="#id133"><code>[Return]</code> setting</a></h3>
628
607
  <p>The <code>[Return]</code> setting for specifying the return value from user keywords has
629
- been "loudly" deprecated (<a href="https://github.com/robotframework/robotframework/issues/4876">#4876</a>). It has been "silently" deprecated since
608
+ been &quot;loudly&quot; deprecated (<a href="https://github.com/robotframework/robotframework/issues/4876">#4876</a>). It has been &quot;silently&quot; deprecated since
630
609
  Robot Framework 5.0 when the much more versatile <code>RETURN</code> setting was introduced
631
610
  (<a href="https://github.com/robotframework/robotframework/issues/4078">#4078</a>), but now using it will cause a deprecation warning. The plan is to
632
611
  preserve the <code>[Return]</code> setting at least until Robot Framework 8.0.</p>
@@ -636,12 +615,12 @@ If you have data that is executed also with Robot Framework versions that do
636
615
  not support <code>RETURN</code>, you can use the <code>Return From Keyword</code> keyword instead.
637
616
  That keyword will eventually be deprecated and removed as well, though.</p>
638
617
  <a name="singular-section-headers"></a>
639
- <h3><a href="#toc-entry-22">Singular section headers</a></h3>
618
+ <h3><a href="#id134">Singular section headers</a></h3>
640
619
  <p>Using singular section headers like <code>*** Test Case ***</code> or <code>*** Setting ***</code>
641
620
  nowadays causes a deprecation warning (<a href="https://github.com/robotframework/robotframework/issues/4432">#4432</a>). They were silently deprecated
642
621
  in Robot Framework 6.0 for reasons explained in issue <a href="https://github.com/robotframework/robotframework/issues/4431">#4431</a>.</p>
643
622
  <a name="deprecated-attributes-in-parsing-running-and-result-models"></a>
644
- <h3><a href="#toc-entry-23">Deprecated attributes in parsing, running and result models</a></h3>
623
+ <h3><a href="#id135">Deprecated attributes in parsing, running and result models</a></h3>
645
624
  <ul>
646
625
  <li>In the parsing model, <code>For.variables</code>, <code>ForHeader.variables</code>, <code>Try.variable</code> and
647
626
  <code>ExceptHeader.variable</code> attributes have been deprecated in favor of the new <code>assign</code>
@@ -652,18 +631,16 @@ deprecated in favor of the new <code>assign</code> attribute (<a href="https://g
652
631
  looked like keywords. Nowadays they are considered totally different objects and
653
632
  their keyword specific attributes <code>name</code>, <code>kwnane</code>, <code>libname</code>, <code>doc</code>, <code>args</code>,
654
633
  <code>assign</code>, <code>tags</code> and <code>timeout</code> have been deprecated (<a href="https://github.com/robotframework/robotframework/issues/4846">#4846</a>).</li>
655
- <li>
656
- <code>starttime</code>, <code>endtime</code> and <code>elapsed</code> time attributes in the result model have been
634
+ <li><code>starttime</code>, <code>endtime</code> and <code>elapsed</code> time attributes in the result model have been
657
635
  silently deprecated (<a href="https://github.com/robotframework/robotframework/issues/4258">#4258</a>). Accessing them does not yet cause a deprecation
658
636
  warning, but users are recommended to use <code>start_time</code>, <code>end_time</code> and
659
637
  <code>elapsed_time</code> attributes that are available since Robot Framework 6.1.</li>
660
- <li>
661
- <code>kwname</code>, <code>libname</code> and <code>sourcename</code> attributes used by the <code>Keyword</code> object
638
+ <li><code>kwname</code>, <code>libname</code> and <code>sourcename</code> attributes used by the <code>Keyword</code> object
662
639
  in the result model have been silently deprecated (<a href="https://github.com/robotframework/robotframework/issues/4884">#4884</a>). New code should use
663
640
  <code>name</code>, <code>owner</code> and <code>source_name</code> instead.</li>
664
641
  </ul>
665
642
  <a name="other-deprecated-features"></a>
666
- <h3><a href="#toc-entry-24">Other deprecated features</a></h3>
643
+ <h3><a href="#id136">Other deprecated features</a></h3>
667
644
  <ul>
668
645
  <li>Using embedded arguments with a variable that has a value not matching custom
669
646
  embedded argument patterns nowadays causes a deprecation warning (<a href="https://github.com/robotframework/robotframework/issues/4524">#4524</a>).
@@ -677,8 +654,7 @@ by Robot Framework itself, including the whole Python 2/3 compatibility layer,
677
654
  have been deprecated (<a href="https://github.com/robotframework/robotframework/issues/4501">#4501</a>). If you need some of these utils, you can copy
678
655
  their code to your own tool or library. This change may affect existing
679
656
  libraries and tools in the ecosystem.</li>
680
- <li>
681
- <code>case_insensitive</code> and <code>whitespace_insensitive</code> arguments used by some
657
+ <li><code>case_insensitive</code> and <code>whitespace_insensitive</code> arguments used by some
682
658
  Collections and String library keywords have been deprecated in favor of
683
659
  <code>ignore_case</code> and <code>ignore_whitespace</code>. The new arguments were added for
684
660
  consistency reasons (<a href="https://github.com/robotframework/robotframework/issues/4954">#4954</a>) and the old arguments will continue to work
@@ -687,7 +663,7 @@ for the time being.</li>
687
663
  has been deprecated (<a href="https://github.com/robotframework/robotframework/issues/4862">#4862</a>).</li>
688
664
  </ul>
689
665
  <a name="acknowledgements"></a>
690
- <h2><a href="#toc-entry-25">Acknowledgements</a></h2>
666
+ <h2><a href="#id137">Acknowledgements</a></h2>
691
667
  <p>Robot Framework development is sponsored by the <a href="http://robotframework.org/foundation">Robot Framework Foundation</a>
692
668
  and its over 60 member organizations. If your organization is using Robot Framework
693
669
  and benefiting from it, consider joining the foundation to support its
@@ -696,29 +672,22 @@ development as well.</p>
696
672
  <a href="https://github.com/yanne">Janne Härkönen</a> (part time).
697
673
  In addition to work done by them, the community has provided some great contributions:</p>
698
674
  <ul>
699
- <li>
700
- <a href="https://github.com/ygorpontelo">Ygor Pontelo</a> added async support to the
675
+ <li><a href="https://github.com/ygorpontelo">Ygor Pontelo</a> added async support to the
701
676
  dynamic and hybrid library APIs (<a href="https://github.com/robotframework/robotframework/issues/4803">#4803</a>) and fixed a bug with handling async
702
677
  keywords when execution is stopped gracefully (<a href="https://github.com/robotframework/robotframework/issues/4808">#4808</a>).</li>
703
- <li>
704
- <a href="https://github.com/totu">Topi 'top1' Tuulensuu</a> fixed a performance regression
678
+ <li><a href="https://github.com/totu">Topi 'top1' Tuulensuu</a> fixed a performance regression
705
679
  when using <code>Run Keyword</code> so that the name of the executed keyword contains a variable
706
680
  (<a href="https://github.com/robotframework/robotframework/issues/4659">#4659</a>).</li>
707
- <li>
708
- <a href="https://github.com/psaikkonen">Pasi Saikkonen</a> added dark mode to reports
681
+ <li><a href="https://github.com/psaikkonen">Pasi Saikkonen</a> added dark mode to reports
709
682
  and logs (<a href="https://github.com/robotframework/robotframework/issues/3725">#3725</a>).</li>
710
- <li>
711
- <a href="https://github.com/Snooz82">René</a> added return type information to Libdoc's
683
+ <li><a href="https://github.com/Snooz82">René</a> added return type information to Libdoc's
712
684
  HTML output (<a href="https://github.com/robotframework/robotframework/issues/3017">#3017</a>), fixed <code>DotDict</code> equality comparisons (<a href="https://github.com/robotframework/robotframework/issues/4956">#4956</a>) and
713
685
  helped finalizing the dark mode support (<a href="https://github.com/robotframework/robotframework/issues/3725">#3725</a>).</li>
714
- <li>
715
- <a href="https://github.com/robinmackaij">Robin</a> added type hints to modules that
686
+ <li><a href="https://github.com/robinmackaij">Robin</a> added type hints to modules that
716
687
  did not yet have them under the public <code>robot.api</code> package (<a href="https://github.com/robotframework/robotframework/issues/4841">#4841</a>).</li>
717
- <li>
718
- <a href="https://github.com/MobyNL">Mark Moberts</a> added case-insensitive list and
688
+ <li><a href="https://github.com/MobyNL">Mark Moberts</a> added case-insensitive list and
719
689
  dictionary comparison support to the Collections library (<a href="https://github.com/robotframework/robotframework/issues/4343">#4343</a>).</li>
720
- <li>
721
- <a href="https://github.com/d-biehl">Daniel Biehl</a> enhanced performance of traversing
690
+ <li><a href="https://github.com/d-biehl">Daniel Biehl</a> enhanced performance of traversing
722
691
  the parsing model using <code>ModelVisitor</code> (<a href="https://github.com/robotframework/robotframework/issues/4934">#4934</a>).</li>
723
692
  </ul>
724
693
  <p>Big thanks to Robot Framework Foundation, to community members listed above, and to
@@ -731,7 +700,7 @@ development.</p>
731
700
  <div>Robot Framework lead developer</div>
732
701
  </div>
733
702
  <a name="full-list-of-fixes-and-enhancements"></a>
734
- <h2><a href="#toc-entry-26">Full list of fixes and enhancements</a></h2>
703
+ <h2><a href="#id138">Full list of fixes and enhancements</a></h2>
735
704
  <table>
736
705
 
737
706
 
@@ -740,560 +709,449 @@ development.</p>
740
709
 
741
710
 
742
711
  <thead valign="bottom">
743
- <tr>
744
- <th>ID</th>
712
+ <tr><th>ID</th>
745
713
  <th>Type</th>
746
714
  <th>Priority</th>
747
715
  <th>Summary</th>
748
716
  </tr>
749
717
  </thead>
750
718
  <tbody valign="top">
751
- <tr>
752
- <td><a href="https://github.com/robotframework/robotframework/issues/3296">#3296</a></td>
719
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/3296">#3296</a></td>
753
720
  <td>enhancement</td>
754
721
  <td>critical</td>
755
722
  <td>Support keywords and control structures with listener version 3</td>
756
723
  </tr>
757
- <tr>
758
- <td><a href="https://github.com/robotframework/robotframework/issues/3761">#3761</a></td>
724
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/3761">#3761</a></td>
759
725
  <td>enhancement</td>
760
726
  <td>critical</td>
761
727
  <td>Native <code>VAR</code> syntax to create variables inside tests and keywords</td>
762
728
  </tr>
763
- <tr>
764
- <td><a href="https://github.com/robotframework/robotframework/issues/4294">#4294</a></td>
729
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4294">#4294</a></td>
765
730
  <td>enhancement</td>
766
731
  <td>critical</td>
767
732
  <td>Drop Python 3.6 and 3.7 support</td>
768
733
  </tr>
769
- <tr>
770
- <td><a href="https://github.com/robotframework/robotframework/issues/4710">#4710</a></td>
734
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4710">#4710</a></td>
771
735
  <td>enhancement</td>
772
736
  <td>critical</td>
773
737
  <td>Support library keywords with both embedded and normal arguments</td>
774
738
  </tr>
775
- <tr>
776
- <td><a href="https://github.com/robotframework/robotframework/issues/4847">#4847</a></td>
739
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4847">#4847</a></td>
777
740
  <td>enhancement</td>
778
741
  <td>critical</td>
779
742
  <td>Support JSON serialization with result model</td>
780
743
  </tr>
781
- <tr>
782
- <td><a href="https://github.com/robotframework/robotframework/issues/4659">#4659</a></td>
744
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4659">#4659</a></td>
783
745
  <td>bug</td>
784
746
  <td>high</td>
785
747
  <td>Performance regression when using <code>Run Keyword</code> and keyword name contains a variable</td>
786
748
  </tr>
787
- <tr>
788
- <td><a href="https://github.com/robotframework/robotframework/issues/4921">#4921</a></td>
749
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4921">#4921</a></td>
789
750
  <td>bug</td>
790
751
  <td>high</td>
791
- <td>Log levels don't work correctly with <code>robot:flatten</code>
792
- </td>
752
+ <td>Log levels don't work correctly with <code>robot:flatten</code></td>
793
753
  </tr>
794
- <tr>
795
- <td><a href="https://github.com/robotframework/robotframework/issues/3725">#3725</a></td>
754
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/3725">#3725</a></td>
796
755
  <td>enhancement</td>
797
756
  <td>high</td>
798
757
  <td>Support dark theme with report and log</td>
799
758
  </tr>
800
- <tr>
801
- <td><a href="https://github.com/robotframework/robotframework/issues/4258">#4258</a></td>
759
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4258">#4258</a></td>
802
760
  <td>enhancement</td>
803
761
  <td>high</td>
804
762
  <td>Change timestamps from custom strings to <code>datetime</code> in result model and to ISO 8601 format in output.xml</td>
805
763
  </tr>
806
- <tr>
807
- <td><a href="https://github.com/robotframework/robotframework/issues/4374">#4374</a></td>
764
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4374">#4374</a></td>
808
765
  <td>enhancement</td>
809
766
  <td>high</td>
810
767
  <td>Support removing tags set globally by using <code>-tag</code> syntax with <code>[Tags]</code> setting</td>
811
768
  </tr>
812
- <tr>
813
- <td><a href="https://github.com/robotframework/robotframework/issues/4633">#4633</a></td>
769
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4633">#4633</a></td>
814
770
  <td>enhancement</td>
815
771
  <td>high</td>
816
- <td>Automatic argument conversion and validation for <code>Literal</code>
817
- </td>
772
+ <td>Automatic argument conversion and validation for <code>Literal</code></td>
818
773
  </tr>
819
- <tr>
820
- <td><a href="https://github.com/robotframework/robotframework/issues/4711">#4711</a></td>
774
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4711">#4711</a></td>
821
775
  <td>enhancement</td>
822
776
  <td>high</td>
823
777
  <td>Support type aliases in formats <code>'list[int]'</code> and <code>'int | float'</code> in argument conversion</td>
824
778
  </tr>
825
- <tr>
826
- <td><a href="https://github.com/robotframework/robotframework/issues/4803">#4803</a></td>
779
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4803">#4803</a></td>
827
780
  <td>enhancement</td>
828
781
  <td>high</td>
829
782
  <td>Async support to dynamic and hybrid library APIs</td>
830
783
  </tr>
831
- <tr>
832
- <td><a href="https://github.com/robotframework/robotframework/issues/4808">#4808</a></td>
784
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4808">#4808</a></td>
833
785
  <td>bug</td>
834
786
  <td>medium</td>
835
787
  <td>Async keywords are not stopped when execution is stopped gracefully</td>
836
788
  </tr>
837
- <tr>
838
- <td><a href="https://github.com/robotframework/robotframework/issues/4859">#4859</a></td>
789
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4859">#4859</a></td>
839
790
  <td>bug</td>
840
791
  <td>medium</td>
841
792
  <td>Parsing errors in reStructuredText files have no source</td>
842
793
  </tr>
843
- <tr>
844
- <td><a href="https://github.com/robotframework/robotframework/issues/4880">#4880</a></td>
794
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4880">#4880</a></td>
845
795
  <td>bug</td>
846
796
  <td>medium</td>
847
797
  <td>Initially empty test fails even if pre-run modifier adds content to it</td>
848
798
  </tr>
849
- <tr>
850
- <td><a href="https://github.com/robotframework/robotframework/issues/4886">#4886</a></td>
799
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4886">#4886</a></td>
851
800
  <td>bug</td>
852
801
  <td>medium</td>
853
- <td>
854
- <code>Set Variable If</code> is slow if it has several conditions</td>
802
+ <td><code>Set Variable If</code> is slow if it has several conditions</td>
855
803
  </tr>
856
- <tr>
857
- <td><a href="https://github.com/robotframework/robotframework/issues/4898">#4898</a></td>
804
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4898">#4898</a></td>
858
805
  <td>bug</td>
859
806
  <td>medium</td>
860
807
  <td>Resolving special variables can fail with confusing message</td>
861
808
  </tr>
862
- <tr>
863
- <td><a href="https://github.com/robotframework/robotframework/issues/4915">#4915</a></td>
809
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4915">#4915</a></td>
864
810
  <td>bug</td>
865
811
  <td>medium</td>
866
- <td>
867
- <code>cached_property</code> attributes are called when importing library</td>
812
+ <td><code>cached_property</code> attributes are called when importing library</td>
868
813
  </tr>
869
- <tr>
870
- <td><a href="https://github.com/robotframework/robotframework/issues/4924">#4924</a></td>
814
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4924">#4924</a></td>
871
815
  <td>bug</td>
872
816
  <td>medium</td>
873
817
  <td>WHILE <code>on_limit</code> missing from listener v2 attributes</td>
874
818
  </tr>
875
- <tr>
876
- <td><a href="https://github.com/robotframework/robotframework/issues/4926">#4926</a></td>
819
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4926">#4926</a></td>
877
820
  <td>bug</td>
878
821
  <td>medium</td>
879
- <td>WHILE and TRY content are not removed with <code>--removekeywords all</code>
880
- </td>
822
+ <td>WHILE and TRY content are not removed with <code>--removekeywords all</code></td>
881
823
  </tr>
882
- <tr>
883
- <td><a href="https://github.com/robotframework/robotframework/issues/4945">#4945</a></td>
824
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4945">#4945</a></td>
884
825
  <td>bug</td>
885
826
  <td>medium</td>
886
- <td>
887
- <code>TypedDict</code> with forward references do not work in argument conversion</td>
827
+ <td><code>TypedDict</code> with forward references do not work in argument conversion</td>
888
828
  </tr>
889
- <tr>
890
- <td><a href="https://github.com/robotframework/robotframework/issues/4956">#4956</a></td>
829
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4956">#4956</a></td>
891
830
  <td>bug</td>
892
831
  <td>medium</td>
893
- <td>DotDict behaves inconsistent on equality checks. <code>x == y</code> != <code>not x != y</code> and not <code>x != y</code> == <code>not x == y</code>
894
- </td>
832
+ <td>DotDict behaves inconsistent on equality checks. <code>x == y</code> != <code>not x != y</code> and not <code>x != y</code> == <code>not x == y</code></td>
895
833
  </tr>
896
- <tr>
897
- <td><a href="https://github.com/robotframework/robotframework/issues/4964">#4964</a></td>
834
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4964">#4964</a></td>
898
835
  <td>bug</td>
899
836
  <td>medium</td>
900
837
  <td>Variables set using <code>Set Suite Variable</code> with <code>children=True</code> cannot be properly overwritten</td>
901
838
  </tr>
902
- <tr>
903
- <td><a href="https://github.com/robotframework/robotframework/issues/4980">#4980</a></td>
839
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4980">#4980</a></td>
904
840
  <td>bug</td>
905
841
  <td>medium</td>
906
- <td>DateTime library uses deprecated <code>datetime.utcnow()</code>
907
- </td>
842
+ <td>DateTime library uses deprecated <code>datetime.utcnow()</code></td>
908
843
  </tr>
909
- <tr>
910
- <td><a href="https://github.com/robotframework/robotframework/issues/4999">#4999</a></td>
844
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4999">#4999</a></td>
911
845
  <td>bug</td>
912
846
  <td>medium</td>
913
847
  <td>XML Library: Double namespace during Element To String</td>
914
848
  </tr>
915
- <tr>
916
- <td><a href="https://github.com/robotframework/robotframework/issues/5005">#5005</a></td>
849
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/5005">#5005</a></td>
917
850
  <td>bug</td>
918
851
  <td>medium</td>
919
- <td>
920
- <code>Log Variables</code> should not consume iterables</td>
852
+ <td><code>Log Variables</code> should not consume iterables</td>
921
853
  </tr>
922
- <tr>
923
- <td><a href="https://github.com/robotframework/robotframework/issues/3017">#3017</a></td>
854
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/3017">#3017</a></td>
924
855
  <td>enhancement</td>
925
856
  <td>medium</td>
926
857
  <td>Add return type to Libdoc specs and HTML output</td>
927
858
  </tr>
928
- <tr>
929
- <td><a href="https://github.com/robotframework/robotframework/issues/4103">#4103</a></td>
859
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4103">#4103</a></td>
930
860
  <td>enhancement</td>
931
861
  <td>medium</td>
932
- <td>Process: Change the default <code>stdin</code> behavior from <code>subprocess.PIPE</code> to <code>None</code>
933
- </td>
862
+ <td>Process: Change the default <code>stdin</code> behavior from <code>subprocess.PIPE</code> to <code>None</code></td>
934
863
  </tr>
935
- <tr>
936
- <td><a href="https://github.com/robotframework/robotframework/issues/4302">#4302</a></td>
864
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4302">#4302</a></td>
937
865
  <td>enhancement</td>
938
866
  <td>medium</td>
939
867
  <td>Remove <code>Reserved</code> library</td>
940
868
  </tr>
941
- <tr>
942
- <td><a href="https://github.com/robotframework/robotframework/issues/4343">#4343</a></td>
869
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4343">#4343</a></td>
943
870
  <td>enhancement</td>
944
871
  <td>medium</td>
945
872
  <td>Collections: Support case-insensitive list and dictionary comparisons</td>
946
873
  </tr>
947
- <tr>
948
- <td><a href="https://github.com/robotframework/robotframework/issues/4375">#4375</a></td>
874
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4375">#4375</a></td>
949
875
  <td>enhancement</td>
950
876
  <td>medium</td>
951
- <td>Change token type of <code>AS</code> (or <code>WITH NAME</code>) used with library imports to <code>Token.AS</code>
952
- </td>
877
+ <td>Change token type of <code>AS</code> (or <code>WITH NAME</code>) used with library imports to <code>Token.AS</code></td>
953
878
  </tr>
954
- <tr>
955
- <td><a href="https://github.com/robotframework/robotframework/issues/4385">#4385</a></td>
879
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4385">#4385</a></td>
956
880
  <td>enhancement</td>
957
881
  <td>medium</td>
958
- <td>Change the parsing model object produced by <code>Test Tags</code> (and <code>Force Tags</code>) to <code>TestTags</code>
959
- </td>
882
+ <td>Change the parsing model object produced by <code>Test Tags</code> (and <code>Force Tags</code>) to <code>TestTags</code></td>
960
883
  </tr>
961
- <tr>
962
- <td><a href="https://github.com/robotframework/robotframework/issues/4432">#4432</a></td>
884
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4432">#4432</a></td>
963
885
  <td>enhancement</td>
964
886
  <td>medium</td>
965
887
  <td>Loudly deprecate singular section headers</td>
966
888
  </tr>
967
- <tr>
968
- <td><a href="https://github.com/robotframework/robotframework/issues/4501">#4501</a></td>
889
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4501">#4501</a></td>
969
890
  <td>enhancement</td>
970
891
  <td>medium</td>
971
892
  <td>Loudly deprecate old Python 2/3 compatibility layer and other deprecated utils</td>
972
893
  </tr>
973
- <tr>
974
- <td><a href="https://github.com/robotframework/robotframework/issues/4524">#4524</a></td>
894
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4524">#4524</a></td>
975
895
  <td>enhancement</td>
976
896
  <td>medium</td>
977
897
  <td>Loudly deprecate variables used as embedded arguments not matching custom patterns</td>
978
898
  </tr>
979
- <tr>
980
- <td><a href="https://github.com/robotframework/robotframework/issues/4545">#4545</a></td>
899
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4545">#4545</a></td>
981
900
  <td>enhancement</td>
982
901
  <td>medium</td>
983
- <td>Support creating assigned variable name based on another variable like <code>${${var}} = Keyword</code>
984
- </td>
902
+ <td>Support creating assigned variable name based on another variable like <code>${${var}} = Keyword</code></td>
985
903
  </tr>
986
- <tr>
987
- <td><a href="https://github.com/robotframework/robotframework/issues/4667">#4667</a></td>
904
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4667">#4667</a></td>
988
905
  <td>enhancement</td>
989
906
  <td>medium</td>
990
907
  <td>Remove deprecated constructs from Libdoc spec files</td>
991
908
  </tr>
992
- <tr>
993
- <td><a href="https://github.com/robotframework/robotframework/issues/4685">#4685</a></td>
909
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4685">#4685</a></td>
994
910
  <td>enhancement</td>
995
911
  <td>medium</td>
996
912
  <td>Deprecate <code>SHORTEST</code> mode being default with <code>FOR IN ZIP</code> loops</td>
997
913
  </tr>
998
- <tr>
999
- <td><a href="https://github.com/robotframework/robotframework/issues/4708">#4708</a></td>
914
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4708">#4708</a></td>
1000
915
  <td>enhancement</td>
1001
916
  <td>medium</td>
1002
917
  <td>Use <code>assing</code>, not <code>variable</code>, with FOR and TRY/EXCEPT model objects when referring to assigned variables</td>
1003
918
  </tr>
1004
- <tr>
1005
- <td><a href="https://github.com/robotframework/robotframework/issues/4720">#4720</a></td>
919
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4720">#4720</a></td>
1006
920
  <td>enhancement</td>
1007
921
  <td>medium</td>
1008
922
  <td>Require <code>--suite parent.suite</code> to match the full suite name</td>
1009
923
  </tr>
1010
- <tr>
1011
- <td><a href="https://github.com/robotframework/robotframework/issues/4721">#4721</a></td>
924
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4721">#4721</a></td>
1012
925
  <td>enhancement</td>
1013
926
  <td>medium</td>
1014
927
  <td>Change behavior of <code>--test</code> and <code>--include</code> so that they are cumulative</td>
1015
928
  </tr>
1016
- <tr>
1017
- <td><a href="https://github.com/robotframework/robotframework/issues/4747">#4747</a></td>
929
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4747">#4747</a></td>
1018
930
  <td>enhancement</td>
1019
931
  <td>medium</td>
1020
932
  <td>Support <code>[Setup]</code> with user keywords</td>
1021
933
  </tr>
1022
- <tr>
1023
- <td><a href="https://github.com/robotframework/robotframework/issues/4784">#4784</a></td>
934
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4784">#4784</a></td>
1024
935
  <td>enhancement</td>
1025
936
  <td>medium</td>
1026
937
  <td>Remote: Enhance <code>datetime</code>, <code>date</code> and <code>timedelta</code> conversion</td>
1027
938
  </tr>
1028
- <tr>
1029
- <td><a href="https://github.com/robotframework/robotframework/issues/4841">#4841</a></td>
939
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4841">#4841</a></td>
1030
940
  <td>enhancement</td>
1031
941
  <td>medium</td>
1032
- <td>Add typing to all modules under <code>robot.api</code>
1033
- </td>
942
+ <td>Add typing to all modules under <code>robot.api</code></td>
1034
943
  </tr>
1035
- <tr>
1036
- <td><a href="https://github.com/robotframework/robotframework/issues/4846">#4846</a></td>
944
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4846">#4846</a></td>
1037
945
  <td>enhancement</td>
1038
946
  <td>medium</td>
1039
947
  <td>Result model: Loudly deprecate not needed attributes and remove already deprecated ones</td>
1040
948
  </tr>
1041
- <tr>
1042
- <td><a href="https://github.com/robotframework/robotframework/issues/4872">#4872</a></td>
949
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4872">#4872</a></td>
1043
950
  <td>enhancement</td>
1044
951
  <td>medium</td>
1045
952
  <td>Control continue-on-failure mode by using recursive and non-recursive tags together</td>
1046
953
  </tr>
1047
- <tr>
1048
- <td><a href="https://github.com/robotframework/robotframework/issues/4876">#4876</a></td>
954
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4876">#4876</a></td>
1049
955
  <td>enhancement</td>
1050
956
  <td>medium</td>
1051
957
  <td>Loudly deprecate <code>[Return]</code> setting</td>
1052
958
  </tr>
1053
- <tr>
1054
- <td><a href="https://github.com/robotframework/robotframework/issues/4877">#4877</a></td>
959
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4877">#4877</a></td>
1055
960
  <td>enhancement</td>
1056
961
  <td>medium</td>
1057
- <td>XML: Support ignoring element order with <code>Elements Should Be Equal</code>
1058
- </td>
962
+ <td>XML: Support ignoring element order with <code>Elements Should Be Equal</code></td>
1059
963
  </tr>
1060
- <tr>
1061
- <td><a href="https://github.com/robotframework/robotframework/issues/4883">#4883</a></td>
964
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4883">#4883</a></td>
1062
965
  <td>enhancement</td>
1063
966
  <td>medium</td>
1064
967
  <td>Result model: Add <code>message</code> to keywords and control structures and remove <code>doc</code> from controls</td>
1065
968
  </tr>
1066
- <tr>
1067
- <td><a href="https://github.com/robotframework/robotframework/issues/4884">#4884</a></td>
969
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4884">#4884</a></td>
1068
970
  <td>enhancement</td>
1069
971
  <td>medium</td>
1070
972
  <td>Result model: Enhance storing keyword name</td>
1071
973
  </tr>
1072
- <tr>
1073
- <td><a href="https://github.com/robotframework/robotframework/issues/4896">#4896</a></td>
974
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4896">#4896</a></td>
1074
975
  <td>enhancement</td>
1075
976
  <td>medium</td>
1076
977
  <td>Support <code>separator=&lt;value&gt;</code> configuration option with scalar variables in Variables section</td>
1077
978
  </tr>
1078
- <tr>
1079
- <td><a href="https://github.com/robotframework/robotframework/issues/4903">#4903</a></td>
979
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4903">#4903</a></td>
1080
980
  <td>enhancement</td>
1081
981
  <td>medium</td>
1082
982
  <td>Support argument conversion and named arguments with dynamic variable files</td>
1083
983
  </tr>
1084
- <tr>
1085
- <td><a href="https://github.com/robotframework/robotframework/issues/4905">#4905</a></td>
984
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4905">#4905</a></td>
1086
985
  <td>enhancement</td>
1087
986
  <td>medium</td>
1088
987
  <td>Support creating variable name based on another variable like <code>${${VAR}}</code> in Variables section</td>
1089
988
  </tr>
1090
- <tr>
1091
- <td><a href="https://github.com/robotframework/robotframework/issues/4910">#4910</a></td>
989
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4910">#4910</a></td>
1092
990
  <td>enhancement</td>
1093
991
  <td>medium</td>
1094
992
  <td>Make listener v3 the default listener API</td>
1095
993
  </tr>
1096
- <tr>
1097
- <td><a href="https://github.com/robotframework/robotframework/issues/4912">#4912</a></td>
994
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4912">#4912</a></td>
1098
995
  <td>enhancement</td>
1099
996
  <td>medium</td>
1100
- <td>Parsing model: Move <code>type</code> and <code>tokens</code> from <code>_fields</code> to <code>_attributes</code>
1101
- </td>
997
+ <td>Parsing model: Move <code>type</code> and <code>tokens</code> from <code>_fields</code> to <code>_attributes</code></td>
1102
998
  </tr>
1103
- <tr>
1104
- <td><a href="https://github.com/robotframework/robotframework/issues/4930">#4930</a></td>
999
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4930">#4930</a></td>
1105
1000
  <td>enhancement</td>
1106
1001
  <td>medium</td>
1107
1002
  <td>BuiltIn: New <code>Reset Log Level</code> keyword for resetting the log level to the original value</td>
1108
1003
  </tr>
1109
- <tr>
1110
- <td><a href="https://github.com/robotframework/robotframework/issues/4939">#4939</a></td>
1004
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4939">#4939</a></td>
1111
1005
  <td>enhancement</td>
1112
1006
  <td>medium</td>
1113
- <td>Parsing model: Rename <code>Return</code> to <code>ReturnSetting</code> and <code>ReturnStatement</code> to <code>Return</code>
1114
- </td>
1007
+ <td>Parsing model: Rename <code>Return</code> to <code>ReturnSetting</code> and <code>ReturnStatement</code> to <code>Return</code></td>
1115
1008
  </tr>
1116
- <tr>
1117
- <td><a href="https://github.com/robotframework/robotframework/issues/4942">#4942</a></td>
1009
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4942">#4942</a></td>
1118
1010
  <td>enhancement</td>
1119
1011
  <td>medium</td>
1120
1012
  <td>Add public argument conversion API for libraries and other tools</td>
1121
1013
  </tr>
1122
- <tr>
1123
- <td><a href="https://github.com/robotframework/robotframework/issues/4952">#4952</a></td>
1014
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4952">#4952</a></td>
1124
1015
  <td>enhancement</td>
1125
1016
  <td>medium</td>
1126
1017
  <td>Collections: Make <code>ignore_order</code> and <code>ignore_keys</code> recursive</td>
1127
1018
  </tr>
1128
- <tr>
1129
- <td><a href="https://github.com/robotframework/robotframework/issues/4960">#4960</a></td>
1019
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4960">#4960</a></td>
1130
1020
  <td>enhancement</td>
1131
1021
  <td>medium</td>
1132
- <td>Support integer conversion with strings representing whole number floats like <code>'1.0'</code> and <code>'2e10'</code>
1133
- </td>
1022
+ <td>Support integer conversion with strings representing whole number floats like <code>'1.0'</code> and <code>'2e10'</code></td>
1134
1023
  </tr>
1135
- <tr>
1136
- <td><a href="https://github.com/robotframework/robotframework/issues/4976">#4976</a></td>
1024
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4976">#4976</a></td>
1137
1025
  <td>enhancement</td>
1138
1026
  <td>medium</td>
1139
1027
  <td>Support string <code>SELF</code> (case-insenstive) when library registers itself as listener</td>
1140
1028
  </tr>
1141
- <tr>
1142
- <td><a href="https://github.com/robotframework/robotframework/issues/4979">#4979</a></td>
1029
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4979">#4979</a></td>
1143
1030
  <td>enhancement</td>
1144
1031
  <td>medium</td>
1145
1032
  <td>Add <code>robot.result.TestSuite.to/from_xml</code> methods</td>
1146
1033
  </tr>
1147
- <tr>
1148
- <td><a href="https://github.com/robotframework/robotframework/issues/4982">#4982</a></td>
1034
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4982">#4982</a></td>
1149
1035
  <td>enhancement</td>
1150
1036
  <td>medium</td>
1151
1037
  <td>DateTime: Support <code>datetime.date</code> as an input format with date related keywords</td>
1152
1038
  </tr>
1153
- <tr>
1154
- <td><a href="https://github.com/robotframework/robotframework/issues/4983">#4983</a></td>
1039
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4983">#4983</a></td>
1155
1040
  <td>enhancement</td>
1156
1041
  <td>medium</td>
1157
- <td>Type conversion: Remove support for deprecated <code>ByteString</code>
1158
- </td>
1042
+ <td>Type conversion: Remove support for deprecated <code>ByteString</code></td>
1159
1043
  </tr>
1160
- <tr>
1161
- <td><a href="https://github.com/robotframework/robotframework/issues/5000">#5000</a></td>
1044
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/5000">#5000</a></td>
1162
1045
  <td>enhancement</td>
1163
1046
  <td>medium</td>
1164
1047
  <td>Nicer API for setting keyword call arguments programmatically</td>
1165
1048
  </tr>
1166
- <tr>
1167
- <td><a href="https://github.com/robotframework/robotframework/issues/4934">#4934</a></td>
1049
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4934">#4934</a></td>
1168
1050
  <td>---</td>
1169
1051
  <td>medium</td>
1170
1052
  <td>Enhance performance of visiting parsing model</td>
1171
1053
  </tr>
1172
- <tr>
1173
- <td><a href="https://github.com/robotframework/robotframework/issues/4621">#4621</a></td>
1054
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4621">#4621</a></td>
1174
1055
  <td>bug</td>
1175
1056
  <td>low</td>
1176
1057
  <td>OperatingSystem library docs have broken link / title</td>
1177
1058
  </tr>
1178
- <tr>
1179
- <td><a href="https://github.com/robotframework/robotframework/issues/4798">#4798</a></td>
1059
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4798">#4798</a></td>
1180
1060
  <td>bug</td>
1181
1061
  <td>low</td>
1182
- <td>
1183
- <code>--removekeywords passed</code> doesn't remove test setup and teardown</td>
1062
+ <td><code>--removekeywords passed</code> doesn't remove test setup and teardown</td>
1184
1063
  </tr>
1185
- <tr>
1186
- <td><a href="https://github.com/robotframework/robotframework/issues/4867">#4867</a></td>
1064
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4867">#4867</a></td>
1187
1065
  <td>bug</td>
1188
1066
  <td>low</td>
1189
1067
  <td>Original order of dictionaries is not preserved when they are pretty printed in log messages</td>
1190
1068
  </tr>
1191
- <tr>
1192
- <td><a href="https://github.com/robotframework/robotframework/issues/4870">#4870</a></td>
1069
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4870">#4870</a></td>
1193
1070
  <td>bug</td>
1194
1071
  <td>low</td>
1195
1072
  <td>User keyword teardown missing from running model JSON schema</td>
1196
1073
  </tr>
1197
- <tr>
1198
- <td><a href="https://github.com/robotframework/robotframework/issues/4904">#4904</a></td>
1074
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4904">#4904</a></td>
1199
1075
  <td>bug</td>
1200
1076
  <td>low</td>
1201
1077
  <td>Importing static variable file with arguments does not fail</td>
1202
1078
  </tr>
1203
- <tr>
1204
- <td><a href="https://github.com/robotframework/robotframework/issues/4913">#4913</a></td>
1079
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4913">#4913</a></td>
1205
1080
  <td>bug</td>
1206
1081
  <td>low</td>
1207
1082
  <td>Trace log level logs arguments twice for embedded arguments</td>
1208
1083
  </tr>
1209
- <tr>
1210
- <td><a href="https://github.com/robotframework/robotframework/issues/4927">#4927</a></td>
1084
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4927">#4927</a></td>
1211
1085
  <td>bug</td>
1212
1086
  <td>low</td>
1213
1087
  <td>WARN level missing from the log level selector in log.html</td>
1214
1088
  </tr>
1215
- <tr>
1216
- <td><a href="https://github.com/robotframework/robotframework/issues/4967">#4967</a></td>
1089
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4967">#4967</a></td>
1217
1090
  <td>bug</td>
1218
1091
  <td>low</td>
1219
1092
  <td>Variables are not resolved in keyword name in WUKS error message</td>
1220
1093
  </tr>
1221
- <tr>
1222
- <td><a href="https://github.com/robotframework/robotframework/issues/4861">#4861</a></td>
1094
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4861">#4861</a></td>
1223
1095
  <td>enhancement</td>
1224
1096
  <td>low</td>
1225
1097
  <td>Remove deprecated <code>accept_plain_values</code> from <code>timestr_to_secs</code> utility function</td>
1226
1098
  </tr>
1227
- <tr>
1228
- <td><a href="https://github.com/robotframework/robotframework/issues/4862">#4862</a></td>
1099
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4862">#4862</a></td>
1229
1100
  <td>enhancement</td>
1230
1101
  <td>low</td>
1231
1102
  <td>Deprecate <code>elapsed_time_to_string</code> accepting time as milliseconds</td>
1232
1103
  </tr>
1233
- <tr>
1234
- <td><a href="https://github.com/robotframework/robotframework/issues/4864">#4864</a></td>
1104
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4864">#4864</a></td>
1235
1105
  <td>enhancement</td>
1236
1106
  <td>low</td>
1237
1107
  <td>Process: Make warning about processes hanging if output buffers get full more visible</td>
1238
1108
  </tr>
1239
- <tr>
1240
- <td><a href="https://github.com/robotframework/robotframework/issues/4885">#4885</a></td>
1109
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4885">#4885</a></td>
1241
1110
  <td>enhancement</td>
1242
1111
  <td>low</td>
1243
1112
  <td>Add <code>full_name</code> to replace <code>longname</code> to suite and test objects</td>
1244
1113
  </tr>
1245
- <tr>
1246
- <td><a href="https://github.com/robotframework/robotframework/issues/4900">#4900</a></td>
1114
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4900">#4900</a></td>
1247
1115
  <td>enhancement</td>
1248
1116
  <td>low</td>
1249
1117
  <td>Make keywords and control structures in log look more like original data</td>
1250
1118
  </tr>
1251
- <tr>
1252
- <td><a href="https://github.com/robotframework/robotframework/issues/4922">#4922</a></td>
1119
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4922">#4922</a></td>
1253
1120
  <td>enhancement</td>
1254
1121
  <td>low</td>
1255
1122
  <td>Change the log level of <code>Set Log Level</code> message from INFO to DEBUG</td>
1256
1123
  </tr>
1257
- <tr>
1258
- <td><a href="https://github.com/robotframework/robotframework/issues/4933">#4933</a></td>
1124
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4933">#4933</a></td>
1259
1125
  <td>enhancement</td>
1260
1126
  <td>low</td>
1261
1127
  <td>Type conversion: Ignore hyphens when matching enum members</td>
1262
1128
  </tr>
1263
- <tr>
1264
- <td><a href="https://github.com/robotframework/robotframework/issues/4935">#4935</a></td>
1129
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4935">#4935</a></td>
1265
1130
  <td>enhancement</td>
1266
1131
  <td>low</td>
1267
1132
  <td>Use <code>casefold</code>, not <code>lower</code>, when comparing strings case-insensitively</td>
1268
1133
  </tr>
1269
- <tr>
1270
- <td><a href="https://github.com/robotframework/robotframework/issues/4936">#4936</a></td>
1134
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4936">#4936</a></td>
1271
1135
  <td>enhancement</td>
1272
1136
  <td>low</td>
1273
1137
  <td>Remove bytes support from <code>robot.utils.normalize</code> function</td>
1274
1138
  </tr>
1275
- <tr>
1276
- <td><a href="https://github.com/robotframework/robotframework/issues/4954">#4954</a></td>
1139
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4954">#4954</a></td>
1277
1140
  <td>enhancement</td>
1278
1141
  <td>low</td>
1279
- <td>Collections and String: Add <code>ignore_case</code> as alias for <code>case_insensitive</code>
1280
- </td>
1142
+ <td>Collections and String: Add <code>ignore_case</code> as alias for <code>case_insensitive</code></td>
1281
1143
  </tr>
1282
- <tr>
1283
- <td><a href="https://github.com/robotframework/robotframework/issues/4958">#4958</a></td>
1144
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4958">#4958</a></td>
1284
1145
  <td>enhancement</td>
1285
1146
  <td>low</td>
1286
1147
  <td>Document <code>robot_running</code> and <code>dry_run_active</code> properties of the BuiltIn library in the User Guide</td>
1287
1148
  </tr>
1288
- <tr>
1289
- <td><a href="https://github.com/robotframework/robotframework/issues/4975">#4975</a></td>
1149
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4975">#4975</a></td>
1290
1150
  <td>enhancement</td>
1291
1151
  <td>low</td>
1292
- <td>Support <code>times</code> and <code>x</code> suffixes with <code>WHILE</code> limit to make it more compatible with <code>Wait Until Keyword Succeeds</code>
1293
- </td>
1152
+ <td>Support <code>times</code> and <code>x</code> suffixes with <code>WHILE</code> limit to make it more compatible with <code>Wait Until Keyword Succeeds</code></td>
1294
1153
  </tr>
1295
- <tr>
1296
- <td><a href="https://github.com/robotframework/robotframework/issues/4988">#4988</a></td>
1154
+ <tr><td><a href="https://github.com/robotframework/robotframework/issues/4988">#4988</a></td>
1297
1155
  <td>enhancement</td>
1298
1156
  <td>low</td>
1299
1157
  <td>Change paths passed to listener v3 methods to <code>pathlib.Path</code> instances</td>