|
| 1 | +========================================= |
| 2 | +Robot Framework 3.1.2 release candidate 1 |
| 3 | +========================================= |
| 4 | + |
| 5 | +.. default-role:: code |
| 6 | + |
| 7 | + |
| 8 | +`Robot Framework`_ 3.1.2 is a new minor release with few important bug fixes |
| 9 | +and some nice enhancements. It also contains several minor deprecations related |
| 10 | +to the test data syntax that pave the way towards Robot Framework 3.2 which will |
| 11 | +contain a new test data parser. |
| 12 | + |
| 13 | +Questions and comments related to the release can be sent to the |
| 14 | +`robotframework-users`_ mailing list or to `Robot Framework Slack`_, |
| 15 | +and possible bugs submitted to the `issue tracker`_. |
| 16 | + |
| 17 | +If you have pip_ installed, just run |
| 18 | + |
| 19 | +:: |
| 20 | + |
| 21 | + pip install --pre --upgrade robotframework |
| 22 | + |
| 23 | +to install the latest available release or use |
| 24 | + |
| 25 | +:: |
| 26 | + |
| 27 | + pip install robotframework==3.1.2rc1 |
| 28 | + |
| 29 | +to install exactly this version. Alternatively you can download the source |
| 30 | +distribution from PyPI_ and install it manually. For more details and other |
| 31 | +installation approaches, see the `installation instructions`_. |
| 32 | + |
| 33 | +Robot Framework 3.1.2 rc 1 was released on Thursday May 16, 2019. The final |
| 34 | +release is targeted for Thursday May 23, 2019. |
| 35 | + |
| 36 | +.. _Robot Framework: http://robotframework.org |
| 37 | +.. _pip: http://pip-installer.org |
| 38 | +.. _PyPI: https://pypi.python.org/pypi/robotframework |
| 39 | +.. _issue tracker milestone: https://github.com/robotframework/robotframework/issues?q=milestone%3Av3.1.2 |
| 40 | +.. _issue tracker: https://github.com/robotframework/robotframework/issues |
| 41 | +.. _robotframework-users: http://groups.google.com/group/robotframework-users |
| 42 | +.. _Robot Framework Slack: https://robotframework-slack-invite.herokuapp.com |
| 43 | +.. _installation instructions: ../../INSTALL.rst |
| 44 | +.. _#3076: https://github.com/robotframework/robotframework/issues/3076 |
| 45 | +.. _#3121: https://github.com/robotframework/robotframework/issues/3121 |
| 46 | + |
| 47 | +.. contents:: |
| 48 | + :depth: 2 |
| 49 | + :local: |
| 50 | + |
| 51 | +Most important bug fixes |
| 52 | +======================== |
| 53 | + |
| 54 | +- Creating scalar variables in resource files with custom separator |
| 55 | + (`SEPARATOR=<sep>`) has been fixed. (`#3102`_) |
| 56 | + |
| 57 | +- Using keywords accepting embedded arguments when library is imported multiple |
| 58 | + times with different names using the `WITH NAME` syntax has been fixed. (`#3181`_) |
| 59 | + |
| 60 | +- The Tidy tool both handles new style for loops (`FOR ... END`) correctly and |
| 61 | + converts old style loops (`:FOR ... \ ...`) to new style loops |
| 62 | + automatically. (`#3064`_) |
| 63 | + |
| 64 | +Deprecated features |
| 65 | +=================== |
| 66 | + |
| 67 | +Robot Framework 3.1.2 deprecates some strange features in the test data syntax |
| 68 | +that were found while developing the new test data parser for Robot Framework |
| 69 | +3.2 (`#3076`_). A decision was made that features that make no sense in general |
| 70 | +or would unnecessarily complicate implementation of the new parser are |
| 71 | +deprecated and will not be supported anymore in the future. That includes |
| 72 | +these features: |
| 73 | + |
| 74 | +- Converting non-ASCII spaces to normal spaces during parsing. Accidentally |
| 75 | + typed no-break spaces are most likely to cause warnings, but also they ought |
| 76 | + to be rare. (`#3131`_) |
| 77 | +- Collapsing spaces during parsing. Only affects the pipe separated format. |
| 78 | + (`#3132`_) |
| 79 | +- Creating tests and keywords with name `...`. (`#3105`_) |
| 80 | +- Omitting lines with only `...` except in documentation. (`#3107`_) |
| 81 | +- Escaping leading empty cells with `\` except with for loops. (`#3148`_) |
| 82 | + |
| 83 | +Because the above changes are small, they should not affect many users. The |
| 84 | +reasoning behind changes related to handling spaces is explained in issue `#3121`_. |
| 85 | + |
| 86 | +There are also some features that will be changed in RF 3.2 but they are not |
| 87 | +deprecated: |
| 88 | + |
| 89 | +- In the pipe separated format for loops will require either the new style |
| 90 | + `END` or indentation needs to be escaped with `\`. (`#3108`_) |
| 91 | +- Documentation split into multiple columns will be concatenated with newlines, |
| 92 | + not spaces. (`#3106`_) |
| 93 | + |
| 94 | +Acknowledgements |
| 95 | +================ |
| 96 | + |
| 97 | +There have again been several great contributions by the community: |
| 98 | + |
| 99 | +- Richard Turc (`@yamatoRT <https://github.com/yamatoRT>`__) fixed using |
| 100 | + literal `=` when keyword accepts named-only arguments. (`#3047`_) |
| 101 | + |
| 102 | +- Dinara Aleskarova (`@aleskarovadi <https://github.com/aleskarovadi>`__) |
| 103 | + fixed type conversion in the dry-run mode when arguments contain variables. |
| 104 | + (`#3090`_) |
| 105 | + |
| 106 | +- Maciej Brzozowski (`@mbrzozowski <https://github.com/mbrzozowski>`__) |
| 107 | + added true copy (i.e. `deepcopy`) support to `Copy List` and `Copy Dictionary` |
| 108 | + keywords. (`#2850`_) |
| 109 | + |
| 110 | +- `@MaciejWiczk <https://github.com/MaciejWiczk>`__ implemented functionality |
| 111 | + to disable sorting with `Get Dictionary Keys` and `Get Dictionary Values` |
| 112 | + keywords. (`#3077`_) |
| 113 | + |
| 114 | +- `@MisterChild <https://github.com/MisterChild>`__ fixed the egg. (`#3159`_) |
| 115 | + |
| 116 | +Full list of fixes and enhancements |
| 117 | +=================================== |
| 118 | + |
| 119 | +.. list-table:: |
| 120 | + :header-rows: 1 |
| 121 | + |
| 122 | + * - ID |
| 123 | + - Type |
| 124 | + - Priority |
| 125 | + - Summary |
| 126 | + * - `#3064`_ |
| 127 | + - bug |
| 128 | + - high |
| 129 | + - Tidy doesn't handle new for loop syntax correctly |
| 130 | + * - `#3102`_ |
| 131 | + - bug |
| 132 | + - high |
| 133 | + - Creating scalar variables in resource files with custom separator does not work correctly |
| 134 | + * - `#3181`_ |
| 135 | + - bug |
| 136 | + - high |
| 137 | + - Multiple instances of a library does not work with embedded arguments |
| 138 | + * - `#3047`_ |
| 139 | + - bug |
| 140 | + - medium |
| 141 | + - Literal `=` needs to be escaped if keyword accepts named-only arguments |
| 142 | + * - `#3048`_ |
| 143 | + - bug |
| 144 | + - medium |
| 145 | + - DateTime library documentation missing from releases |
| 146 | + * - `#3062`_ |
| 147 | + - bug |
| 148 | + - medium |
| 149 | + - Regression if keyword uses `BuiltIn.run_keyword` internally to execute user keyword with timeouts and TRACE log level |
| 150 | + * - `#3090`_ |
| 151 | + - bug |
| 152 | + - medium |
| 153 | + - Type conversion fails in dry-run if value contains variable |
| 154 | + * - `#3097`_ |
| 155 | + - bug |
| 156 | + - medium |
| 157 | + - Document that `Create File` and `Append To File` convert `\n` to `\r\n` on Windows starting from RF 3.1 |
| 158 | + * - `#3122`_ |
| 159 | + - bug |
| 160 | + - medium |
| 161 | + - Avoid using deprecated PyYAML API |
| 162 | + * - `#2815`_ |
| 163 | + - enhancement |
| 164 | + - medium |
| 165 | + - `Should Be Equal (As Strings)`: Support formatting values in error messages with `repr` and `ascii` |
| 166 | + * - `#2850`_ |
| 167 | + - enhancement |
| 168 | + - medium |
| 169 | + - Support true copies (i.e. `deepcopy`) with `Copy List` and `Copy Dictionary` |
| 170 | + * - `#3077`_ |
| 171 | + - enhancement |
| 172 | + - medium |
| 173 | + - Allow disabling sorting with `Collections.Get Dictionary Keys/Values` |
| 174 | + * - `#3105`_ |
| 175 | + - enhancement |
| 176 | + - medium |
| 177 | + - Deprecate creating tests and keywords with name `...` |
| 178 | + * - `#3106`_ |
| 179 | + - enhancement |
| 180 | + - medium |
| 181 | + - Document that handling documentation split to multiple columns will change in RF 3.2 |
| 182 | + * - `#3107`_ |
| 183 | + - enhancement |
| 184 | + - medium |
| 185 | + - Deprecate omitting lines with only `...` |
| 186 | + * - `#3108`_ |
| 187 | + - enhancement |
| 188 | + - medium |
| 189 | + - Document that in pipe separated format for loops won't work without `END` or `\` indentation in RF 3.2 |
| 190 | + * - `#3131`_ |
| 191 | + - enhancement |
| 192 | + - medium |
| 193 | + - Deprecate converting non-ASCII spaces to normal spaces during parsing |
| 194 | + * - `#3132`_ |
| 195 | + - enhancement |
| 196 | + - medium |
| 197 | + - Deprecate collapsing spaces during parsing |
| 198 | + * - `#3148`_ |
| 199 | + - enhancement |
| 200 | + - medium |
| 201 | + - Deprecate escaping leading empty cells with `\` |
| 202 | + * - `#3164`_ |
| 203 | + - enhancement |
| 204 | + - medium |
| 205 | + - `Log`: Support formatting message with `ascii` in addition to `repr` |
| 206 | + * - `#3052`_ |
| 207 | + - bug |
| 208 | + - low |
| 209 | + - Syntax introduced in v3.1 not correctly highlighted in User Guide |
| 210 | + * - `#3135`_ |
| 211 | + - bug |
| 212 | + - low |
| 213 | + - Links to demo projects in User Guide are broken |
| 214 | + * - `#3159`_ |
| 215 | + - bug |
| 216 | + - low |
| 217 | + - Easter is coming but the egg is broken |
| 218 | + * - `#3160`_ |
| 219 | + - bug |
| 220 | + - low |
| 221 | + - `Should Be Equal (As Strings)` doesn't handle multiline strings with different line endings well |
| 222 | + * - `#3168`_ |
| 223 | + - bug |
| 224 | + - low |
| 225 | + - `Log` and elsewhere: `repr` of long strings cut on Python 3 |
| 226 | + * - `#3169`_ |
| 227 | + - bug |
| 228 | + - low |
| 229 | + - Collections: `Dictionary Should Contain Item` and some other kws have confusing documentation related to `values` |
| 230 | + * - `#3034`_ |
| 231 | + - enhancement |
| 232 | + - low |
| 233 | + - Enhance error message when no test matches `--test`, `--include` or `--exclude` |
| 234 | + * - `#3098`_ |
| 235 | + - enhancement |
| 236 | + - low |
| 237 | + - Document that `Create Dictionary` returns custom `DotDict` and `Convert To Dictionary` can convert it to normal `dict` |
| 238 | + * - `#3125`_ |
| 239 | + - enhancement |
| 240 | + - low |
| 241 | + - Make resolving `ConnectionCache` alias into public API |
| 242 | + * - `#3150`_ |
| 243 | + - enhancement |
| 244 | + - low |
| 245 | + - Show first logical test/suite documentation line on console |
| 246 | + * - `#3156`_ |
| 247 | + - enhancement |
| 248 | + - low |
| 249 | + - Support native encoding with `Append To File` |
| 250 | + * - `#3172`_ |
| 251 | + - enhancement |
| 252 | + - low |
| 253 | + - Update PyYAML included in standalone jar to v5.1 |
| 254 | + * - `#3178`_ |
| 255 | + - enhancement |
| 256 | + - low |
| 257 | + - Rephrase confusing "Data source does not exist." error |
| 258 | + |
| 259 | +Altogether 33 issues. View on the `issue tracker <https://github.com/robotframework/robotframework/issues?q=milestone%3Av3.1.2>`__. |
| 260 | + |
| 261 | +.. _#3064: https://github.com/robotframework/robotframework/issues/3064 |
| 262 | +.. _#3102: https://github.com/robotframework/robotframework/issues/3102 |
| 263 | +.. _#3181: https://github.com/robotframework/robotframework/issues/3181 |
| 264 | +.. _#3047: https://github.com/robotframework/robotframework/issues/3047 |
| 265 | +.. _#3048: https://github.com/robotframework/robotframework/issues/3048 |
| 266 | +.. _#3062: https://github.com/robotframework/robotframework/issues/3062 |
| 267 | +.. _#3090: https://github.com/robotframework/robotframework/issues/3090 |
| 268 | +.. _#3097: https://github.com/robotframework/robotframework/issues/3097 |
| 269 | +.. _#3122: https://github.com/robotframework/robotframework/issues/3122 |
| 270 | +.. _#2815: https://github.com/robotframework/robotframework/issues/2815 |
| 271 | +.. _#2850: https://github.com/robotframework/robotframework/issues/2850 |
| 272 | +.. _#3077: https://github.com/robotframework/robotframework/issues/3077 |
| 273 | +.. _#3105: https://github.com/robotframework/robotframework/issues/3105 |
| 274 | +.. _#3106: https://github.com/robotframework/robotframework/issues/3106 |
| 275 | +.. _#3107: https://github.com/robotframework/robotframework/issues/3107 |
| 276 | +.. _#3108: https://github.com/robotframework/robotframework/issues/3108 |
| 277 | +.. _#3131: https://github.com/robotframework/robotframework/issues/3131 |
| 278 | +.. _#3132: https://github.com/robotframework/robotframework/issues/3132 |
| 279 | +.. _#3148: https://github.com/robotframework/robotframework/issues/3148 |
| 280 | +.. _#3164: https://github.com/robotframework/robotframework/issues/3164 |
| 281 | +.. _#3052: https://github.com/robotframework/robotframework/issues/3052 |
| 282 | +.. _#3135: https://github.com/robotframework/robotframework/issues/3135 |
| 283 | +.. _#3159: https://github.com/robotframework/robotframework/issues/3159 |
| 284 | +.. _#3160: https://github.com/robotframework/robotframework/issues/3160 |
| 285 | +.. _#3168: https://github.com/robotframework/robotframework/issues/3168 |
| 286 | +.. _#3169: https://github.com/robotframework/robotframework/issues/3169 |
| 287 | +.. _#3034: https://github.com/robotframework/robotframework/issues/3034 |
| 288 | +.. _#3098: https://github.com/robotframework/robotframework/issues/3098 |
| 289 | +.. _#3125: https://github.com/robotframework/robotframework/issues/3125 |
| 290 | +.. _#3150: https://github.com/robotframework/robotframework/issues/3150 |
| 291 | +.. _#3156: https://github.com/robotframework/robotframework/issues/3156 |
| 292 | +.. _#3172: https://github.com/robotframework/robotframework/issues/3172 |
| 293 | +.. _#3178: https://github.com/robotframework/robotframework/issues/3178 |
0 commit comments