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.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +25 -6
- data/.github/workflows/stale.yml +1 -1
- data/.gitignore +1 -0
- data/CONTRIBUTING.md +12 -0
- data/Gemfile +2 -6
- data/Gemfile.lock +65 -44
- data/HISTORY.md +52 -0
- data/README.md +5 -1
- data/github-markup.gemspec +11 -6
- data/lib/github/commands/rest2html +1 -0
- data/lib/github/markup/markdown.rb +87 -3
- data/lib/github/markup/rdoc.rb +5 -1
- data/lib/github/markup.rb +1 -2
- data/lib/github/markups.rb +10 -10
- data/lib/github-markup.rb +1 -1
- data/test/coverage_test.rb +368 -0
- data/test/fixtures/cat.sh +2 -0
- data/test/fixtures/empty.sh +3 -0
- data/test/markdown_test.rb +96 -0
- data/test/markup_test.rb +11 -9
- data/test/markups/README.asciidoc.html +6 -6
- data/test/markups/README.creole.html +1 -5
- data/test/markups/README.directives.rst.html +2 -2
- data/test/markups/README.litcoffee.html +5 -5
- data/test/markups/README.long.rst.html +220 -362
- data/test/markups/README.mediawiki.html +20 -20
- data/test/markups/README.org.html +30 -39
- data/test/markups/README.pod.html +15 -19
- data/test/markups/README.rdoc.html +4 -7
- data/test/markups/README.rst.html +26 -47
- data/test/markups/README.rst.txt.html +5 -10
- data/test/markups/README.toc.asciidoc.html +10 -12
- data/test/markups/README.toc.rst.html +7 -8
- data/test/test_helper.rb +29 -0
- metadata +51 -30
|
@@ -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="#
|
|
14
|
-
<li><a href="#
|
|
15
|
-
<li><a href="#
|
|
16
|
-
<li><a href="#
|
|
17
|
-
<li><a href="#
|
|
18
|
-
<li><a href="#
|
|
19
|
-
<li><a href="#
|
|
20
|
-
<li><a href="#
|
|
21
|
-
<li><a href="#
|
|
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="#
|
|
27
|
-
<li><a href="#
|
|
28
|
-
<li><a href="#changes-to-
|
|
29
|
-
<li><a href="#changes-to-
|
|
30
|
-
<li><a href="#changes-to-
|
|
31
|
-
<li><a href="#changes-to-
|
|
32
|
-
<li><a href="#
|
|
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="#
|
|
38
|
-
<li><a href="#
|
|
39
|
-
<li><a href="#
|
|
40
|
-
<li><a href="#deprecated-
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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
|
|
93
|
+
print(f"Keyword '{result.full_name}' used on line {data.lineno} started.")
|
|
97
94
|
|
|
98
95
|
|
|
99
96
|
def end_while(data: running.While, result: result.While):
|
|
100
|
-
print(f
|
|
101
|
-
f
|
|
97
|
+
print(f"WHILE loop on line {data.lineno} ended with status {result.status} "
|
|
98
|
+
f"after {len(result.body)} iterations.")
|
|
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
|
|
116
|
-
f
|
|
117
|
-
f
|
|
118
|
-
f
|
|
112
|
+
print(f"Keyword '{implementation.name}' is implemented in library "
|
|
113
|
+
f"'{library.name}' at '{implementation.source}' on line "
|
|
114
|
+
f"{implementation.lineno}. The library has {library.scope.name} "
|
|
115
|
+
f"scope and the current instance is {library.instance}.")
|
|
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
|
|
147
|
+
as listeners, and that has earlier required using <code>self.ROBOT_LIBRARY_LISTENER = 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
|
|
151
|
+
This is especially convenient when using the <code>@library</code> decorator:</p>
|
|
156
152
|
<pre lang="python">
|
|
157
153
|
from robot.api.deco import keyword, library
|
|
158
154
|
|
|
159
155
|
|
|
160
|
-
|
|
156
|
+
@library(listener='SELF')
|
|
161
157
|
class Example:
|
|
162
158
|
|
|
163
159
|
def start_suite(self, data, result):
|
|
164
160
|
...
|
|
165
161
|
|
|
166
|
-
|
|
162
|
+
@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="#
|
|
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
|
|
207
|
+
in the Variables section, it is possible to create also <code>@{list}</code> and <code>&{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
|
|
227
|
+
VAR @{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 > 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="#
|
|
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
|
-
|
|
252
|
+
@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="#
|
|
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="#
|
|
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
|
|
310
|
+
argument accepts <code>Literal[-1, 0, 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
|
|
319
|
+
<code>arg: 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
|
|
327
|
-
</h4>
|
|
321
|
+
<h4>Support "stringified" 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
|
|
325
|
+
errors, but Python type checkers support also "stringified" 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="#
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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
|
<!-- Old format -->
|
|
441
|
-
<msg timestamp
|
|
442
|
-
<status status
|
|
435
|
+
<msg timestamp="20231108 15:36:34.278" level="INFO">Hello world!</msg>
|
|
436
|
+
<status status="PASS" starttime="20231108 15:37:35.046" endtime="20231108 15:37:35.046"/>
|
|
443
437
|
|
|
444
438
|
<!-- New format -->
|
|
445
|
-
<msg time
|
|
446
|
-
<status status
|
|
439
|
+
<msg time="2023-11-08T15:36:34.278343" level="INFO">Hello world!</msg>
|
|
440
|
+
<status status="PASS" start="2023-11-08T15:37:35.046153" elapsed="0.000161"/>
|
|
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><status></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
|
<!-- Old format -->
|
|
467
|
-
<kw name
|
|
468
|
-
<kw name
|
|
461
|
+
<kw name="Log" library="BuiltIn">...</kw>
|
|
462
|
+
<kw name="Number of horses should be" sourcename="Number of ${animals} should be" library="my_resource">...</kw>
|
|
469
463
|
|
|
470
464
|
<!-- New format -->
|
|
471
|
-
<kw name
|
|
472
|
-
<kw name
|
|
465
|
+
<kw name="Log" owner="BuiltIn">...</kw>
|
|
466
|
+
<kw name="Number of horses should be" source_name="Number of ${animals} should be" owner="my_resource">...</kw>
|
|
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="#
|
|
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>
|
|
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>
|
|
524
|
-
<li>
|
|
525
|
-
<code>
|
|
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="#
|
|
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="#
|
|
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><type></code> elements.
|
|
574
556
|
The name is available as the <code>name</code> attribute of <code><type></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="#
|
|
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="#
|
|
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:
|
|
583
|
+
and <code>|</code> occur in unexpected places. For example, <code>arg: "Hello, world!"</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
|
|
592
|
+
<code>arg: ByteString</code> to <code>arg: bytes | 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="#
|
|
604
|
+
<h2><a href="#id132">Deprecations</a></h2>
|
|
626
605
|
<a name="return-setting"></a>
|
|
627
|
-
<h3><a href="#
|
|
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
|
|
608
|
+
been "loudly" deprecated (<a href="https://github.com/robotframework/robotframework/issues/4876">#4876</a>). It has been "silently" 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="#
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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="#
|
|
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=<value></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>
|