Skip to content

Commit 35c9adc

Browse files
committed
Release notes for 4.1rc1
1 parent acc8703 commit 35c9adc

1 file changed

Lines changed: 350 additions & 0 deletions

File tree

‎doc/releasenotes/rf-4.1rc1.rst‎

Lines changed: 350 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,350 @@
1+
=======================================
2+
Robot Framework 4.1 release candidate 1
3+
=======================================
4+
5+
.. default-role:: code
6+
7+
`Robot Framework`_ 4.1 is a new feature release with some nice new features,
8+
such as enhancements to the continue-on-failure mode, as well as bug fixes.
9+
This release candidate contains all planned changes.
10+
11+
All issues targeted for Robot Framework 4.1 can be found
12+
from the `issue tracker milestone`_.
13+
14+
Questions and comments related to the release can be sent to the
15+
`robotframework-users`_ mailing list or to `Robot Framework Slack`_,
16+
and possible bugs submitted to the `issue tracker`_.
17+
18+
If you have pip_ installed, just run
19+
20+
::
21+
22+
pip install --pre --upgrade robotframework
23+
24+
to install the latest available release or use
25+
26+
::
27+
28+
pip install robotframework==4.1rc1
29+
30+
to install exactly this version. Alternatively you can download the source
31+
distribution from PyPI_ and install it manually. For more details and other
32+
installation approaches, see the `installation instructions`_.
33+
34+
Robot Framework 4.1 rc 1 was released on Friday July 9, 2021. The final release
35+
is planned for Monday July 19, 2021.
36+
37+
.. _Robot Framework: http://robotframework.org
38+
.. _Robot Framework Foundation: http://robotframework.org/foundation
39+
.. _pip: http://pip-installer.org
40+
.. _PyPI: https://pypi.python.org/pypi/robotframework
41+
.. _issue tracker milestone: https://github.com/robotframework/robotframework/issues?q=milestone%3Av4.1
42+
.. _issue tracker: https://github.com/robotframework/robotframework/issues
43+
.. _robotframework-users: http://groups.google.com/group/robotframework-users
44+
.. _Robot Framework Slack: https://robotframework-slack-invite.herokuapp.com
45+
.. _installation instructions: ../../INSTALL.rst
46+
47+
48+
.. contents::
49+
:depth: 2
50+
:local:
51+
52+
Most important enhancements
53+
===========================
54+
55+
Continue-on-failure mode can be controlled using tags
56+
-----------------------------------------------------
57+
58+
Robot Framework has for long time had so called "continuable failures" that fail
59+
the test case but allow execution to continue after the failure. Earlier this
60+
functionality could only be enabled by library keywords using special exceptions
61+
and by using BuiltIn keyword `Run Keyword And Continue On Failure`.
62+
63+
Robot Framework 4.1 eases using the continue-on-failure mode on the data level
64+
considerably by allowing tests and keywords to use special tags to initiate it.
65+
The new `robot:continue-on-failure` tag enables the mode so that if any of
66+
the executed keywords fail, next keyword is nevertheless run. This mode does not
67+
propagate to lower level keywords, though, so in them execution stops immediately
68+
and is resumed only on the test or keyword with the special tag. If recursive
69+
usage is desired, it is possible to use another new tag
70+
`robot:recursive-continue-on-failure`. (`#2285`_)
71+
72+
Argument conversion enhancements
73+
--------------------------------
74+
75+
Automatic argument conversion has been improved in few different ways:
76+
77+
- `Derived enumerations`__ `IntEnum` and `IntFlag` are supported. With both
78+
of them it is possible to use enumeration member names as well as their
79+
integer values. (`#3910`_)
80+
81+
- Number conversions (`int`, `float` and `Decimal`) support spaces and
82+
underscores as number separators like `2 000 000`. (`#4026`_)
83+
84+
- Integer conversion supports hexadecimal, octal and binary values using
85+
`0x`, `Oo` and `0b` prefixes, respectively. For example, `0xAA`, `0o252`,
86+
and `0b 1010 1010` are alternative ways to specify integer `170`. (`#3909`_)
87+
88+
__ https://docs.python.org/3/library/enum.html#derived-enumerations
89+
90+
Backwards incompatible changes
91+
==============================
92+
93+
Robot Framework 4.1 is mostly backwards compatible with Robot Framework 4.0.
94+
There are, however, two changes that may affect some users:
95+
96+
- If `--doc` or `--metadata` gets a value that points to an existing file,
97+
the actual value is read from that file, but in earlier releases the value is
98+
the path itself. It is rather unlikely that anyone has used this kind of
99+
documentation, but with metadata paths are possible. If a path to an existing
100+
file should be used as the actual value, the value should get some extra
101+
content to avoid the path to be recognized. Even a single space like
102+
`--metadata "Example: file.txt"` is enough. (`#4008`_)
103+
104+
- String library methods `should_be_uppercase` and `should_be_lowercase` have
105+
been renamed to `should_be_upper_case` and `should_be_lower_case`, respectively.
106+
Due to Robot Framework's keyword matching being underscore insensitive, this
107+
change does not affect normal usage of these keywords. If someone has used
108+
these methods programmatically, they need to update their code. (`#3890`_)
109+
110+
Deprecated features
111+
===================
112+
113+
Python 2 support
114+
----------------
115+
116+
Robot Framework 4.1 is the last release supporting Python 2. Its possible bug
117+
fix releases will still support Python 2 as well, but Robot Framework 5.0 will
118+
require Python 3.6 or newer.
119+
120+
This unfortunately means also the end of Jython__ and IronPython__ support.
121+
Support can be added again if these projects get Python 3.6+ compatible versions
122+
released.
123+
124+
__ https://jython.org
125+
__ https://ironpython.net
126+
127+
Built-in Tidy
128+
-------------
129+
130+
The built-in Tidy tool has been deprecated in favor of the externally developed
131+
and much more powerful RoboTidy__ tool. The built-in Tidy will be removed altogether
132+
in Robot Framework 5.0. (`#4004`_)
133+
134+
__ https://robotidy.readthedocs.io
135+
136+
Acknowledgements
137+
================
138+
139+
Robot Framework 4.1 development has been sponsored by the `Robot Framework Foundation`_
140+
and its `close to 50 member organizations <https://robotframework.org/foundation/#members>`_.
141+
In addition to that, we have got great contributions by the open source community:
142+
143+
- `Oliver Boehmer <https://github.com/oboehmer>`_ added support to control
144+
the continue-on-failure mode using test and keyword tags (`#2285`_).
145+
146+
- `Oliver Schwaneberg <https://github.com/Schwaneberg>`_ enhanced
147+
`Wait Until Keyword Succeeds` to support strict retry interval (`#3209`_).
148+
149+
- `Sergey Tupikov <https://github.com/vokiput>`_ added support to collapse
150+
whitespace with `Should Be Equal` and other comparison keywords (`#3884`_).
151+
152+
- `Mikhail Tuev <https://github.com/miktuy>`_ fix using `--removekeywords` when
153+
test contains IF structure (`#4009`_) and renamed String library methods for
154+
consistency (`#3890`_).
155+
156+
- `Vinay Vennela <https://github.com/vinayvennela>`_ enhanced the dry-run mode
157+
to allow modifying tags using `Set Tags` and `Remove Tags` keywords (`#3985`_).
158+
159+
- `@asonkeri <https://github.com/asonkeri>`_ fixed keyword documentation
160+
scrollbar issues in Libdoc HTML output (`#4012`_).
161+
162+
Huge thanks to all sponsors, contributors and to everyone else who has reported
163+
problems, participated in discussions on various forums, or otherwise helped to make
164+
Robot Framework and its community and ecosystem better.
165+
166+
| `Pekka Klärck <https://github.com/pekkaklarck>`__
167+
| Robot Framework Creator
168+
169+
Full list of fixes and enhancements
170+
===================================
171+
172+
.. list-table::
173+
:header-rows: 1
174+
175+
* - ID
176+
- Type
177+
- Priority
178+
- Summary
179+
- Added
180+
* - `#4009`_
181+
- bug
182+
- high
183+
- Rebot generates invalid output.xml when using `--removekeywords` and there's IF on test case level
184+
- rc 1
185+
* - `#4036`_
186+
- bug
187+
- high
188+
- Log generation fails if using `--expandkeywords` and test contains `ELSE` branch
189+
- rc 1
190+
* - `#2285`_
191+
- enhancement
192+
- high
193+
- Support controlling continue-on-failure mode using test and keyword tags
194+
- rc 1
195+
* - `#3910`_
196+
- enhancement
197+
- high
198+
- Support `IntEnum` and `IntFlag` in automatic argument conversion
199+
- rc 1
200+
* - `#3798`_
201+
- bug
202+
- medium
203+
- Screenshot library prevents graceful termination of execution if wxPython is installed
204+
- rc 1
205+
* - `#3973`_
206+
- bug
207+
- medium
208+
- `--exitonfailure` mode is not initiated if test is failed by listener
209+
- rc 1
210+
* - `#3985`_
211+
- bug
212+
- medium
213+
- Tags set using keywords don't appear in dryrun logs
214+
- rc 1
215+
* - `#3994`_
216+
- bug
217+
- medium
218+
- Skipped tests will have fail status if suite teardown fails
219+
- rc 1
220+
* - `#3996`_
221+
- bug
222+
- medium
223+
- `--exitonfailure` incorrectly initiated if test skipped in teardown
224+
- rc 1
225+
* - `#4012`_
226+
- bug
227+
- medium
228+
- Keyword documentation scrollbar issues in a small browser window
229+
- rc 1
230+
* - `#4030`_
231+
- bug
232+
- medium
233+
- Libdoc stores data type documentation with extra indentation
234+
- rc 1
235+
* - `#4034`_
236+
- bug
237+
- medium
238+
- `@{varargs}` with default value in user keyword arguments not reported as error correctly
239+
- rc 1
240+
* - `#3209`_
241+
- enhancement
242+
- medium
243+
- `Wait Until Keyword Succeeds`: Support retry time with strict interval
244+
- rc 1
245+
* - `#3398`_
246+
- enhancement
247+
- medium
248+
- Execution in teardown should continue after keyword timeout
249+
- rc 1
250+
* - `#3818`_
251+
- enhancement
252+
- medium
253+
- Rebot should not take into account SKIP status when merging results
254+
- rc 1
255+
* - `#3884`_
256+
- enhancement
257+
- medium
258+
- BuiltIn: Support collapsing whitespaces with `Should Be Equal` and other comparison keywords
259+
- rc 1
260+
* - `#3909`_
261+
- enhancement
262+
- medium
263+
- Support binary, octal and hex values in argument conversion with `int` type
264+
- rc 1
265+
* - `#3934`_
266+
- enhancement
267+
- medium
268+
- Remote: Support Unicode characters in range 0-255, not only 0-127, in binary conversion
269+
- rc 1
270+
* - `#3946`_
271+
- enhancement
272+
- medium
273+
- Parser should detect invalid arguments in user keyword definition
274+
- rc 1
275+
* - `#4004`_
276+
- enhancement
277+
- medium
278+
- Deprecate built-in Tidy tool in favor of external Robotidy
279+
- rc 1
280+
* - `#4008`_
281+
- enhancement
282+
- medium
283+
- Support reading `--doc` and `--metadata` from file
284+
- rc 1
285+
* - `#4026`_
286+
- enhancement
287+
- medium
288+
- Support space and underscore as number separators in argument conversion
289+
- rc 1
290+
* - `#4037`_
291+
- enhancement
292+
- medium
293+
- Support `${var}[key]` syntax with lists that allow also key access
294+
- rc 1
295+
* - `#4027`_
296+
- bug
297+
- low
298+
- Wrong error message when test fails in teardown and skip-on-failure is active
299+
- rc 1
300+
* - `#4035`_
301+
- bug
302+
- low
303+
- Log not expanded correctly if all tests are skipped
304+
- rc 1
305+
* - `#3890`_
306+
- enhancement
307+
- low
308+
- String: Rename `should_be_uppercase` to `should_be_upper_case` (and same with `lower`)
309+
- rc 1
310+
* - `#3991`_
311+
- enhancement
312+
- low
313+
- Officially remove support for using using colon (`:`) in Settings section
314+
- rc 1
315+
* - `#4003`_
316+
- enhancement
317+
- low
318+
- Remove outdated information from installation instructions
319+
- rc 1
320+
321+
Altogether 28 issues. View on the `issue tracker <https://github.com/robotframework/robotframework/issues?q=milestone%3Av4.1>`__.
322+
323+
.. _#4009: https://github.com/robotframework/robotframework/issues/4009
324+
.. _#4036: https://github.com/robotframework/robotframework/issues/4036
325+
.. _#2285: https://github.com/robotframework/robotframework/issues/2285
326+
.. _#3910: https://github.com/robotframework/robotframework/issues/3910
327+
.. _#3798: https://github.com/robotframework/robotframework/issues/3798
328+
.. _#3973: https://github.com/robotframework/robotframework/issues/3973
329+
.. _#3985: https://github.com/robotframework/robotframework/issues/3985
330+
.. _#3994: https://github.com/robotframework/robotframework/issues/3994
331+
.. _#3996: https://github.com/robotframework/robotframework/issues/3996
332+
.. _#4012: https://github.com/robotframework/robotframework/issues/4012
333+
.. _#4030: https://github.com/robotframework/robotframework/issues/4030
334+
.. _#4034: https://github.com/robotframework/robotframework/issues/4034
335+
.. _#3209: https://github.com/robotframework/robotframework/issues/3209
336+
.. _#3398: https://github.com/robotframework/robotframework/issues/3398
337+
.. _#3818: https://github.com/robotframework/robotframework/issues/3818
338+
.. _#3884: https://github.com/robotframework/robotframework/issues/3884
339+
.. _#3909: https://github.com/robotframework/robotframework/issues/3909
340+
.. _#3934: https://github.com/robotframework/robotframework/issues/3934
341+
.. _#3946: https://github.com/robotframework/robotframework/issues/3946
342+
.. _#4004: https://github.com/robotframework/robotframework/issues/4004
343+
.. _#4008: https://github.com/robotframework/robotframework/issues/4008
344+
.. _#4026: https://github.com/robotframework/robotframework/issues/4026
345+
.. _#4037: https://github.com/robotframework/robotframework/issues/4037
346+
.. _#4027: https://github.com/robotframework/robotframework/issues/4027
347+
.. _#4035: https://github.com/robotframework/robotframework/issues/4035
348+
.. _#3890: https://github.com/robotframework/robotframework/issues/3890
349+
.. _#3991: https://github.com/robotframework/robotframework/issues/3991
350+
.. _#4003: https://github.com/robotframework/robotframework/issues/4003

0 commit comments

Comments
 (0)