From 41f23df2df31148b4217cc564bdac6891a47523f Mon Sep 17 00:00:00 2001 From: Snooz82 Date: Fri, 15 Mar 2024 00:42:00 +0000 Subject: [PATCH] scheduled milestones and stars update --- livedata/milestones.js | 2 +- livedata/stars.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/livedata/milestones.js b/livedata/milestones.js index d7e2248e..8479b81a 100644 --- a/livedata/milestones.js +++ b/livedata/milestones.js @@ -1 +1 @@ -[{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null,"issues":{"total_count":20,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4987","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/events","html_url":"https://github.com/robotframework/robotframework/issues/4987","id":2050371400,"node_id":"I_kwDOAUSaQ856Ni9I","number":4987,"title":"Do not continue after failures inside TRY blocks in teardowns","user":{"login":"tminakov","id":7096186,"node_id":"MDQ6VXNlcjcwOTYxODY=","avatar_url":"https://avatars.githubusercontent.com/u/7096186?v=4","gravatar_id":"","url":"https://api.github.com/users/tminakov","html_url":"https://github.com/tminakov","followers_url":"https://api.github.com/users/tminakov/followers","following_url":"https://api.github.com/users/tminakov/following{/other_user}","gists_url":"https://api.github.com/users/tminakov/gists{/gist_id}","starred_url":"https://api.github.com/users/tminakov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tminakov/subscriptions","organizations_url":"https://api.github.com/users/tminakov/orgs","repos_url":"https://api.github.com/users/tminakov/repos","events_url":"https://api.github.com/users/tminakov/events{/privacy}","received_events_url":"https://api.github.com/users/tminakov/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2023-12-20T11:31:49Z","updated_at":"2023-12-20T16:10:15Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"When a keyword is ran within a teardown (case or suite) all operations inside a TRY block are executed even if there is an exception.\r\n\r\nConsidering this sample keyword:\r\n```\r\nMy Keyword\r\n [Arguments] ${condition}\r\n\r\n TRY\r\n IF $condition Fail failing text\r\n Do Operation\r\n EXCEPT AS ${exception}\r\n Fail ${exception}\r\n END\r\n```\r\n\r\nIf it's called within a normal context (case) and the condition is met, `Do Operation` will not be executed; but if it's in a teardown, `Do Operation` is still ran.\r\n\r\nThis behavior is inline with the expectations set with teardowns - that all calls inside them (and inner for called keywords) are executed, in attempt to clean up the environment.\r\n \r\nStill I'd like to nominate the TRY/EXCEPT blocks for different behavior - when there's an exception in a TRY to halt further calls and fall back to the EXCEPT and FINALLY calls. This will allow the usage of exception handling as normal flow control (like in python), and clear workarounds like the one below.\r\n\r\nThe workaround I'm normally using is to have bogus `RETURN` statements (or huge embedded IF blocks); for instance in the same example:\r\n\r\n```\r\nMy Keyword\r\n [Arguments] ${condition}\r\n\r\n IF $condition \r\n Fail failing text\r\n RETURN # just so the next lines are not executed in teardown\r\n END\r\n Do Operation\r\n```\r\n\r\nFor a couple of checks that's ok, but when there are more failure conditions (esp later in the flow - like depending on storage data), this gets ugly:\r\n\r\n```\r\n\r\n IF $condition \r\n Fail failing text\r\n RETURN # just so the next lines are not executed in teardown\r\n END\r\n ${check}= Do Check In SQL\r\n IF not $check \r\n Fail check failed\r\n RETURN # just so the next lines are not executed in teardown\r\n END\r\n # etc\r\n```\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4914","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/events","html_url":"https://github.com/robotframework/robotframework/issues/4914","id":1963840069,"node_id":"I_kwDOAUSaQ851DdJF","number":4914,"title":"Enhance token types used by parsing model","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2023-10-26T15:34:56Z","updated_at":"2023-10-26T15:34:57Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"On the lowest level the parsing model consists of tokens having different types. For most parts types are fine, but we have identified few issues with them. We should go them through and do at least the following:\r\n\r\n1. When assigning variables, we sometimes use the type `VARIABLE` and sometimes `ASSIGN`. Issue #4708 proposed changing the type used with FOR and EXCEPT AS variables from `VARIABLE` to `ASSIGN` to be consistent with variables created from keyword return values. This change was already done during the RF 7.0 development, but it was reverted because it turned out we still used `VARIABLE` with variables created in the Variables section and with the new VAR syntax and i wasn't possible to change also these types in RF 7.0. We need to check all places where variables are created and see can we use a common type in all cases and what that type would be.\r\n\r\n2. We currently use the type `ARGUMENT` with too many different tokens. For example, we use it with IF and WHILE conditions and with variable values in the Variables section and with the VAR syntax. This means that if we wanted to support conditional variable assignment like `VAR ${x} IF $cond y ELSE z` both `$cont` and `y` would have the `ARGUMENT` type. This in turn would make it unnecessarily hard to find the condition and value tokens. It's not certain is this kind of conditional variable assignment a good idea in general, but we should nevertheless change the token types so that implementation is possible. We could, for example, introduce a new `CONDITION` type to be used with all conditions.\r\n\r\n3. `RETURN` should be changed to mean the RETURN statement, not [Return] setting.\r\n\r\n4. There are some deprecated and unused token types we can remove. This includes `WITH_NAME`, `FORCE_TAGS`, `FATAL_ERROR`, `FATAL_INVALID_HEADER` and `RETURN_SETTING`.\r\n\r\n5. We should in general go through the token types and see do they make sense. The idea is to do a proper cleanup once and then try to keep the types stable.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4858","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/events","html_url":"https://github.com/robotframework/robotframework/issues/4858","id":1885309238,"node_id":"I_kwDOAUSaQ85wX4k2","number":4858,"title":"Remove support for singular section headers","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2023-09-07T07:47:27Z","updated_at":"2023-09-07T07:47:27Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Singular section headers were deprecated in RF 6.0 (#4431) and started to emit actual deprecation warnings in RF 7.0 (#4432). The earliest release we can remove their support for good is RF 8.0. If that's considered too early and we want to give users more time to update their data, removal can be postponed to RF 9.0.\r\n\r\nFor reasons why we decided to remove the support for singular headers see #4431.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4774","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/events","html_url":"https://github.com/robotframework/robotframework/issues/4774","id":1724264584,"node_id":"I_kwDOAUSaQ85mxjCI","number":4774,"title":"Failed imports should fail suite they belong to","user":{"login":"JonasSchares","id":103201810,"node_id":"U_kgDOBia8Eg","avatar_url":"https://avatars.githubusercontent.com/u/103201810?v=4","gravatar_id":"","url":"https://api.github.com/users/JonasSchares","html_url":"https://github.com/JonasSchares","followers_url":"https://api.github.com/users/JonasSchares/followers","following_url":"https://api.github.com/users/JonasSchares/following{/other_user}","gists_url":"https://api.github.com/users/JonasSchares/gists{/gist_id}","starred_url":"https://api.github.com/users/JonasSchares/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JonasSchares/subscriptions","organizations_url":"https://api.github.com/users/JonasSchares/orgs","repos_url":"https://api.github.com/users/JonasSchares/repos","events_url":"https://api.github.com/users/JonasSchares/events{/privacy}","received_events_url":"https://api.github.com/users/JonasSchares/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2023-05-24T15:29:23Z","updated_at":"2023-10-18T18:37:14Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"We encountered follwoing scenario while using a custom library: (RF 6.0, Python 3.10.8)\r\nWhen the initialization of the custom library fails, the test execution is continued until the first keyword provided by that library is used. The result is a rather misleading \"No keyword with name 'XY' found.\".\r\n\r\nHere is a minimal example:\r\nExampleLib.py:\r\n```python\r\nclass ExampleLib:\r\n ROBOT_LIBRARY_SCOPE = 'SUITE'\r\n ROBOT_LISTENER_API_VERSION = 3\r\n\r\n def __init__(self):\r\n # do init stuff\r\n raise Exception(\"something bad happened while doing init stuff\")\r\n\r\n def sayHello(self):\r\n return \"Hello World\"\r\n```\r\n\r\nExample.robot:\r\n```robot\r\n*** Settings ***\r\nLibrary ExampleLib.py\r\n\r\n*** Test Cases ***\r\nTest SayHello\r\n ${res} = Set Variable \"This is a String\"\r\n ${res} = sayHello\r\n Log To Console ${res}\r\n```\r\n\r\nResult:\r\n![Result](https://github.com/robotframework/robotframework/assets/103201810/6b577e36-61c7-41cd-a359-e4e7d181f01a)\r\n\r\nIt would be great to have the possibility to stop the test execution from within the custom libraries constructor.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4686","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/events","html_url":"https://github.com/robotframework/robotframework/issues/4686","id":1622470583,"node_id":"I_kwDOAUSaQ85gtO-3","number":4686,"title":"Change default `FOR IN ZIP` mode from `SHORTEST` to `STRICT`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2023-03-13T23:45:29Z","updated_at":"2023-08-28T08:59:57Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"RF 6.1 made it possible to configure what to do if lengths of lists iterated using `FOR IN ZIP` are different (#4682). The old default behavior to silently ignore items in longer lists (i.e. `SHORTEST` mode) was preserved, but the plan is to deprecate it in RF 7.0 (#4685). In RF 8 we can then change the default so that lengths must match (i.e. `STRICT` mode). The main motivation is avoiding false positives. See #4682 for mode details.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4674","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/events","html_url":"https://github.com/robotframework/robotframework/issues/4674","id":1613542507,"node_id":"I_kwDOAUSaQ85gLLRr","number":4674,"title":"Support variables in format `$var` in addition to `${var}`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430421,"node_id":"MDU6TGFiZWwxMTA0MzA0MjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20critical","name":"priority: critical","color":"00441b","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":23,"created_at":"2023-03-07T14:07:35Z","updated_at":"2024-02-15T13:28:12Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Curly braces required by Robot's variable syntax can be considered somewhat distracting and even ugly. Depending on the keyboard layout, writing them can also require annoying finger acrobatics. It would thus be convenient if it would be possible to use `$var` instead of `${var}` and also `@list`, `&dict` and `%env` instead of `@{list}`, `&{dict}` and `%{env}`. For example, all these could be supported:\r\n\r\n```\r\n*** Variables ***\r\n$VARIABLE value\r\n\r\n*** Test Cases ***\r\nExample\r\n Log $VARIABLE\r\n $var = Keyword\r\n FOR $item IN @stuff\r\n Log $item\r\n END\r\n```\r\n\r\nIn all the above cases the `$var` syntax is used on its own and that would work fine. This syntax wouldn't work too well when embedded to a string, though. For example, if you have variables `$name` and `$named`, string `Hello, $name!` could be parsed like `Hello, ${name}!`, but `abc$named` could be either `abc${name}d` or `abc${named}`. We could require using the `${var}` syntax in cases where `$var` is ambiguous, that's how [shell scripts](https://learn-bash.org/variables.html) work, but I believe it's better to require it always when variables are embedded. That makes the syntax more consistent and this approach is also considerably easier to implement. We can, however, look at this again later if the `$var` syntax is universally considered better and using it always (when possible) is considered important.\r\n\r\nSupporting the `$var` syntax would be a backwards incompatible change, but if we support it only when variables are used on their own, it shouldn't be that bad. It would mean that all arguments starting with `$`, `@`, `&` and `%` would need to be escaped like `\\$not_var`. We already require this with `#` (which otherwise starts a comment) so there's precedence for such syntax. Nevertheless, this would break lot of tests/tasks and the change can be made only in a major version. It would also be a good idea to deprecate using arguments starting with these characters already earlier. If this enhancement is considered important, it could be added in RF 7.0 and deprecation added in RF 6.2 or possibly already in RF 6.1.\r\n\r\nAlthough the basic syntax would be simple, there are some design decision to be made:\r\n\r\n1. Should we limit variable base name to only alpha numeric characters and underscore? In other words, should something like `$! als lkjas` be considered a variable with base name `! als lkjat` or should the whole thing be considered a literal string? Being more strict with the variable name would mean there's less need for escaping, but then these variables would work inconsistently compared to \"normal\" variables. It would also mean that some built-in variables like `${/}` couldn't be used like `$/`. I got a feeling that it's better if we don't limit the name. \r\n2. Should this syntax support item access like `$list[0]` and `$dict[key][nested]`? I believe it should.\r\n3. Should this syntax support \"extended variable syntax\" like `$var.upper()` and `$SPACE * 10`? I don't have too strong opinion on this, but I guess it would be better to support it. Needing to use `${var.upper()}` in this case would be a bit strange and inconsistent.\r\n\r\nI'll add this issue tentatively to RF 7.0 scope, but we still need to make a bit more official decision about it. If we decide to include it, then another issue should be submitted about deprecating arguments starting with `$` and other such variable meta characters.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/reactions","total_count":9,"+1":5,"-1":3,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":1},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4537","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/events","html_url":"https://github.com/robotframework/robotframework/issues/4537","id":1451842501,"node_id":"I_kwDOAUSaQ85WiVvF","number":4537,"title":"Support creating variables that are not logged even on TRACE level","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2022-11-16T15:48:54Z","updated_at":"2023-08-25T13:19:37Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Often in automation we need to use passwords or other values that should not be logged. To help with that, various libraries have keywords that avoid logging given values even though their keywords normally do that. For example, SeleniumLibrary has `Input Password` that doesn't log the password and also temporarily disables Robot's logging to avoid the password being logged by the underlying Selenium on DEBUG level. This works fine otherwise, but if tests are run with `--loglevel TRACE`, Robot anyway logs all argument values and the password will be visible. Browser's `Fill Secret` tries to avoid that problem by requiring the value to be passed using a special `$var` syntax so that Robot won't log the actual variable value. Unfortunately that doesn't work if the value is passed to `Fill Secret` via a user keyword and only that keyword uses the `$var` syntax like in the following example:\r\n\r\n```robotframework\r\n*** Variables ***\r\n${PASSWORD} secret\r\n\r\n*** Test Cases ***\r\nExample\r\n Keyword ${PASSWORD} # This value is logged on TRACE level\r\n\r\n*** Keywords ***\r\nKeyword\r\n [Arguments] ${pwd}\r\n Fill Secret selector $pwd\r\n```\r\n\r\nTo make it easier to use values that should not be logged, I propose we add new variable syntax `*{var}` to create \"secret variables\". The syntax could be used when creating variables in the Variables section, when creating local variables based on keyword return values, and with `Set Global/Suite/Test/Local Variable` keywords. The syntax would be only used for creating variables, they would be used normally like `${var}`:\r\n\r\n```robotframework\r\n*** Variables ***\r\n*{PASSWORD} secret\r\n\r\n*** Test Cases ***\r\nExample\r\n Keyword ${PASSWORD}\r\n *{local} = Another keyword\r\n Keyword ${local}\r\n\r\n*** Keywords ***\r\nKeyword\r\n [Arguments] ${pwd}\r\n Fill Secret selector ${pwd}\r\n```\r\n\r\nTechnically the `*{var}` assignment would create a custom object with this kind of implementation:\r\n\r\n```python\r\nclass Secret:\r\n def __init__(self, value, name=None):\r\n self.value = value\r\n self.name = name\r\n def __str__(self):\r\n return f'' if self.name else ''\r\n```\r\n\r\nThese objects would be used when the variable is passed from tests to user keywords and from user keywords to other user keywords. The real value would, however, be passed to library keywords so they would get values normally and wouldn't need to be changed to benefit from this new syntax.\r\n\r\nAlthough this new syntax would work with existing keywords, we should make it possible for library keywords to require arguments to be \"secret\". That's basically what `Fill Secret` does but this new syntax would avoid the problem that the value can be logged on higher level. A convenient way to support this would be type hints:\r\n\r\n```python\r\nfrom robot.api.secrets import Secret\r\n\r\ndef example(secret: Secret):\r\n ...\r\n```\r\n\r\nThis would work so that Robot would validate that the used value is a `Secret` and fail if it's not. I believe we should pass the real value, not the actual `Secret` object, to the underlying keyword also in this case. That can confuse type checkers but keywords can use [typing.cast](https://docs.python.org/3/library/typing.html#typing.cast) if that's a problem. To support normal type conversion, we should also allow parameterizing the type hint like `Secret[int]`.\r\n\r\nKeywords could also return secret values simply by returning `Secret` instances:\r\n\r\n```python\r\nfrom robot.api.secrets import Secret\r\n\r\ndef example():\r\n return Secret('value')\r\n```\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4478","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/events","html_url":"https://github.com/robotframework/robotframework/issues/4478","id":1385930204,"node_id":"I_kwDOAUSaQ85Sm53c","number":4478,"title":"Simpler syntax to create lists, dicts, and other collections as arguments to keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2022-09-26T11:43:47Z","updated_at":"2023-08-25T11:33:26Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Robot's automatic argument conversion (#2890) makes it possible to have a keywords like\r\n```python\r\ndef accept_list(arg: list):\r\n ...\r\n\r\ndef accept_dict(arg: dict):\r\n ...\r\n```\r\nand call them so that argument are Python literals\r\n```\r\nAccept List ['list', 'items', 'here']\r\nAccept Dict {'key': 'value', 'another': 'item'}\r\n```\r\n\r\nThis is pretty convenient, but needing to use Python syntax is a bit ugly in general and especially annoying when using embedded arguments that are supposed to enhance readability:\r\n```\r\nSelect animals ['cat', 'dog'] from list\r\n```\r\n\r\nI propose we enhance argument conversion so that we support also the following syntax:\r\n```\r\nAccept List list, items, here\r\nAccept Dict key=value, another=item\r\n```\r\n\r\nThe high level semantics would be as follows:\r\n\r\n- Separator between items is a comma _and_ a space. This allows using commas in values like `first, second,with,commas, third`. Having a comma followed by a space in the value wouldn't be possible.\r\n- We could allow using a semicolon and a space as an alternative separator. In that case we'd use the separator that's encountered first. This would allow usages like `first; second, with, commas followed by spaces; third`.\r\n- With dictionaries the separator between key and value is `=`. This is the syntax we use also when creating `&{dict}` variables.\r\n- Values are considered strings by default. This can be changed by using generics (#4433) and `TypedDict` (#4477).\r\n- Because this would be handled by type convertors, variables would have been resolved already earlier. That means that something like `${1}, ${2}` wouldn't create a list of integers. See the above point for alternatives.\r\n- Also escapes are handled before type conversion. That makes it impossible to use something like `first, second\\,with\\,commas` for escaping commas in values.\r\n\r\nThis enhancement would ease using collections a lot especially if #4433 and #4477 are implemented. If we agree above semantics are fine, implementation would also be pretty easy. I thus add this to RF 5.1 scope even though the release is already late.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4472","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/events","html_url":"https://github.com/robotframework/robotframework/issues/4472","id":1379984865,"node_id":"I_kwDOAUSaQ85SQOXh","number":4472,"title":"Allow resource files and libraries to be imported privately in other resource files","user":{"login":"BCGST","id":105816460,"node_id":"U_kgDOBk6hjA","avatar_url":"https://avatars.githubusercontent.com/u/105816460?v=4","gravatar_id":"","url":"https://api.github.com/users/BCGST","html_url":"https://github.com/BCGST","followers_url":"https://api.github.com/users/BCGST/followers","following_url":"https://api.github.com/users/BCGST/following{/other_user}","gists_url":"https://api.github.com/users/BCGST/gists{/gist_id}","starred_url":"https://api.github.com/users/BCGST/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BCGST/subscriptions","organizations_url":"https://api.github.com/users/BCGST/orgs","repos_url":"https://api.github.com/users/BCGST/repos","events_url":"https://api.github.com/users/BCGST/events{/privacy}","received_events_url":"https://api.github.com/users/BCGST/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972226383,"node_id":"LA_kwDOAUSaQ88AAAABKF4nTw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20extra%20large","name":"effort: extra large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2022-09-20T20:55:41Z","updated_at":"2023-08-25T11:29:42Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"It could be beneficial if users could import resource files and libraries in a \"private\" way. Currently, resource files are imported in a sort of recursive way where you have access to all keywords that resource file imports as well, as described in the user guide [here](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#resource-files). This can be unhelpful when you are abstracting a library or resource such that other contributors should not make direct calls to the underlying libraries.\r\n\r\nThis was especially important to me on a recent project where I was refactoring a test suite to be able choose whether to run with Browser library or SeleniumLibrary to compare their pros and cons. You could pick which browser control to use but writing a test that made direct keyword calls to the opposite library would cause that control to crash out. Using an abstracted resource file allows you to pick which library to use on the fly, however with recursive importation, a contributor could still mistakenly call a non-abstracted keyword from one or the other library and cause the opposing library crash the test when they reach the unexpected keyword.\r\n\r\nIn more biased terms, private importation of libraries and resources feels like a much more familiar mode for project structure for me given that is how python seems to handle resource/library importation.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4395","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/events","html_url":"https://github.com/robotframework/robotframework/issues/4395","id":1300958594,"node_id":"I_kwDOAUSaQ85Niw2C","number":4395,"title":"Give local keywords in resource files precedence over keywords in test case files","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2022-07-11T16:39:30Z","updated_at":"2023-11-30T12:10:25Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Currently if you have a test case file like\r\n\r\n```robotframework\r\n*** Settings ***\r\nResource example.resource\r\n\r\n*** Test Cases ***\r\nExample\r\n Keyword 1\r\n\r\n*** Keywords ***\r\nKeyword 2\r\n Log Keyword in test case file\r\n```\r\n\r\nand the imported resource file contains\r\n\r\n```robotframework\r\n*** Keywords ***\r\nKeyword 1\r\n Keyword 2\r\n \r\nKeyword 2\r\n Log Keyword in resource file\r\n```\r\n\r\nthe `Keyword 2` keyword that ends up being called by `Keyword 1` is from the test case file. This is rather strange and it would be more logical if the keyword from the same resource file as `Keyword 1` would be used.\r\n\r\nThis behavior was deprecated in RF 6.0 when local keywords were given precedence over imported keywords with same name (#4366).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4365","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/events","html_url":"https://github.com/robotframework/robotframework/issues/4365","id":1271120015,"node_id":"I_kwDOAUSaQ85Lw8CP","number":4365,"title":"Rename `Force Tags` to `Test Tags` and remove `Default Tags`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":15,"created_at":"2022-06-14T17:22:50Z","updated_at":"2023-11-09T11:09:59Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"We currently have three settings for controlling tags tests get:\r\n\r\n- `Force Tags` in the Settings section for specifying tags tests will unconditionally get.\r\n- `Default Tags` in the Settings sections for specifying tags tests get, in addition to the forced tags, unless tests themselves have tags.\r\n- `[Tags]` with each tests to specify tags they get in addition to the forced tags. These also override the default tags.\r\n\r\nThis is rather complicated and my understanding is that all three settings are rarely used. I propose we simplify this so that in the future we'd only have two settings:\r\n\r\n- `Test Tags` in the Settings section to specify tags tests always get. Same as `Force Tags` nowadays.\r\n- `[Tags]` with each test to specify tags tests get in addition to the `Test Tags`.\r\n\r\nThe functional difference compared to the current behavior is that there wouldn't be a possibility to specify tags tests get by default but that they could override when needed. For example, something like this wouldn't be possible anymore:\r\n\r\n```robotframework\r\n*** Settings ***\r\nForce Tags all have\r\nDefault Tags most have\r\n\r\n*** Test Cases ***\r\nT1\r\n No Operation\r\nT2\r\n [Tags] only one has\r\n No Operation\r\nT3\r\n No Operation\r\n```\r\n\r\nInstead of using `Default Tags` that some tests override, all tests that actually need these tags must list them explicitly. The change wouldn't be overly big and I actually like this better:\r\n\r\n```robotframework\r\n*** Settings ***\r\nTest Tags all have\r\n\r\n*** Test Cases ***\r\nT1\r\n [Tags] most have\r\n No Operation\r\nT2\r\n [Tags] only one has\r\n No Operation\r\nT3\r\n [Tags] most have\r\n No Operation\r\n```\r\n\r\nThis change is obviously backwards incompatible and cannot be done without a deprecation period. I propose we do it like this:\r\n- In RF 5.1 add `Test Tags` that basically acts as an alias for `Force Tags`. Also document that `Test Tags` and `[Tags]` are the way forward.\r\n- In RF 6.0 deprecate `Force Tags` and `Default Tags`.\r\n- In RF 7.0 remove `Force Tags` and `Default Tags`.\r\n\r\nThis is currently only a proposal and comments are welcome! If you just want to indicate your opinion, you can add :+1: or :-1: reaction to this description.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/reactions","total_count":14,"+1":13,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4252","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/events","html_url":"https://github.com/robotframework/robotframework/issues/4252","id":1160040268,"node_id":"I_kwDOAUSaQ85FJM9M","number":4252,"title":"Support nested keywords with library keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2022-03-04T20:49:53Z","updated_at":"2023-09-29T13:36:58Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Library keywords can execute methods freely, but methods aren't shown in the log file as child keywords. For example,\r\n\r\n```python\r\ndef do_something():\r\n do_first_thing('example')\r\n do_second_thing()\r\n```\r\nwill in the log file be shown as a single keyword without any child keywords. It is possible to use `BuiltIn.run_keyword` to execute other keywords so that they are shown as child keywords and #4237 discusses better APIs for that usage.\r\n\r\nA problem with using `BuiltIn.run_keyword` is that keywords executed with it must be available as normal keywords either in the library running other keywords or in some other imported library. That's ok if keywords are usable on their own, but it is possible that child keywords cannot be used like that. This problem can be avoided by making it possible to run any callable as the [final proposal](https://github.com/robotframework/robotframework/issues/4237#issuecomment-1058077142) in #4237 suggests. There could, however, be even better solutions for the underlying need.\r\n\r\nA solution I have been thinking is is using a context manager that would create a keyword in log (and in output.xml). We probably could use our existing `robot.running.Keyword` for that purpose. The usage could be something like this:\r\n\r\n```python\r\ndef do_something():\r\n with Keyword('Do first thing', args=['example'], doc='Example'):\r\n do_first_thing()\r\n with Keyword('Do second thing'):\r\n print('No need to call a method, implementation can be directly inside the context manager!')\r\n```\r\n\r\nThese are the main benefits of this approach compared to `BuitlIn.run_keyword` would be:\r\n1. No need to expose child keywords as real keywords.\r\n2. No need to even make each child keyword a callable. Implementation could be directly inside the context manager.\r\n3. It would be possible to add documentation, tags, etc. to be shown in the log file.\r\n\r\nPoints 1. and 3. would be possible also with `execute_keyword` proposed in #4237. Executing other keywords has also other use cases than logging child keywords, so #4237 is likely needed anyway. It's not certain is 2. alone worth enough to implement this feature. Possibly using a context manager could result with cleaner code, though.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4237","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/events","html_url":"https://github.com/robotframework/robotframework/issues/4237","id":1140704583,"node_id":"I_kwDOAUSaQ85D_cVH","number":4237,"title":"Better API for library keywords to execute other keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2022-02-16T23:50:50Z","updated_at":"2023-08-25T11:29:11Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"It is a relatively common need for library keywords to be able to run other keywords. One good example is SeleniumLibrary, that makes it possible to register a keyword that will be executed if any of its own keywords fails. Sometimes, especially when doing task automation, it is also beneficial to log actions done by the keyword in the log file separately. For example,\r\n\r\n```python\r\ndef do_something():\r\n do_first_thing()\r\n do_second_thing()\r\n```\r\nwill in the log file be shown as a single keyword without any child keywords, but there are sometimes needs to show `do_first_thing` and `do_second_thing` as child keywords.\r\n\r\nNowadays keywords can execute other keywords by using `BuiltIn.run_keyword`. It works but has several problems:\r\n\r\n1. Arguments are resolved twice. This means replacing variables and handling syntax like `\\n`. For example, if we have a keyword like\r\n ```python\r\n def example(arg):\r\n BuiltIn().run_keyword('Log To Console', arg)\r\n ```\r\n and call it like\r\n ```\r\n Example c:\\\\temp\r\n ```\r\n the actually logged string has a tab character. The reason is that `\\\\t` is first resolved to string `\\t` which is then on the second round resolved to a tab.\r\n\r\n Double resolving can be avoided be registering the keyword to be a \"run keyword variant\", but that API isn't really public and it's also pretty bad in general. We have #2190 about enhancing it and making it public, but it would probably be better to avoid this double resolving altogether.\r\n\r\n2. Related to above, the keyword using `BuiltIn.run_keyword` cannot safely call it without escaping strings. For example, something like `BuiltIn.run_keyword('Log To Console', 'c:\\\\temp')` won't work correctly and the argument should be `c:\\\\\\\\temp` instead.\r\n\r\n3. `BuiltIn.run_keyword` only accepts positional arguments. For example, if we had a keyword implemented like\r\n ```pyhton\r\n def example(upper=False):\r\n ...\r\n ```\r\n we couldn't call it like `BuiltIn.run_keyword('Example', upper=True)` but instead needed to use `BuiltIn.run_keywod('Example', 'upper=True')`.\r\n\r\nThe above examples ought to make it clear that a better API is needed. I have some ideas how to API could look and will write separate comments about that a bit later.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/reactions","total_count":2,"+1":2,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4170","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/events","html_url":"https://github.com/robotframework/robotframework/issues/4170","id":1080815625,"node_id":"I_kwDOAUSaQ85Aa_AJ","number":4170,"title":"Tests that are not run due to earlier fatal error should get SKIP status, not FAIL","user":{"login":"dgalezow","id":48494061,"node_id":"MDQ6VXNlcjQ4NDk0MDYx","avatar_url":"https://avatars.githubusercontent.com/u/48494061?v=4","gravatar_id":"","url":"https://api.github.com/users/dgalezow","html_url":"https://github.com/dgalezow","followers_url":"https://api.github.com/users/dgalezow/followers","following_url":"https://api.github.com/users/dgalezow/following{/other_user}","gists_url":"https://api.github.com/users/dgalezow/gists{/gist_id}","starred_url":"https://api.github.com/users/dgalezow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgalezow/subscriptions","organizations_url":"https://api.github.com/users/dgalezow/orgs","repos_url":"https://api.github.com/users/dgalezow/repos","events_url":"https://api.github.com/users/dgalezow/events{/privacy}","received_events_url":"https://api.github.com/users/dgalezow/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2021-12-15T09:50:03Z","updated_at":"2023-10-18T18:36:51Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"With the implementation of SKIP status, it makes more sense to mark Test Cases that were not even started as SKIP instead of FAIL\r\n\r\nAs @pekkaklarck mentioned on slack it would be good to implement this for all ways to gracefully stop execution like \r\nFatal Error keyword\r\n--exitonfailure","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4069","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/events","html_url":"https://github.com/robotframework/robotframework/issues/4069","id":980011349,"node_id":"MDU6SXNzdWU5ODAwMTEzNDk=","number":4069,"title":"Variables acting as embedded arguments are not checked against regular expression","user":{"login":"MoreFamed","id":82573620,"node_id":"MDQ6VXNlcjgyNTczNjIw","avatar_url":"https://avatars.githubusercontent.com/u/82573620?v=4","gravatar_id":"","url":"https://api.github.com/users/MoreFamed","html_url":"https://github.com/MoreFamed","followers_url":"https://api.github.com/users/MoreFamed/followers","following_url":"https://api.github.com/users/MoreFamed/following{/other_user}","gists_url":"https://api.github.com/users/MoreFamed/gists{/gist_id}","starred_url":"https://api.github.com/users/MoreFamed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MoreFamed/subscriptions","organizations_url":"https://api.github.com/users/MoreFamed/orgs","repos_url":"https://api.github.com/users/MoreFamed/repos","events_url":"https://api.github.com/users/MoreFamed/events{/privacy}","received_events_url":"https://api.github.com/users/MoreFamed/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":15,"created_at":"2021-08-26T09:06:07Z","updated_at":"2023-08-28T11:54:16Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Hi, I came across strange behaviour of RF regarding embedded arguments. I have keyword\r\n```\r\nPerform ${arg:[^ ]+}\r\n Log To Console ${arg}\r\n```\r\nIn other words, the argument cannot contain any space. Then, `Perform abcd` passes, as it contains no space. `Perform ab cd` fails with _No keyword with name 'Perform ab cd' found_, since it does contain a space. So far so good. But when I set the value with space to a variable and give it to the keyword: `${a} Set Variable ab cd` and `Perform ${a}`, the keyword surprisingly passes (and logs _ab cd_). I expect it to fail as if in case when the non-matching value was given to the keyword directly.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/timeline","performed_via_github_app":null,"state_reason":"reopened","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3423","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/events","html_url":"https://github.com/robotframework/robotframework/issues/3423","id":541348081,"node_id":"MDU6SXNzdWU1NDEzNDgwODE=","number":3423,"title":"Possibility to use output.json in addition to output.xml","user":{"login":"teaglebuilt","id":18645015,"node_id":"MDQ6VXNlcjE4NjQ1MDE1","avatar_url":"https://avatars.githubusercontent.com/u/18645015?v=4","gravatar_id":"","url":"https://api.github.com/users/teaglebuilt","html_url":"https://github.com/teaglebuilt","followers_url":"https://api.github.com/users/teaglebuilt/followers","following_url":"https://api.github.com/users/teaglebuilt/following{/other_user}","gists_url":"https://api.github.com/users/teaglebuilt/gists{/gist_id}","starred_url":"https://api.github.com/users/teaglebuilt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/teaglebuilt/subscriptions","organizations_url":"https://api.github.com/users/teaglebuilt/orgs","repos_url":"https://api.github.com/users/teaglebuilt/repos","events_url":"https://api.github.com/users/teaglebuilt/events{/privacy}","received_events_url":"https://api.github.com/users/teaglebuilt/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":47,"created_at":"2019-12-21T17:04:23Z","updated_at":"2023-12-18T21:58:49Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Problem:\r\n\r\nPrefer to use a NOSQL database to store test reports. NOSQL databases typically require json format because its a relational database.\r\n\r\nSolution:\r\n\r\nProvide robotframework with the ability to use json rather than xml in the output file. \r\n\r\nFor example:\r\n\r\n```\r\n # flag --output\r\n robot --output output.json ./tests\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3278","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/events","html_url":"https://github.com/robotframework/robotframework/issues/3278","id":484420789,"node_id":"MDU6SXNzdWU0ODQ0MjA3ODk=","number":3278,"title":"Variable type conversion","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":14,"created_at":"2019-08-23T09:13:40Z","updated_at":"2024-02-04T13:50:32Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"RF 3.1 added automatic argument conversion with library keywords using function annotations (#2890), default values (#2932), and some other means. That has worked very well, and it would be nice if something like that would work also with variables defined in test data. We probably could re-use the underlying argument conversion logic which ought to make it relatively easy to implement this. We also got a similar request related to variables passed from the command line #2946.\r\n\r\nAutomatically converting numbers like `42` and `3.14` to actual integers/floats would be handy, even when we already support them as variables like `${42}` and `${3.14}`. Being able to use datatime objects, bytes, and other types supported by the argument conversion that don't have direct variable alternatives would naturally be even more useful (but also less commonly needed). I would expect this to be most useful with lists and dictionaries and especially with nested list and dicts that cannot easily be constructed in Robot's data.\r\n\r\nMy proposed syntax for this functionality is supporting \"type postfix\" like `:int` in variable names like this:\r\n\r\n```robotframework\r\n*** Variables ***\r\n${COUNT:int} 42\r\n${GOOD IDEA:bool} Yes # Converted to Boolean True\r\n${ANIMALS:list} ['cat', 'dog', 'horse'] # Python syntax\r\n${NESTED:dict} {'a': 1, 'b': [{'x': 2}, {'x': 3}]} # Great with JSON\r\n```\r\n\r\nThis syntax is derived from Python's function annotation syntax and also the same syntax that was decided to be used with command line variables in #2946. Created variable names would naturally omit the type suffix and look like `${COUNT}` and `${GOOD IDEA}`.\r\n\r\nIn addition to being available in the variable section, the new syntax should also be available also when creating variable otherwise, including in keyword arguments:\r\n\r\n```robotframework\r\n*** Keywords ***\r\nExample\r\n [Arguments] ${count:int}\r\n ${nested:dict} = Set Variable {'a': ${count}, 'b': [{'x': 2}, {'x': 3}]}\r\n Set Test Variable ${DATE:datetime} 2019-08-23 12:03:42\r\n```\r\n\r\nThere are some design decision still to be made like should `${X:dict}` create a `DotDict` instance that allows `${X.key}` syntax and how to handle possible backwards incompatibility issues. For most parts the design looks pretty good, though, and I think this would be a valuable addition to Robot Framework. If there's enough interest, we can consider adding this already to RF 3.2 scope. To show your interest, vote with :+1: or :-1: and/or add comments.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/reactions","total_count":9,"+1":9,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3187","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/events","html_url":"https://github.com/robotframework/robotframework/issues/3187","id":444834531,"node_id":"MDU6SXNzdWU0NDQ4MzQ1MzE=","number":3187,"title":"Inline keyword call syntax","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":50,"created_at":"2019-05-16T08:58:20Z","updated_at":"2024-03-13T12:11:41Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Having inline keyword call syntax would be nice. It would allow using keywords in places where currently you'd normally just have plain strings (or variables). Example usages are listed below and possible syntax alternatives discussed in separate comments.\r\n\r\n1. Arguments to other keywords. At the moment you need to this in two steps:\r\n\r\n ```\r\n ${result} = Keyword argument\r\n Another Keyword ${result}\r\n ```\r\n\r\n In Python and other \"real\" programming languages you use something like `another_keyword(keyword('argument'))`, but in Robot's syntax\r\n\r\n ```\r\n Another Keyword Keyword argument\r\n ```\r\n is parsed as `Another Keyword` getting two arguments. This cannot be changed so new syntax is needed.\r\n\r\n2. Condition to the forthcoming `IF/ELSE` syntax (#3074). Currently (well, in the future once IF/ELSE is supported), you need to use:\r\n ```\r\n ${status} = Keyword\r\n IF ${status}\r\n Another Keyword\r\n END\r\n ```\r\n and\r\n ```\r\n IF Keyword\r\n Another Keyword\r\n END\r\n ```\r\n would be parsed as `Keyword` being the expression to evaluate.\r\n\r\n3. Similarly existing FOR loops would benefit from this.\r\n\r\n4. Inline keyword call syntax would also allow adding support to create variables in the `Variables` section based on keyword return values. Currently that's not possible at all, and creating suite level variables dynamically requires using Suite Setup. Being able to do something like this is a pretty common request:\r\n\r\n ```\r\n *** Variables ***\r\n ${EXAMPLE} = Keyword argument\r\n ```\r\n\r\nThe hardest thing related to this issue is coming up with a good syntax. I've been thinking about this for some time and have some ideas but no clear candidate I like best. I'll explain these ideas in separate comments below. :+1: and :-1: reactions, comments and other syntax ideas are all highly appreciated!","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/reactions","total_count":4,"+1":3,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":1},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2581","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/events","html_url":"https://github.com/robotframework/robotframework/issues/2581","id":222661777,"node_id":"MDU6SXNzdWUyMjI2NjE3Nzc=","number":2581,"title":"Scope of keywords called in resource files is globally reinterpreted when resource file is imported","user":{"login":"jesuspv","id":407695,"node_id":"MDQ6VXNlcjQwNzY5NQ==","avatar_url":"https://avatars.githubusercontent.com/u/407695?v=4","gravatar_id":"","url":"https://api.github.com/users/jesuspv","html_url":"https://github.com/jesuspv","followers_url":"https://api.github.com/users/jesuspv/followers","following_url":"https://api.github.com/users/jesuspv/following{/other_user}","gists_url":"https://api.github.com/users/jesuspv/gists{/gist_id}","starred_url":"https://api.github.com/users/jesuspv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jesuspv/subscriptions","organizations_url":"https://api.github.com/users/jesuspv/orgs","repos_url":"https://api.github.com/users/jesuspv/repos","events_url":"https://api.github.com/users/jesuspv/events{/privacy}","received_events_url":"https://api.github.com/users/jesuspv/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972226383,"node_id":"LA_kwDOAUSaQ88AAAABKF4nTw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20extra%20large","name":"effort: extra large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2017-04-19T08:39:15Z","updated_at":"2023-08-25T11:25:37Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Given the following files (one for a test case and two for resources):\r\n\r\n```\r\n$ cat cases/case.robot\r\n*** Settings ***\r\n\r\nResource rc/SSHClient.robot\r\nResource rc/TelnetClient.robot\r\n\r\n*** Test Cases ***\r\n\r\nMy Test Case\r\n SSHClient.Log On\r\n TelnetClient.Log On\r\n\r\n SSHClient.Log Off\r\n TelnetClient.Log Off\r\n```\r\n```\r\n$ cat rc/SSHClient.robot\r\n*** Variables ***\r\n\r\n${SERVER_IP} 1.2.3.4\r\n${SERVER_USER} guest\r\n${SERVER_PASSWORD} guest\r\n\r\n*** Settings ***\r\n\r\nLibrary SSHLibrary\r\n\r\n*** Keywords ***\r\n\r\nLog On\r\n Open Connection ${SERVER_IP}\r\n Login ${SERVER_USER} ${SERVER_PASSWORD}\r\n\r\nLog Off\r\n Close Connection\r\n```\r\n```\r\n$ cat rc/TelnetClient.robot\r\n*** Variables ***\r\n\r\n${SERVER_IP} 1.2.3.4\r\n${SERVER_USER} guest\r\n${SERVER_PASSWORD} guest\r\n\r\n*** Settings ***\r\n\r\nLibrary Telnet\r\n\r\n*** Keywords ***\r\n\r\nLog On\r\n Open Connection ${SERVER_IP}\r\n Login ${SERVER_USER} ${SERVER_PASSWORD}\r\n ... login_prompt=Username:\r\n ... password_prompt=Password:\r\n\r\nLog Off\r\n Close Connection\r\n```\r\n\r\nWhen running case.robot this kind of warning appears:\r\n\r\n```\r\n[ WARN ] Keyword 'Open Connection' found both from a custom test library 'SSHLibrary' and a standard library 'Telnet'. The custom keyword is used. To select explicitly, and to get rid of this warning, use either 'SSHLibrary.Open Connection' or 'Telnet.Open Connection'.\r\n[ WARN ] Keyword 'Login' found both from a custom test library 'SSHLibrary' and a standard library 'Telnet'. The custom keyword is used. To select explicitly, and to get rid of this warning, use either 'SSHLibrary.Login' or 'Telnet.Login'.\r\nMy Test Case\r\n```\r\n\r\nwhich seems to force us to prefix keywords in the resource files with the library name, even when they have imported only one library (with no name collision in the resource-file scope).\r\n\r\nShould not be the scope of keywords called in resource files determined locally to the resource file? (at least, when they can be resolved in the resource-file scope as when we have been explicitly imported the corresponding library)\r\n\r\nP.S.: I know that it is intended that keywords can be resolved at runtime to allow dynamically decide the implementation (I do not remember where I read about that behaviour though). However, this seems to hamper Robot framework keywords reusability, forcing us to work around by prefixing keywords, renaming them (globally unique...!), or implementing these keywords in a .py file (to be imported via Library). Please, you can also consult [this resource example](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#example-resource-file) in the official user guide for additional evidences on how misleading is the current non-local scope resolution.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2190","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/events","html_url":"https://github.com/robotframework/robotframework/issues/2190","id":114558284,"node_id":"MDU6SXNzdWUxMTQ1NTgyODQ=","number":2190,"title":"Clean-up semi-public API to register \"run keyword variants\" and to disable variable resolving in arguments","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2023-12-20T16:09:30Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2015-11-02T09:32:51Z","updated_at":"2023-11-14T14:01:02Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Robot has a mechanism to disable resolving variables in arguments using `robot.libraries.BuiltIn.register_run_keyword` method. This also makes the method so called \"run keyword variant\" which slightly changes the logic how the keyword is executed. This whole system is a mess that needs to be cleaned up. At least the following things need to be considered:\n1. Separate mechanism to disable resolving variables from arguments. Could possibly be part of `robot.api.deco.keyword`. Should then also have an API to resolve arguments if needed.\n2. Investigate could the whole \"run keyword variant\" system be removed from the public API or, preferably, altogether.\n3. If we cannot remove \"run keyword variant\" system, we need to deprecate/remove the functionality to register keywords by using function/method. That system doesn't work in Python 3 currently and trying to fix it is not worth the effort.\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/timeline","performed_via_github_app":null,"state_reason":null,"score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null,"issues":{"total_count":11,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5077","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/events","html_url":"https://github.com/robotframework/robotframework/issues/5077","id":2179729004,"node_id":"I_kwDOAUSaQ86B7AZs","number":5077,"title":"VAR syntax doesn't log the variable value like \"Set * Variable\" did","user":{"login":"apallier","id":7916922,"node_id":"MDQ6VXNlcjc5MTY5MjI=","avatar_url":"https://avatars.githubusercontent.com/u/7916922?v=4","gravatar_id":"","url":"https://api.github.com/users/apallier","html_url":"https://github.com/apallier","followers_url":"https://api.github.com/users/apallier/followers","following_url":"https://api.github.com/users/apallier/following{/other_user}","gists_url":"https://api.github.com/users/apallier/gists{/gist_id}","starred_url":"https://api.github.com/users/apallier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apallier/subscriptions","organizations_url":"https://api.github.com/users/apallier/orgs","repos_url":"https://api.github.com/users/apallier/repos","events_url":"https://api.github.com/users/apallier/events{/privacy}","received_events_url":"https://api.github.com/users/apallier/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2024-03-11T17:25:23Z","updated_at":"2024-03-12T12:48:43Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"The new `VAR` syntax introduced in RF7 doesn't log the variable value.\r\n\r\nThe `Set * Variable` keywords (like: `Set Variable`, `Set Test Variable`, `Set Suite Variable`, ...) automatically log the variable value and this is a nice behavior. Isn't it? :)\r\n\r\nIf the `VAR` syntax is intended to replace `Set * Variable` keywords, it would be great if the VAR syntax also performed the same logging.\r\n\r\nCode example:\r\n\r\n```robotframework\r\n*** Variables ***\r\n${VARIABLE} ${1}\r\n${VARIABLE_2} ${2}\r\n\r\n*** Test Cases ***\r\nTest With Set Variable\r\n ${local_variable}= Set Variable ${3}\r\n Set Test Variable ${VARIABLE}\r\n Set Suite Variable ${VARIABLE_2}\r\n\r\nTest With VAR Syntax\r\n VAR ${local_variable}= ${2}\r\n VAR ${VARIABLE} ${VARIABLE} scope=TEST\r\n VAR ${VARIABLE_2} ${VARIABLE_2} scope=SUITE\r\n```\r\n\r\nLog result:\r\n\r\n![image](https://github.com/robotframework/robotframework/assets/7916922/965756b2-1281-4cb6-a887-334aa219c863)\r\n\r\n\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/reactions","total_count":5,"+1":4,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5060","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/events","html_url":"https://github.com/robotframework/robotframework/issues/5060","id":2146929611,"node_id":"I_kwDOAUSaQ85_94vL","number":5060,"title":"VAR ${var} scope=SUITE does not support children argument","user":{"login":"kstine","id":9166025,"node_id":"MDQ6VXNlcjkxNjYwMjU=","avatar_url":"https://avatars.githubusercontent.com/u/9166025?v=4","gravatar_id":"","url":"https://api.github.com/users/kstine","html_url":"https://github.com/kstine","followers_url":"https://api.github.com/users/kstine/followers","following_url":"https://api.github.com/users/kstine/following{/other_user}","gists_url":"https://api.github.com/users/kstine/gists{/gist_id}","starred_url":"https://api.github.com/users/kstine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kstine/subscriptions","organizations_url":"https://api.github.com/users/kstine/orgs","repos_url":"https://api.github.com/users/kstine/repos","events_url":"https://api.github.com/users/kstine/events{/privacy}","received_events_url":"https://api.github.com/users/kstine/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2024-02-21T14:43:42Z","updated_at":"2024-02-24T16:24:52Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"The current VAR syntax does not support the children argument offered by the `Set Suite Variable` Keyword.\r\n\r\nhttps://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Set%20Suite%20Variable\r\n\r\n```\r\nSet Suite Variable ${SUITE_VAR} I can be used by child suites. children=True\r\n```\r\n\r\n\r\nSyntax like this should be possible:\r\n\r\n```\r\nVAR ${SUITE_VAR} I should be usable by child suites. scope=SUITE children=True\r\n```\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5010","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/events","html_url":"https://github.com/robotframework/robotframework/issues/5010","id":2076383859,"node_id":"I_kwDOAUSaQ857wxpz","number":5010,"title":"EncodingWarning(s) when running robot code if PYTHONWARNDEFAULTENCODING is set.","user":{"login":"rasjani","id":27887,"node_id":"MDQ6VXNlcjI3ODg3","avatar_url":"https://avatars.githubusercontent.com/u/27887?v=4","gravatar_id":"","url":"https://api.github.com/users/rasjani","html_url":"https://github.com/rasjani","followers_url":"https://api.github.com/users/rasjani/followers","following_url":"https://api.github.com/users/rasjani/following{/other_user}","gists_url":"https://api.github.com/users/rasjani/gists{/gist_id}","starred_url":"https://api.github.com/users/rasjani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rasjani/subscriptions","organizations_url":"https://api.github.com/users/rasjani/orgs","repos_url":"https://api.github.com/users/rasjani/repos","events_url":"https://api.github.com/users/rasjani/events{/privacy}","received_events_url":"https://api.github.com/users/rasjani/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2024-01-11T11:40:05Z","updated_at":"2024-01-11T13:36:19Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"If environment variable PYTHONWARNDEFAULTENCODING is set (and at least when running on MacOS), `_get_python_system_encoding()` from `robot/utils/encodingsniffer.py` in triggers following warning;\r\n\r\n```\r\n/Users/rasjani/src/duunit/energy-meter/venv/lib/python3.11/site-packages/robot/utils/encodingsniffer.py:59: EncodingWarning: UTF-8 Mode affects locale.getpreferredencoding(). Consider locale.getencoding() instead.\r\n return locale.getpreferredencoding(False)\r\n```\r\n\r\nIn this example, all i did was `import Browser` in the python repl. \r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5008","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/events","html_url":"https://github.com/robotframework/robotframework/issues/5008","id":2074853820,"node_id":"I_kwDOAUSaQ857q8G8","number":5008,"title":"Add library, resource file and variable file import related methods to listener version 3","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2024-01-10T17:32:53Z","updated_at":"2024-01-10T17:32:54Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Listener version 3 was initially implemented in RF 3.0 (#1208). It didn't have `start/end_keyword` methods nor methods related to library, resource file and variable file imports because implementing them would have been too big task. It finally got keyword and control structure related methods in RF 7.0 (#3296), but it still lacks methods related to library, resource file and variable file imports.\r\n\r\nListener version 2 has methods `library_import`, `resource_import` and `variables_import`, and we probably should use same name with listener version 3 as well. With listener version 2 all these methods the name of the imported thing and a dictionary containing other information as arguments. With listener version 3 we want to pass the real model objects instead similarly as we do with `start/end` methods. Listeners should be able to modify at least resource files but preferably also libraries and variable files.\r\n\r\nThe good news is that implementing `start/end_keyword` methods required refactoring also library and resource file related model objects and they both ought to be in good enough shape to be used directly. With variable files we don't have such a good model object yet, but creating one shouldn't be too complicated. If it turns out to be hard, just adding methods for libraries and resource files and delaying adding methods for variable files is fine as well.\r\n\r\nI consider this pretty high priority because after that listener version 3 can handle everything that listener version 2 can.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4959","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/events","html_url":"https://github.com/robotframework/robotframework/issues/4959","id":2011430668,"node_id":"I_kwDOAUSaQ8534_8M","number":4959,"title":"Recognize library class from module regadless its name if it is decorated with the `@library` decorator","user":{"login":"jnhyperion","id":20297196,"node_id":"MDQ6VXNlcjIwMjk3MTk2","avatar_url":"https://avatars.githubusercontent.com/u/20297196?v=4","gravatar_id":"","url":"https://api.github.com/users/jnhyperion","html_url":"https://github.com/jnhyperion","followers_url":"https://api.github.com/users/jnhyperion/followers","following_url":"https://api.github.com/users/jnhyperion/following{/other_user}","gists_url":"https://api.github.com/users/jnhyperion/gists{/gist_id}","starred_url":"https://api.github.com/users/jnhyperion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnhyperion/subscriptions","organizations_url":"https://api.github.com/users/jnhyperion/orgs","repos_url":"https://api.github.com/users/jnhyperion/repos","events_url":"https://api.github.com/users/jnhyperion/events{/privacy}","received_events_url":"https://api.github.com/users/jnhyperion/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2023-11-27T03:48:18Z","updated_at":"2023-12-19T11:44:39Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"project structure:\r\n``` shell\r\nmy_module\r\n sub_module\r\n lib.py\r\n __init__.py\r\n __init__.py\r\ntest.robot\r\n```\r\n`lib.py`\r\n``` python\r\nfrom robot.api.deco import library, keyword\r\n\r\n@library(scope=\"GLOBAL\")\r\nclass lib:\r\n\r\n @keyword\r\n def my_py_kw(self):\r\n print(\"foo\")\r\n```\r\n\r\n`test.robot`\r\n``` robot\r\n*** Settings ***\r\nLibrary my_module.sub_module.lib\r\n\r\n*** Test Cases ***\r\nexample\r\n my py kw\r\n```\r\n\r\nwhen I change the lib class from `class lib` to `class Foo`, the kw `my_py_kw ` will not be recognized anymore.\r\n\r\nI think once I used the deco `@library` for a lib class, robot should use this deco to detect lib class instead of only using the name.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4931","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/events","html_url":"https://github.com/robotframework/robotframework/issues/4931","id":1979643968,"node_id":"I_kwDOAUSaQ851_vhA","number":4931,"title":"Collapse long failure messages in log and report","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2023-11-06T17:11:28Z","updated_at":"2023-11-13T13:46:26Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Currently long failure messages (over 40 lines by default, configurable with `--max-error-lines` (#2576)) are cut from the middle. This is done to avoid huge messages messing up logs and reports, but the problem is that some valuable information may be lost. Another issue is that even the resulting messages are somewhat long and take lot of space.\r\n\r\nThe above is an old problem, but the situation is getting worse in RF 7.0 due failure messages being shown not only with tests,but also with each keyword and control structure. Earlier keywords and control structures in the result model didn't have a message at all, but it was added as part of the result model cleanup (#4883). The motivation was this:\r\n- We are adding JSON representation to the result model (#4847) and want the model to be as stable and future-proof as possible.\r\n- We likely want to in the future allow running individual keywords outside Robot core. At that point we want the result model to have a message, not only status as earlier.\r\n- In some special cases (at least with `--flatten-keywords` and `--remove-keywords`) we want to add some extra notes to result objects. Earlier we used documentation for that, but it was odd because control structures such as FOR loops cannot otherwise have a documentation. Using the message for this purpose works much better.\r\n\r\nNow that also keywords and control structures also have a message, the same message can be shown on multiple levels in the log file. That's rather annoying in general, but gets especially irritating if the message is long. To mitigate this issue, and to fix the old issue with long messages, I propose we do the following:\r\n\r\n1. Show only the beginning of long failure messages in log and report by default. I believe we should show so much that typical messages are shown fully, but considerably less than 40 lines that is the current maximum. We could possibly also show more with tests than with keywords and control structures.\r\n2. Have some way to show the full message. Probably a simple \"Show more.\" button/link would be fine.\r\n3. Stop cutting long messages otherwise. This can increase output file sizes, but I doubt the difference is too big.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4909","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/events","html_url":"https://github.com/robotframework/robotframework/issues/4909","id":1957912135,"node_id":"I_kwDOAUSaQ850s15H","number":4909,"title":"Deprecate using arguments starting with `$`, `@`, `&` and `%` as literal values","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":121827221,"node_id":"MDU6TGFiZWwxMjE4MjcyMjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/deprecation","name":"deprecation","color":"fef2c0","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2023-10-23T19:49:44Z","updated_at":"2024-02-12T13:26:58Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"We are planning to support `$var` syntax in addition to ´${var}` in the future (#4674). The plan was to do that already in RF 7.0, but it turned out that this would be too badly backwards incompatible. Probably the biggest problem would be that the Browser library accepts passwords in format `$secret` and resolves the variable value internally to avoid the value being logged automatically. After the planned change `$secret`, would be considered exactly the same as `${secret}` meaning that a confidential value could leak.\r\n\r\nWe still believe that supporting the `$var` syntax is a good idea, but we need to first deprecate using values starting with `$` or any other variable identifier. That means that using, for example,\r\n```\r\nLog Many $value @another\r\n```\r\nwill cause a deprecation warning and the value needs to be escaped like\r\n```\r\nLog Many \\$value \\@another\r\n```\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/reactions","total_count":2,"+1":1,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4853","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/events","html_url":"https://github.com/robotframework/robotframework/issues/4853","id":1878983584,"node_id":"I_kwDOAUSaQ85v_wOg","number":4853,"title":"`--exitonerror` should cause a non-zero exit code","user":{"login":"DetachHead","id":57028336,"node_id":"MDQ6VXNlcjU3MDI4MzM2","avatar_url":"https://avatars.githubusercontent.com/u/57028336?v=4","gravatar_id":"","url":"https://api.github.com/users/DetachHead","html_url":"https://github.com/DetachHead","followers_url":"https://api.github.com/users/DetachHead/followers","following_url":"https://api.github.com/users/DetachHead/following{/other_user}","gists_url":"https://api.github.com/users/DetachHead/gists{/gist_id}","starred_url":"https://api.github.com/users/DetachHead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DetachHead/subscriptions","organizations_url":"https://api.github.com/users/DetachHead/orgs","repos_url":"https://api.github.com/users/DetachHead/repos","events_url":"https://api.github.com/users/DetachHead/events{/privacy}","received_events_url":"https://api.github.com/users/DetachHead/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2023-09-03T08:01:27Z","updated_at":"2023-12-19T23:16:43Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"currently it only fails remaining tests if an error occurs, but if for example an error occurs in a listener's `end_test` method, the test will have already passed and the exit code will be 0 if there are no more tests to run","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4821","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/events","html_url":"https://github.com/robotframework/robotframework/issues/4821","id":1805952528,"node_id":"I_kwDOAUSaQ85rpKYQ","number":4821,"title":"Format String keyword needs escaping of equals sign (=)","user":{"login":"rrajpuro","id":46111665,"node_id":"MDQ6VXNlcjQ2MTExNjY1","avatar_url":"https://avatars.githubusercontent.com/u/46111665?v=4","gravatar_id":"","url":"https://api.github.com/users/rrajpuro","html_url":"https://github.com/rrajpuro","followers_url":"https://api.github.com/users/rrajpuro/followers","following_url":"https://api.github.com/users/rrajpuro/following{/other_user}","gists_url":"https://api.github.com/users/rrajpuro/gists{/gist_id}","starred_url":"https://api.github.com/users/rrajpuro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrajpuro/subscriptions","organizations_url":"https://api.github.com/users/rrajpuro/orgs","repos_url":"https://api.github.com/users/rrajpuro/repos","events_url":"https://api.github.com/users/rrajpuro/events{/privacy}","received_events_url":"https://api.github.com/users/rrajpuro/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2023-07-15T07:32:01Z","updated_at":"2023-12-19T23:54:23Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"The Format String keyword from BuiltIn String Library needs escaping of equals sign (=). Is this behaviour expected?\r\n\r\n_Robot Framework REPL_\r\n```\r\n>>> Format String [text()=\"{}\"] TESTING\r\nERROR Keyword 'String.Format String' got positional argument after named arguments.\r\n>>>\r\n>>> Format String [text()\\=\"{}\"] TESTING\r\n[text()=\"TESTING\"]\r\n```\r\n_Python REPL_\r\n```\r\n>>> '[text()=\"{}\"]'.format('TESTING')\r\n'[text()=\"TESTING\"]'\r\n>>>\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4304","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/events","html_url":"https://github.com/robotframework/robotframework/issues/4304","id":1196078189,"node_id":"I_kwDOAUSaQ85HSrRt","number":4304,"title":"New technology for Libdoc HTML outputs","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430421,"node_id":"MDU6TGFiZWwxMTA0MzA0MjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20critical","name":"priority: critical","color":"00441b","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2022-04-07T13:47:55Z","updated_at":"2023-08-25T11:28:15Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Libdoc HTML outputs, similarly as log.html and report.html, use [jQuery Templates](https://github.com/BorisMoore/jquery-tmpl) for generating HTML content based on the date embedded to the outputs when they are created by Libdoc. In practice there's [libdoc.html](https://github.com/robotframework/robotframework/tree/master/src/robot/htmldata/libdoc) file that contains template code as well as JavaScript. It also uses external styles and some external JavaScript files used also by Rebot.\r\n\r\nThe explained setup has worked fine for us, but there's a problem that jQuery Templates have been unmaintained for years. We need to find a replacement for it and at the same time we should enhance our HTML/JavaScript setup in general. At least the following tasks should be done:\r\n\r\n- [ ] Find a replacement for jQuery Templates. We could use its successor [JsRender](https://www.jsviews.com/) or some totally new technology like [Svelte](https://svelte.dev).\r\n- [ ] Separate JavaScript code from HTML templates as much as possible.\r\n- [ ] Add tests for JavaScript model code. A precondition is deciding what test tool(s) to use.\r\n- [ ] Set up GitHub actions to run JavaScript tests.\r\n- [ ] Decide and document JavaScript coding conventions. Using an automated code formatter could be a good idea.\r\n- [ ] Take localization into account. See #3676.\r\n- [ ] Take accessibility into account. See #3879.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3473","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/events","html_url":"https://github.com/robotframework/robotframework/issues/3473","id":567598691,"node_id":"MDU6SXNzdWU1Njc1OTg2OTE=","number":3473,"title":"Support controlling listener priority","user":{"login":"ElColmo","id":7458310,"node_id":"MDQ6VXNlcjc0NTgzMTA=","avatar_url":"https://avatars.githubusercontent.com/u/7458310?v=4","gravatar_id":"","url":"https://api.github.com/users/ElColmo","html_url":"https://github.com/ElColmo","followers_url":"https://api.github.com/users/ElColmo/followers","following_url":"https://api.github.com/users/ElColmo/following{/other_user}","gists_url":"https://api.github.com/users/ElColmo/gists{/gist_id}","starred_url":"https://api.github.com/users/ElColmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElColmo/subscriptions","organizations_url":"https://api.github.com/users/ElColmo/orgs","repos_url":"https://api.github.com/users/ElColmo/repos","events_url":"https://api.github.com/users/ElColmo/events{/privacy}","received_events_url":"https://api.github.com/users/ElColmo/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2020-02-19T14:14:19Z","updated_at":"2023-10-18T18:38:09Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"I'm on RobotFramework 3.1.2 on Linux.\r\n\r\nI have a Library (MyLibrary) with a built-in listener, implemented via {code}self.ROBOT_LIBRARY_LISTENER=self{code}.\r\n\r\nI also have an external listener, implemented via poc-listener.py.\r\n\r\nI want to be able to specify the Library's built-in listener to be notified about the start and end events *before* the external listener is notified. What happens in practice is that the external listener is always notified first. I use the following command line:\r\n{code}robot --listener poc-listener.py testcases{code}\r\n\r\nNote that \"testcases\" has a test suite file which specifies the library import:\r\n *** Settings ***\r\n Library MyLibrary\r\n\r\n\r\nThis same behaviour happens even if I disable the built-in listener, and specify both listeners via the command line, using:\r\n robot --listener poc-listener.py --listener MyLibrary testcases\r\n\r\nThe only way I've been able to find to control the order in which the listeners execute is by specifying *both* listeners in the Library, using \r\n self.ROBOT_LIBRARY_LISTENER={self, \"poc-listener.py\"}\r\nand by calling robot without any listeners on the command line: \r\n robot testcases.\r\n\r\nObviously this isn't ideal, since \r\n- I'd be forced to add parameters to the library, to specify the external listeners\r\n- this completely bypasses Robot's built-in method of specifying the listeners (via the command line)\r\n- it breaks encapulation, since, in general most Libraries have no business knowing about what other listeners have been specified\r\n\r\nWhat I'd suggest is a mechanism to allow the order of listeners to be specified, where one of the listeners involved is a listener specified within a Library itself, using\r\n self.ROBOT_LIBRARY_LISTENER=self","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/timeline","performed_via_github_app":null,"state_reason":null,"score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null,"issues":{"total_count":13,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5070","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/events","html_url":"https://github.com/robotframework/robotframework/issues/5070","id":2165010745,"node_id":"I_kwDOAUSaQ86BC3E5","number":5070,"title":"\"Called when a keyword starts.\" is written in the documentation for the end_keyword method in listener's V3","user":{"login":"petr-kus","id":66471396,"node_id":"MDQ6VXNlcjY2NDcxMzk2","avatar_url":"https://avatars.githubusercontent.com/u/66471396?v=4","gravatar_id":"","url":"https://api.github.com/users/petr-kus","html_url":"https://github.com/petr-kus","followers_url":"https://api.github.com/users/petr-kus/followers","following_url":"https://api.github.com/users/petr-kus/following{/other_user}","gists_url":"https://api.github.com/users/petr-kus/gists{/gist_id}","starred_url":"https://api.github.com/users/petr-kus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petr-kus/subscriptions","organizations_url":"https://api.github.com/users/petr-kus/orgs","repos_url":"https://api.github.com/users/petr-kus/repos","events_url":"https://api.github.com/users/petr-kus/events{/privacy}","received_events_url":"https://api.github.com/users/petr-kus/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":1,"created_at":"2024-03-02T22:47:32Z","updated_at":"2024-03-12T17:13:24Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"\"Called when a keyword starts.\" is written in the documentation for the **end_keyword** method in the listener's V3\r\n\r\nIn (latest - 7.0 version)\r\n[https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface-versions](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface-versions)\r\n\r\nfor listener version 3. Is this tiny 'copy-paste' bug: \r\n![small_bug](https://github.com/robotframework/robotframework/assets/66471396/b94813a0-ae9b-48d3-8b80-4b3a3976f394)\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5069","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/events","html_url":"https://github.com/robotframework/robotframework/issues/5069","id":2163391370,"node_id":"I_kwDOAUSaQ86A8ruK","number":5069,"title":"Japanese localizaion","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":0,"created_at":"2024-03-01T13:17:04Z","updated_at":"2024-03-01T13:22:41Z","closed_at":"2024-03-01T13:22:41Z","author_association":"MEMBER","active_lock_reason":null,"body":"We got PR #5064 by @5003 about adding Japanese translations. This issue exists to get the enhancement listed in the release notes.\r\n\r\nAlthough we in general don't add enhancements in bug fix releases, I believe adding localizations is fine. I'll thus merge #5064 now and it will be part of the forthcoming RF 7.0.1.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5063","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/events","html_url":"https://github.com/robotframework/robotframework/issues/5063","id":2151459306,"node_id":"I_kwDOAUSaQ86APKnq","number":5063,"title":"Robot Framework does not run in Pyodide >= 0.23","user":{"login":"manykarim","id":61293164,"node_id":"MDQ6VXNlcjYxMjkzMTY0","avatar_url":"https://avatars.githubusercontent.com/u/61293164?v=4","gravatar_id":"","url":"https://api.github.com/users/manykarim","html_url":"https://github.com/manykarim","followers_url":"https://api.github.com/users/manykarim/followers","following_url":"https://api.github.com/users/manykarim/following{/other_user}","gists_url":"https://api.github.com/users/manykarim/gists{/gist_id}","starred_url":"https://api.github.com/users/manykarim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manykarim/subscriptions","organizations_url":"https://api.github.com/users/manykarim/orgs","repos_url":"https://api.github.com/users/manykarim/repos","events_url":"https://api.github.com/users/manykarim/events{/privacy}","received_events_url":"https://api.github.com/users/manykarim/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2024-02-23T16:54:17Z","updated_at":"2024-02-25T23:05:57Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"As described by @Snooz82 in Slack:\r\n\r\n> Pyodide 0.23 and newer runs Python 3.11.2 which officially supports WebAssembly as a [PEP11 Tier 3](https://peps.python.org/pep-0011/#tier-3) platform. [#3252](https://github.com/pyodide/pyodide/pull/3252), [#3614](https://github.com/pyodide/pyodide/pull/3614)\r\n> \r\n> That causes incompatibility to Robot Framework… :sob:\r\n> RF uses setitimer and this seems not be included anymore, because it never worked on JavaScript…\r\n> That means we can not update to Pyodide 0.23.0 from March 30 2023…\r\n> current Version is 0.25.0\r\n> \r\n> I updated it on the code playground now from 18.1 to 22.1 which caused RF 3.1 to die, due to missing python 3.10 support.\r\n> We could refactor the code so, that depending on the selected Robot Version we do use a different Pyodide Version.\r\n> And in the next Release of Robot Framework, we could actively check if we can support running on newest Pyodide version.\r\n> Maybe that mean, that some timer signals are not working, but i think that would be ok.\r\n> Pekka: if you think there is a possibility to patch robot/running/timeouts/posix.py so that RF could still live without it, this would be an option too.\r\n\r\nWhen I tried Robot Framework in a Jupyter Lite Notebook using Pyodide, I received the error below:\r\n\r\n`ImportError: cannot import name 'setitimer' from 'signal' (/lib/python311.zip/signal.py)`\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5051","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/events","html_url":"https://github.com/robotframework/robotframework/issues/5051","id":2132987226,"node_id":"I_kwDOAUSaQ85_Is1a","number":5051,"title":"Going through unexecuted keyword has unnecessary overhead if keywords are not found","user":{"login":"jeremy-of-laurel","id":65317440,"node_id":"MDQ6VXNlcjY1MzE3NDQw","avatar_url":"https://avatars.githubusercontent.com/u/65317440?v=4","gravatar_id":"","url":"https://api.github.com/users/jeremy-of-laurel","html_url":"https://github.com/jeremy-of-laurel","followers_url":"https://api.github.com/users/jeremy-of-laurel/followers","following_url":"https://api.github.com/users/jeremy-of-laurel/following{/other_user}","gists_url":"https://api.github.com/users/jeremy-of-laurel/gists{/gist_id}","starred_url":"https://api.github.com/users/jeremy-of-laurel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeremy-of-laurel/subscriptions","organizations_url":"https://api.github.com/users/jeremy-of-laurel/orgs","repos_url":"https://api.github.com/users/jeremy-of-laurel/repos","events_url":"https://api.github.com/users/jeremy-of-laurel/events{/privacy}","received_events_url":"https://api.github.com/users/jeremy-of-laurel/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":1,"created_at":"2024-02-13T19:20:05Z","updated_at":"2024-02-25T21:40:59Z","closed_at":"2024-02-25T21:40:00Z","author_association":"NONE","active_lock_reason":null,"body":"In an initial effort to make my testing repo compatible with both SeleniumLibrary and Browser, I added some conditional logic to run specific keywords based on the library chosen at test execution. More specifically, I used a global variable ${AUTOMATION}, declared in an argument file, which determines the library used here.\r\n\r\nBasic example:\r\n```\r\nIF '${AUTOMATION}' == 'SeleniumLibrary'\r\n SeleniumLibrary.Keyword_1\r\n SeleniumLibrary.Keyword_2\r\n SeleniumLibrary.Keyword_3\r\nELSE IF '${AUTOMATION}' == 'Browser'\r\n Browser.Keyword_1\r\n Browser.Keyword_2\r\n Browser.Keyword_3\r\nEND\r\n```\r\nInitial results with a converted test showed a degrade in performance. If SeleniumLibrary is used, the Browser keywords are not ran, but RF appears to hang on the unmet 'ELSE IF' condition for several seconds in this example:\r\n![rf7-0_slow_elseif](https://github.com/robotframework/robotframework/assets/65317440/52e024a9-c060-43af-8cc3-cf5836017491)\r\n\r\nAfter some discussion in Slack, I believe it's been confirmed that the root cause is due to the Browser library not being imported, which is potentially causing some overhead on the RF side. When Browser library is not imported, I get the slowness, but if I import Browser, that slowness is eliminated and I get a much more expected result:\r\n![rf7-0_good_result](https://github.com/robotframework/robotframework/assets/65317440/c9830f14-b875-4c9e-a32e-b4dc4c2d9e3a)\r\n\r\nReproducible in both RF 6.1.1 and RF 7.0.\r\nPython 3.10.12\r\nUbuntu 22.04.3\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5039","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/events","html_url":"https://github.com/robotframework/robotframework/issues/5039","id":2104092696,"node_id":"I_kwDOAUSaQ859aegY","number":5039,"title":"Use better theme with API docs at Read The Docs","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2024-01-28T10:29:39Z","updated_at":"2024-02-07T11:04:21Z","closed_at":"2024-02-07T11:04:21Z","author_association":"MEMBER","active_lock_reason":null,"body":"Robot API docs are, at least currently, hosted at https://robot-framework.readthedocs.io/. The default theme used there has changed so that the navigation bar on left doesn't show sub modules as earlier. Compare, for example, these:\r\nhttps://robot-framework.readthedocs.io/en/v6.1.1/autodoc/robot.api.html\r\nhttps://robot-framework.readthedocs.io/en/v7.0/autodoc/robot.api.html\r\n\r\nWe already had #5034 about changing the theme to the one that was used earlier, but it had some problem and [building API docs failed](https://readthedocs.org/projects/robot-framework/builds/23257790/).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5035","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/events","html_url":"https://github.com/robotframework/robotframework/issues/5035","id":2101128355,"node_id":"I_kwDOAUSaQ859PKyj","number":5035,"title":"Unit test fails under Python 3.13","user":{"login":"fedepell","id":19709142,"node_id":"MDQ6VXNlcjE5NzA5MTQy","avatar_url":"https://avatars.githubusercontent.com/u/19709142?v=4","gravatar_id":"","url":"https://api.github.com/users/fedepell","html_url":"https://github.com/fedepell","followers_url":"https://api.github.com/users/fedepell/followers","following_url":"https://api.github.com/users/fedepell/following{/other_user}","gists_url":"https://api.github.com/users/fedepell/gists{/gist_id}","starred_url":"https://api.github.com/users/fedepell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedepell/subscriptions","organizations_url":"https://api.github.com/users/fedepell/orgs","repos_url":"https://api.github.com/users/fedepell/repos","events_url":"https://api.github.com/users/fedepell/events{/privacy}","received_events_url":"https://api.github.com/users/fedepell/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":1,"created_at":"2024-01-25T20:36:06Z","updated_at":"2024-01-28T10:02:56Z","closed_at":"2024-01-28T10:02:56Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"In Fedora we have RobotFramework tests running for upcoming Fedora 41 using Python 3.13.03 in a side tag.\r\nWhile running the unit tests (version 7.0) I have a new failure in utils:\r\n```\r\nFAIL: test_remove_entries_with_lambda_and_multiple_entries\r\n(test_error.TestRemoveRobotEntriesFromTraceback.test_remove_entries_with_lambda_and_multiple_entries)\r\n----------------------------------------------------------------------\r\n======================================================================\r\nFAIL: test_remove_entries_with_lambda_and_multiple_entries (test_error.TestRemoveRobotEntriesFromTraceback.test_remove_entries_with_lambda_and_multiple_entries)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 107, in test_remove_entries_with_lambda_and_multiple_entries\r\n self._verify_traceback(r'''\r\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^\r\n Traceback \\(most recent call last\\):\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n ...<3 lines>...\r\n 1/0\r\n ^^^\r\n '''.strip(), assert_raises, AssertionError, raising_lambda)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 133, in _verify_traceback\r\n raise AssertionError('\\nExpected:\\n%s\\n\\nActual:\\n%s' % (expected, tb))\r\nAssertionError: \r\nExpected:\r\nTraceback \\(most recent call last\\):\r\n File \".*\", line \\d+, in \r\n raising_lambda = lambda: raises\\(\\)\r\n File \".*\", line \\d+, in raises\r\n 1/0\r\n\r\nActual:\r\nTraceback (most recent call last):\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 106, in \r\n raising_lambda = lambda: raises()\r\n ~~~~~~^^\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 105, in raises\r\n 1/0\r\n ~^~\r\nZeroDivisionError: division by zero\r\n\r\n----------------------------------------------------------------------\r\nRan 635 tests in 0.577s\r\n\r\nFAILED (failures=1)\r\n\r\n```\r\n\r\nLooking at the output and playing a bit around the solution to me looks like changing the test filter (line in test_error.py) from:\r\n```\r\n # Remove lines indicating error location with `^^^^` used by Python 3.11+.\r\n tb = '\\n'.join(line for line in tb.splitlines() if line.strip('^ '))\r\n```\r\nTo:\r\n```\r\n # Remove lines indicating error location with `^^^^` used by Python 3.11+ and `~~~~^` variants in Python 3.13+.\r\n tb = '\\n'.join(line for line in tb.splitlines() if line.strip('^~ '))\r\n```\r\nWhich filters also the error indicators with `~` that seem to be new.\r\n\r\nThis makes the test pass, I hope/believe without breaking in previous versions.\r\n\r\nIf the proposal makes sense I can of course open a MR!\r\n\r\nThanks!\r\nF.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5032","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/events","html_url":"https://github.com/robotframework/robotframework/issues/5032","id":2093182576,"node_id":"I_kwDOAUSaQ858w25w","number":5032,"title":"Collections: No default value shown in documentation for `Get/Pop From Dictionary`","user":{"login":"A1K2V3","id":140275173,"node_id":"U_kgDOCFxt5Q","avatar_url":"https://avatars.githubusercontent.com/u/140275173?v=4","gravatar_id":"","url":"https://api.github.com/users/A1K2V3","html_url":"https://github.com/A1K2V3","followers_url":"https://api.github.com/users/A1K2V3/followers","following_url":"https://api.github.com/users/A1K2V3/following{/other_user}","gists_url":"https://api.github.com/users/A1K2V3/gists{/gist_id}","starred_url":"https://api.github.com/users/A1K2V3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/A1K2V3/subscriptions","organizations_url":"https://api.github.com/users/A1K2V3/orgs","repos_url":"https://api.github.com/users/A1K2V3/repos","events_url":"https://api.github.com/users/A1K2V3/events{/privacy}","received_events_url":"https://api.github.com/users/A1K2V3/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":3,"created_at":"2024-01-22T06:27:46Z","updated_at":"2024-01-31T15:19:06Z","closed_at":"2024-01-31T15:19:05Z","author_association":"NONE","active_lock_reason":null,"body":"When Checking the Documentation of keywords which uses `NOT_SET` as default , It shows \"mandatory argument missing\" which is wrong.\r\nThough the functionality of the keyword is working fine.\r\n \r\nhttps://robotframework.slack.com/archives/C3C28F9DF/p1705692610282559\r\n\r\n![image](https://github.com/robotframework/robotframework/assets/140275173/2732bbb7-52e6-45ac-8815-d615d42a0984)\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5031","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/events","html_url":"https://github.com/robotframework/robotframework/issues/5031","id":2092078748,"node_id":"I_kwDOAUSaQ858spac","number":5031,"title":"RF7 regression: Arguments passed to BuildIn.run_keyword are expanded under specific conditions","user":{"login":"robinmackaij","id":45491813,"node_id":"MDQ6VXNlcjQ1NDkxODEz","avatar_url":"https://avatars.githubusercontent.com/u/45491813?v=4","gravatar_id":"","url":"https://api.github.com/users/robinmackaij","html_url":"https://github.com/robinmackaij","followers_url":"https://api.github.com/users/robinmackaij/followers","following_url":"https://api.github.com/users/robinmackaij/following{/other_user}","gists_url":"https://api.github.com/users/robinmackaij/gists{/gist_id}","starred_url":"https://api.github.com/users/robinmackaij/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robinmackaij/subscriptions","organizations_url":"https://api.github.com/users/robinmackaij/orgs","repos_url":"https://api.github.com/users/robinmackaij/repos","events_url":"https://api.github.com/users/robinmackaij/events{/privacy}","received_events_url":"https://api.github.com/users/robinmackaij/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2024-01-20T14:42:26Z","updated_at":"2024-01-31T13:54:36Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"When using `BuildIn.run_keyword` the (positional) arguments that follow the target keyword name should be passed to the keyword \"as is\".\r\n\r\nA change in RF7 changed this behavior in a specific situation; if there are (exactly) 2 positional arguments following the keyword name and the first of those arguments is iterable and the second a mapping, the arguments are no longer passed \"as is\" but they are expanded before being passed to the target keyword.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5023","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/events","html_url":"https://github.com/robotframework/robotframework/issues/5023","id":2083147320,"node_id":"I_kwDOAUSaQ858Kk44","number":5023,"title":"Behavior when `--rerunfailed` and `--include/--exclude/--test` are used together has changed in RF 7.0","user":{"login":"kjkaizens","id":44444882,"node_id":"MDQ6VXNlcjQ0NDQ0ODgy","avatar_url":"https://avatars.githubusercontent.com/u/44444882?v=4","gravatar_id":"","url":"https://api.github.com/users/kjkaizens","html_url":"https://github.com/kjkaizens","followers_url":"https://api.github.com/users/kjkaizens/followers","following_url":"https://api.github.com/users/kjkaizens/following{/other_user}","gists_url":"https://api.github.com/users/kjkaizens/gists{/gist_id}","starred_url":"https://api.github.com/users/kjkaizens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kjkaizens/subscriptions","organizations_url":"https://api.github.com/users/kjkaizens/orgs","repos_url":"https://api.github.com/users/kjkaizens/repos","events_url":"https://api.github.com/users/kjkaizens/events{/privacy}","received_events_url":"https://api.github.com/users/kjkaizens/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":14,"created_at":"2024-01-16T07:06:39Z","updated_at":"2024-03-12T17:30:12Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"\r\n![Uploading Screenshot 2024-01-16 at 9.08.06.png…]()\r\n`robot --rerunfailed output.xml` until robot version 6 picks up tests that had been failed in previous run. However, robot 7 just reruns all suite, both failed and passed tests","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5017","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/events","html_url":"https://github.com/robotframework/robotframework/issues/5017","id":2080728690,"node_id":"I_kwDOAUSaQ858BWZy","number":5017,"title":"`start/end_body_item` listener v3 methods missing from documentation in User Guide","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":0,"created_at":"2024-01-14T13:26:59Z","updated_at":"2024-01-14T13:26:59Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"These methods are called with keywords and control structures if more specific methods aren't defined. Implementing only them is the same as implementing `start/end_keyword` with listener v2. The differences how control structures are handled in different listener versions should also be documented better.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5012","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/events","html_url":"https://github.com/robotframework/robotframework/issues/5012","id":2078711897,"node_id":"I_kwDOAUSaQ8575qBZ","number":5012,"title":"`--legacy-output` does not work with Rebot when combining, merging or filtering results","user":{"login":"emakaay","id":72747481,"node_id":"MDQ6VXNlcjcyNzQ3NDgx","avatar_url":"https://avatars.githubusercontent.com/u/72747481?v=4","gravatar_id":"","url":"https://api.github.com/users/emakaay","html_url":"https://github.com/emakaay","followers_url":"https://api.github.com/users/emakaay/followers","following_url":"https://api.github.com/users/emakaay/following{/other_user}","gists_url":"https://api.github.com/users/emakaay/gists{/gist_id}","starred_url":"https://api.github.com/users/emakaay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emakaay/subscriptions","organizations_url":"https://api.github.com/users/emakaay/orgs","repos_url":"https://api.github.com/users/emakaay/repos","events_url":"https://api.github.com/users/emakaay/events{/privacy}","received_events_url":"https://api.github.com/users/emakaay/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":5,"created_at":"2024-01-12T12:10:44Z","updated_at":"2024-02-20T18:04:23Z","closed_at":"2024-01-31T15:19:06Z","author_association":"NONE","active_lock_reason":null,"body":"Because robot scripts are not always stable, due to infrastructural problems, we use a script to perform failing tests with a maximum of 3 times. Until tests are run ok... or eventually fail.\r\n\r\nThis will generate several output.xml which are combined into a single output.xml (report.html and log.html) using rebot.\r\nUntil Robotframework v6.1.1 this was working fine. I started to use version 7.0 and used the option --legacyoutput with both robot and rebot.\r\n\r\nWhen I combine MORE THEN one output,xl, rebot will fail:\r\n`\r\nrebot --legacyoutput --merge --outputdir --output output.xml firstoutput.xml secondoutput.xml\r\n\r\n[ ERROR ] Unexpected error: AttributeError: 'NoneType' object has no attribute 'isoformat'\r\nTraceback (most recent call last):\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\utils\\application.py\", line 81, in _execute\r\n rc = self.main(arguments, **options)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\rebot.py\", line 340, in main\r\n rc = ResultWriter(*datasources).write_results(settings)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\reporting\\resultwriter.py\", line 57, in write_results\r\n self._write_output(results.result, settings.output, settings.legacy_output)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\reporting\\resultwriter.py\", line 71, in _write_output\r\n self._write('Output', result.save, path, legacy_output)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\reporting\\resultwriter.py\", line 84, in _write\r\n writer(path, *args)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\result\\executionresult.py\", line 154, in save\r\n self.visit(writer(target, rpa=self.rpa))\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\result\\executionresult.py\", line 168, in visit\r\n visitor.visit_result(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\result\\visitor.py\", line 44, in visit_result\r\n result.suite.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 131, in visit_suite\r\n suite.suites.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\itemlist.py\", line 102, in visit\r\n item.visit(visitor) # type: ignore\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 131, in visit_suite\r\n suite.suites.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\itemlist.py\", line 102, in visit\r\n item.visit(visitor) # type: ignore\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 131, in visit_suite\r\n suite.suites.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\itemlist.py\", line 102, in visit\r\n item.visit(visitor) # type: ignore\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 135, in visit_suite\r\n self.end_suite(suite)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\output\\xmllogger.py\", line 375, in end_suite\r\n self._write_status(suite)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\output\\xmllogger.py\", line 444, in _write_status\r\n 'starttime': self._datetime_to_timestamp(item.start_time),\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\output\\xmllogger.py\", line 432, in _datetime_to_timestamp\r\n return dt.isoformat(' ', timespec='milliseconds').replace('-', '')\r\n ^^^^^^^^^^^^\r\nAttributeError: 'NoneType' object has no attribute 'isoformat'\r\n`\r\n\r\nIs it something I'm doing wrong ? I found it confusing that the documentation & release notes mention the option \"--legacy-output\", but both robot.exe --help and rebot --help, only have the option \"--legacyoutput\" (without -). ","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4993","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/events","html_url":"https://github.com/robotframework/robotframework/issues/4993","id":2056488291,"node_id":"I_kwDOAUSaQ856k4Vj","number":4993,"title":"Crash when in Dialogs window is closed","user":{"login":"xRowe","id":33739292,"node_id":"MDQ6VXNlcjMzNzM5Mjky","avatar_url":"https://avatars.githubusercontent.com/u/33739292?v=4","gravatar_id":"","url":"https://api.github.com/users/xRowe","html_url":"https://github.com/xRowe","followers_url":"https://api.github.com/users/xRowe/followers","following_url":"https://api.github.com/users/xRowe/following{/other_user}","gists_url":"https://api.github.com/users/xRowe/gists{/gist_id}","starred_url":"https://api.github.com/users/xRowe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xRowe/subscriptions","organizations_url":"https://api.github.com/users/xRowe/orgs","repos_url":"https://api.github.com/users/xRowe/repos","events_url":"https://api.github.com/users/xRowe/events{/privacy}","received_events_url":"https://api.github.com/users/xRowe/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":5,"created_at":"2023-12-26T15:04:03Z","updated_at":"2024-02-04T14:54:12Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Dear Developer\r\n\r\nI am setting up a auto/semi-auto test using the RobotFramework, installed by pip along with RIDE\r\n\r\n```\r\nrobot --version\r\nRobot Framework 6.1.1 (Python 3.11.5 on win32)\r\n```\r\n\r\nBut now I am stuck at below warning when I selected \"FAIL\" in Dialogs.Execute Manual Step.\r\n`Tcl_AsyncDelete: async handler deleted by the wrong thread`\r\n\r\n100% Reproduce in specific step.\r\n\"initTransport\" will setup the connection and create/start multi-threads to send/receive cyclic messages. \r\nWhen the press any button to close Dialog windows, it will raise the Tcl_AsyncDelete Error\r\n```\r\nTest_Dialogs\r\n initTransport\r\n Dialogs.Execute Manual Step Check The LIGHT is ON LIGHT OFF\r\n```\r\n\r\nBut 0% reproduce in below steps\r\n```\r\nTest_Dialogs\r\n Dialogs.Execute Manual Step Check The LIGHT is ON LIGHT OFF\r\n```\r\nor\r\n```\r\nTest_Dialogs\r\n ${answer} Dialogs.get value from user Are you OK?\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4943","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/events","html_url":"https://github.com/robotframework/robotframework/issues/4943","id":1990505164,"node_id":"I_kwDOAUSaQ852pLLM","number":4943,"title":"Webpage: Add plausible.io back to Library docs and UserGuide","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"open","locked":false,"assignee":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"assignees":[{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2023-11-13T11:57:05Z","updated_at":"2024-02-06T14:56:35Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"plausible.io is our technique to gather some anonymous visitor numbers on our pages.\r\n\r\nWe have had this in BuiltIn and other Libraries.\r\nWe have to implement this into \"Release Pipeline\" so that with every release it is still in.\r\n\r\nI can do this later before RF 7.0 release.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/timeline","performed_via_github_app":null,"state_reason":null,"score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z","issues":{"total_count":94,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5005","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/events","html_url":"https://github.com/robotframework/robotframework/issues/5005","id":2067746736,"node_id":"I_kwDOAUSaQ857P0-w","number":5005,"title":"`Log Variables` should not consume iterables","user":{"login":"kstine","id":9166025,"node_id":"MDQ6VXNlcjkxNjYwMjU=","avatar_url":"https://avatars.githubusercontent.com/u/9166025?v=4","gravatar_id":"","url":"https://api.github.com/users/kstine","html_url":"https://github.com/kstine","followers_url":"https://api.github.com/users/kstine/followers","following_url":"https://api.github.com/users/kstine/following{/other_user}","gists_url":"https://api.github.com/users/kstine/gists{/gist_id}","starred_url":"https://api.github.com/users/kstine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kstine/subscriptions","organizations_url":"https://api.github.com/users/kstine/orgs","repos_url":"https://api.github.com/users/kstine/repos","events_url":"https://api.github.com/users/kstine/events{/privacy}","received_events_url":"https://api.github.com/users/kstine/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065702,"node_id":"MDU6TGFiZWw5MTEwNjU3MDI=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%203","name":"rc 3","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2024-01-05T17:27:18Z","updated_at":"2024-01-08T09:36:41Z","closed_at":"2024-01-06T23:42:26Z","author_association":"NONE","active_lock_reason":null,"body":"Found in Robot Framework 6.1.1 and 7.0rc2\r\nPython 3.11\r\n\r\nGiven this example:\r\n```\r\nCycle Test\r\n ${TEST_LIST} Create List beginning 1 2 3 4 end\r\n ${CYCLE_TEST} Evaluate itertools.cycle($TEST_LIST)\r\n Set Test Variable ${CYCLE_TEST}\r\n Log Variables\r\n```\r\nWhen executing this case\r\nThen Robot Framework will pause for a while and eventually throw a Memory Error.\r\n\r\nThis might be an uncommon situation, but would be nice to handle iterable objects.\r\nMy current workaround is to avoid assigning the itertools.cycle() to a RF variable and handle everything within a library.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5002","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/events","html_url":"https://github.com/robotframework/robotframework/issues/5002","id":2066774133,"node_id":"I_kwDOAUSaQ857MHh1","number":5002,"title":"\"Parsing type failed\"/\"Type name missing\" error message appears on the wrong argument","user":{"login":"DetachHead","id":57028336,"node_id":"MDQ6VXNlcjU3MDI4MzM2","avatar_url":"https://avatars.githubusercontent.com/u/57028336?v=4","gravatar_id":"","url":"https://api.github.com/users/DetachHead","html_url":"https://github.com/DetachHead","followers_url":"https://api.github.com/users/DetachHead/followers","following_url":"https://api.github.com/users/DetachHead/following{/other_user}","gists_url":"https://api.github.com/users/DetachHead/gists{/gist_id}","starred_url":"https://api.github.com/users/DetachHead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DetachHead/subscriptions","organizations_url":"https://api.github.com/users/DetachHead/orgs","repos_url":"https://api.github.com/users/DetachHead/repos","events_url":"https://api.github.com/users/DetachHead/events{/privacy}","received_events_url":"https://api.github.com/users/DetachHead/received_events","type":"User","site_admin":false},"labels":[{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2024-01-05T05:57:17Z","updated_at":"2024-01-06T23:42:25Z","closed_at":"2024-01-06T23:42:25Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"```py\r\n# a.py\r\nfrom __future__ import annotations\r\n\r\nfrom typing import Callable\r\n\r\ndef foo(a: Callable[[], None], b: asdf) -> None: ...\r\n```\r\n```\r\n[ ERROR ] Error in library 'a': Adding keyword 'foo' failed: Parsing type 'Callable[[], None]' failed: Error at index 9: Type name missing.\r\n```\r\n\r\nremoving the invalid `asdf` type annotation fixes the issue, so the error should be complaining about the `b` argument instead of the `a` argument","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5000","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/events","html_url":"https://github.com/robotframework/robotframework/issues/5000","id":2065729389,"node_id":"I_kwDOAUSaQ857IIdt","number":5000,"title":"Nicer API for setting keyword call arguments programmatically","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":230194665,"node_id":"MDU6TGFiZWwyMzAxOTQ2NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%202","name":"rc 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2024-01-04T14:11:15Z","updated_at":"2024-01-04T14:21:23Z","closed_at":"2024-01-04T14:21:22Z","author_association":"MEMBER","active_lock_reason":null,"body":"`robot.running.Keyword.args` contains arguments used in a keyword call as a list. Arguments originating from normal Robot Framework data are always strings and they are in the exact same format as in the data. This means that arguments can contain variables and escape characters, and that named arguments are represented using the `name=value` syntax.\r\n\r\nIf arguments are modified programmatically, it is possible to use also other objects than strings. This doesn't, however, work with named arguments because in the `name=value` syntax the value is always a string. Automatic argument conversion handles conversion in common cases, but especially with more complex objects being able to use them directly would be convenient. Another pretty common and unexpected annoyance is that arguments that are strings need to follow the same escaping rules as normal data. Most importantly, `\\` needs to be doubled and, because it's an escape character also in Python, we need to use data like `'c:\\\\\\\\temp\\\\\\\\new'` or `r'c:\\\\temp\\\\new'`.\r\n\r\nI propose we enhance setting arguments as follows:\r\n\r\n1. Support specifying named arguments as two-item tuples like `('name', 'value')` to allow using also non-strings as values. To avoid ambiguity with arguments possibly containing a literal `=`, we should also support positional arguments as one-item tuples like `('value',)`. In this usage we should still resolve variables, which requires users handling escaping themselves.\r\n\r\n Example: `[('positional',), ('name', 'value'), ('path', r'c:\\\\temp\\\\new')]`\r\n\r\n We support tuples like this also with the dynamic library API with arguments having default values. The approach thus has precedence and it has worked well.\r\n\r\n2. Support giving arguments directly as a list of positional arguments and a dictionary of named arguments. In this usage we should use arguments directly without handling escapes. That then means that variables aren't resolved either, but automatic argument conversion and validation will still be done.\r\n\r\n Example: `[['positional'], {'name': 'value', 'path': 'c:\\\\temp\\\\new'}]`\r\n\r\nThe above is pretty easy to implement. During execution we just need to handle different ways arguments can be specified when resolving arguments. No code changes are needed with `robot.running.Keyword`, but this new functionality needs to be documented and typing needs to be set accordingly. We also need to enhance `robot.result.Keyword`. With it it's better to always store arguments as strings, which means that we need to convert other arguments when they are set.\r\n\r\nIt's a bit questionable is this a good idea this late in RF 7.0 release cycle, we already have a release candidate out, but this makes some of the usages of the new `start/end_keyword` listener v3 methods (#3296) so much more convenient that we decided to still implement this. Changes are pretty small and ought to be safe, but big enough to warrant a second release candidate. ","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4999","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/events","html_url":"https://github.com/robotframework/robotframework/issues/4999","id":2065674668,"node_id":"I_kwDOAUSaQ857H7Gs","number":4999,"title":"XML Library: Double namespace during Element To String","user":{"login":"CosmaCLI","id":114875239,"node_id":"U_kgDOBtjbZw","avatar_url":"https://avatars.githubusercontent.com/u/114875239?v=4","gravatar_id":"","url":"https://api.github.com/users/CosmaCLI","html_url":"https://github.com/CosmaCLI","followers_url":"https://api.github.com/users/CosmaCLI/followers","following_url":"https://api.github.com/users/CosmaCLI/following{/other_user}","gists_url":"https://api.github.com/users/CosmaCLI/gists{/gist_id}","starred_url":"https://api.github.com/users/CosmaCLI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CosmaCLI/subscriptions","organizations_url":"https://api.github.com/users/CosmaCLI/orgs","repos_url":"https://api.github.com/users/CosmaCLI/repos","events_url":"https://api.github.com/users/CosmaCLI/events{/privacy}","received_events_url":"https://api.github.com/users/CosmaCLI/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065702,"node_id":"MDU6TGFiZWw5MTEwNjU3MDI=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%203","name":"rc 3","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":3,"created_at":"2024-01-04T13:35:58Z","updated_at":"2024-02-13T07:35:17Z","closed_at":"2024-01-07T21:10:07Z","author_association":"NONE","active_lock_reason":null,"body":"Hi everyone!\r\n\r\nI'm using the XML Lib with lxml\r\n```\r\nLibrary XML use_lxml=True\r\n```\r\nIn my Teststep I'm loading a file and convert it to a XML:\r\n\r\n```\r\n ${my_config_string}= OperatingSystem.Get File\r\n ... path_to_file\r\n ... encoding=UTF-8\r\n ${my_config_xml}= parse xml ${my_config_string}\r\n```\r\nand its working fine - the XML looks like expected.\r\n\r\n```\r\n\r\n \r\n \r\n.... \r\n```\r\nBut as soon as I use the Element To String Keyword the namespaces are doubled.\r\n```\r\n ${my_config_candidate}= Element To String\r\n ... ${my_config_xml}\r\n ... xpath=.\r\n ... encoding=UTF-8\r\n```\r\n\r\nResult:\r\n```\r\n\r\n \r\n \r\n```\r\n\r\nIt's not happening if I load the Library without lxml \r\n\r\nThank you very much\r\nBR\r\nChristina\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4997","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/events","html_url":"https://github.com/robotframework/robotframework/issues/4997","id":2061617852,"node_id":"I_kwDOAUSaQ8564cq8","number":4997,"title":"Issue with libdoc HTML Generation: Type Errors in libdoc Output (7.0rc1)","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2024-01-01T15:18:43Z","updated_at":"2024-01-02T17:52:30Z","closed_at":"2024-01-02T17:52:29Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Current Behavior:\r\nWhen attempting to generate a libdoc HTML file using the latest 7.0rc1, the resulting file does not display properly, just a white background is shown. This seems to be caused by 'type errors' present in the generated HTML.\r\n\r\nTo Reproduce:\r\n\r\nExecute the command `libdoc BuiltIn BuiltIn.html` in the command line using the latest 7.0rc1.\r\nOpen the generated HTML file in any browser.\r\n\r\nExpected Behavior:\r\nThe generated HTML file should display without any issues.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4995","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/events","html_url":"https://github.com/robotframework/robotframework/issues/4995","id":2060790707,"node_id":"I_kwDOAUSaQ8561Suz","number":4995,"title":"Empty variable name in VAR crashes execution","user":{"login":"bhirsz","id":8532066,"node_id":"MDQ6VXNlcjg1MzIwNjY=","avatar_url":"https://avatars.githubusercontent.com/u/8532066?v=4","gravatar_id":"","url":"https://api.github.com/users/bhirsz","html_url":"https://github.com/bhirsz","followers_url":"https://api.github.com/users/bhirsz/followers","following_url":"https://api.github.com/users/bhirsz/following{/other_user}","gists_url":"https://api.github.com/users/bhirsz/gists{/gist_id}","starred_url":"https://api.github.com/users/bhirsz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhirsz/subscriptions","organizations_url":"https://api.github.com/users/bhirsz/orgs","repos_url":"https://api.github.com/users/bhirsz/repos","events_url":"https://api.github.com/users/bhirsz/events{/privacy}","received_events_url":"https://api.github.com/users/bhirsz/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-30T16:22:08Z","updated_at":"2024-01-02T23:48:53Z","closed_at":"2024-01-02T23:48:45Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Following example:\r\n\r\n```\r\n*** Test Cases ***\r\nTest\r\n VAR\r\n ...\r\n\r\n```\r\n\r\nwill stop robot execution and throw:\r\n\r\n```\r\noptions = ['scope', 'separator'] if name.value[0] == '$' else ['scope']\r\nE IndexError: string index out of range\r\n```\r\n\r\ninstead of invalid variable name error (in case variable name is in the same line, ie just ``VAR``","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4992","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/events","html_url":"https://github.com/robotframework/robotframework/issues/4992","id":2053962454,"node_id":"I_kwDOAUSaQ856bPrW","number":4992,"title":"${OUTPUT DIR} returned as PosixPath type","user":{"login":"oboehmer","id":22439451,"node_id":"MDQ6VXNlcjIyNDM5NDUx","avatar_url":"https://avatars.githubusercontent.com/u/22439451?v=4","gravatar_id":"","url":"https://api.github.com/users/oboehmer","html_url":"https://github.com/oboehmer","followers_url":"https://api.github.com/users/oboehmer/followers","following_url":"https://api.github.com/users/oboehmer/following{/other_user}","gists_url":"https://api.github.com/users/oboehmer/gists{/gist_id}","starred_url":"https://api.github.com/users/oboehmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oboehmer/subscriptions","organizations_url":"https://api.github.com/users/oboehmer/orgs","repos_url":"https://api.github.com/users/oboehmer/repos","events_url":"https://api.github.com/users/oboehmer/events{/privacy}","received_events_url":"https://api.github.com/users/oboehmer/received_events","type":"User","site_admin":false},"labels":[{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-22T13:57:21Z","updated_at":"2024-01-02T23:49:08Z","closed_at":"2024-01-02T23:48:45Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"We noticed that RF 7.0rc1 returns ${OUTPUT_DIR} variable as PosixPath, likely a consequence of https://github.com/robotframework/robotframework/issues/4988.\r\n\r\nI feel this is something we should either change (to return the string representation), or clearly document as backward-incompatible change.\r\n\r\n```\r\n(v) $ cat /tmp/o.robot \r\n*** Test Cases ***\r\nTest Outputdir type\r\n ${outputdir}= Get Variable Value ${OUTPUT_DIR}\r\n ${type}= Evaluate str(type($outputdir))\r\n Should be Equal ${type} \r\n\r\n\r\n(v) $ robot /tmp/o.robot \r\n==============================================================================\r\nO \r\n==============================================================================\r\nTest Outputdir type | FAIL |\r\n != \r\n------------------------------------------------------------------------------\r\nO | FAIL |\r\n1 test, 0 passed, 1 failed\r\n==============================================================================\r\n\r\n```\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4988","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/events","html_url":"https://github.com/robotframework/robotframework/issues/4988","id":2050891329,"node_id":"I_kwDOAUSaQ856Ph5B","number":4988,"title":"Change paths passed to listener v3 methods to `pathlib.Path` instances","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-12-20T16:22:48Z","updated_at":"2023-12-21T00:05:30Z","closed_at":"2023-12-20T16:27:38Z","author_association":"MEMBER","active_lock_reason":null,"body":"Listeners have methods like `output_file` and `log_file` that are called when result files are ready. At the moment they get the path to the file as a string, but I believe with listener v3 methods we should use [pathlib.Path](https://docs.python.org/3/library/pathlib.html) instead. `Path` instances are more convenient to use and we are now enhancing v3 listeners also otherwise.\r\n\r\nThis change is backwards incompatible, but in most cases `str` and `Path` work the same way, so it's unlikely that the change causes big problems. For example, our acceptance tests passed after I changed the type locally and I needed to add special checks to make sure the received path is actually `Path`.\r\n\r\nAlthough the change is pretty safe, with listener v2 it's anyway safer to keep using `str`. We are also otherwise just using base types with them.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4983","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/events","html_url":"https://github.com/robotframework/robotframework/issues/4983","id":2046451861,"node_id":"I_kwDOAUSaQ855-mCV","number":4983,"title":"Type conversion: Remove support for deprecated `ByteString`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-18T11:25:42Z","updated_at":"2023-12-20T23:39:02Z","closed_at":"2023-12-18T23:18:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"[collections.abc.ByteString](https://docs.python.org/3/library/collections.abc.html#collections.abc.ByteString) that Robot's argument conversion supports has been deprecated in Python 3.12 and will be removed in Python 3.14. This basically makes the current Robot Framework code incompatible with Python 3.14 that's released already in 2025, and also means that there are deprecation warnings with Python 3.12 already now.\r\n\r\n`ByteString` conversion isn't that useful and I believe the best way to handle these problems is to simply not support it. This is how conversion currently works if you use `arg: ByteString`:\r\n\r\n1. If the given argument is an instance `bytes` or `bytearray` (i.e. is already an insteance of `ByteString`), it is passed to the keyword as-is.\r\n2. Otherwise, it is converted to `bytes` the same way as if the keyword would have used `arg: bytes`.\r\n\r\nI don't consider these semantics too useful. I don't see how often you'd like to have a keyword that gets either `bytes` or `bytearray`, when you could use `arg: bytes` or `arg: bytearray` to get one of them. More importantly, if you have such a need, using `arg: bytes | bytearray` works exactly the same way and makes then intention more clear.\r\n\r\nRemoving the support for `ByteString` conversion is obviously a backwards incompatible change, but I doubt there are many users for it, they can easily use `bytes | bytearray` instead, and they anyway need to do that relatively soon when `ByteString` will be gone. I wish we would have done this earlier in RF 7.0 development cycle, but believe doing it still now before the release candidate is fine.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4982","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/events","html_url":"https://github.com/robotframework/robotframework/issues/4982","id":2046052749,"node_id":"I_kwDOAUSaQ8559EmN","number":4982,"title":"DateTime: Support `datetime.date` as an input format with date related keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-18T08:43:03Z","updated_at":"2023-12-20T23:39:01Z","closed_at":"2023-12-18T11:54:59Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently the library only accepts `datetime.datetime`, strings (timestamps) and numbers (epoch seconds). Supporting also `datetime.date` would be trivial and it would mean users don't need to convert `datetime.date` objects they get to a supported format themselves. Based on a discussion on our Slack, `datetime.date` objects can be produced at least by FakerLibrary.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4980","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/events","html_url":"https://github.com/robotframework/robotframework/issues/4980","id":2045996180,"node_id":"I_kwDOAUSaQ85582yU","number":4980,"title":"DateTime library uses deprecated `datetime.utcnow()`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-18T08:21:10Z","updated_at":"2023-12-20T23:39:01Z","closed_at":"2023-12-18T11:54:59Z","author_association":"MEMBER","active_lock_reason":null,"body":"[datetime.datetime.utcnow()](https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow) has been deprecated in Python 3.12 and `datetime.datetime.now(datetime.UTC)` should be used instead. That `datetime.UTC` is new in Python 3.11, so we need to use either version or feature detection to avoid using it with earlier Python versions.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4979","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/events","html_url":"https://github.com/robotframework/robotframework/issues/4979","id":2045440625,"node_id":"I_kwDOAUSaQ8556vJx","number":4979,"title":"Add `robot.result.TestSuite.to/from_xml` methods","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-12-18T00:10:08Z","updated_at":"2023-12-20T23:39:00Z","closed_at":"2023-12-18T00:27:15Z","author_association":"MEMBER","active_lock_reason":null,"body":"The current API we have for working with output.xml files programmatically requires using the `ExecutionResult` factory method. It returns a `Result` object, that contains a `TestSuite` object in its `suite` attribute. The suite can be inspected and also modified, and the `Result` object has a `save` method for saving results back to XML after possible modifications. This is ok for many usages, but having a more convenient API for working with `TestSuite` objects would be nice.\r\n\r\nThe result model gets `to/from_json` methods in RF 7.0 (#4847) and we could add `to/from_xml` to `TestSuite` as well. Similarly as the JSON counterparts, `to_xml` should return the XML by default, but also support writing it to a file. `from_xml` should work both with files and XML strings as well. We have all needed functionality for reading and writing XML available, so implementing these methods is easy. There are some design decision to be made, though:\r\n\r\n1. Should the `` structure returned by `to_xml` be wrapped with `` the same way as in output.xml? I believe it's not a good idea at least by default. The suite anyway wouldn't have anything to write to `` and although `` could be created, it would feel somewhat strange. Returning just the `` is also consistent with what `to_json` returns. Being able to create a full output.xml with something like `full=True` could be convenient, but it can be added later if needed.\r\n2. Should XML returned by `to_xml` contain the XML prolog (i.e. ``)? I believe it's not a good idea at least as the default behavior. It's optional in XML and could get in the way. Probably should be included if we supported something like `full=True`.\r\n3. Should `from_xml` support both \"full\" output.xml files and files containing only ``? I belive both should be supportred. Not supporting normal output.xml files would be *very* inconvenient and not supporting files generated by `to_xml` would be unacceptable. This is probably easiest to implement so that we in general support output.xml with and without ``.\r\n4. What to do if `from_xml` is used with an output.xml containing ``? Options include ignoring them, reporting them or raising an exception. Because `` doesn't really affect the final execution status, I believe we can ignore them as long as it's mentioned in the documentation. Adding something like ` ignore_errors=True` that can be set to `False` could be considered as well, but probably those who are interested in these errors can just use `ExecutionResult`.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4976","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/events","html_url":"https://github.com/robotframework/robotframework/issues/4976","id":2041565598,"node_id":"I_kwDOAUSaQ855r9Ge","number":4976,"title":"Support string `SELF` (case-insenstive) when library registers itself as listener","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-12-14T12:08:08Z","updated_at":"2023-12-14T23:55:28Z","closed_at":"2023-12-14T13:04:07Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently if a library registers itself to be a listener, it needs to do it like this:\r\n\r\n```python\r\nclass Library:\r\n\r\n def __init__(self):\r\n self.ROBOT_LIBRARY_LISTENER = self\r\n\r\n def start_test(self, data, result):\r\n ...\r\n```\r\n\r\nThis is somewhat annoying and also makes it impossible to configure the listener using the `@library` decorator. We should allow using string `SELF` in this case. It would allow changing the above to this:\r\n```python\r\nclass Library:\r\n ROBOT_LIBRARY_LISTENER = 'SELF'\r\n\r\n def start_test(self, data, result):\r\n ...\r\n```\r\n\r\nIt would also support even more convenient `@library` usage that would automatically make sure listener methods are not registered as keywords:\r\n```python\r\nfrom robot.api.deco import keyword, library\r\n\r\n\r\n@library(listener='self')\r\nclass Library:\r\n\r\n def start_test(self, data, result):\r\n ...\r\n\r\n @keyword\r\n def example(self):\r\n ...\r\n```\r\n\r\nThis is trivial to implement and fits well with other listener enhancements #3296 and #4910 done in RF 7.0.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4975","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/events","html_url":"https://github.com/robotframework/robotframework/issues/4975","id":2041183531,"node_id":"I_kwDOAUSaQ855qf0r","number":4975,"title":"Support `times` and `x` suffixes with `WHILE` limit to make it more compatible with `Wait Until Keyword Succeeds`","user":{"login":"vnkarthik87","id":11714466,"node_id":"MDQ6VXNlcjExNzE0NDY2","avatar_url":"https://avatars.githubusercontent.com/u/11714466?v=4","gravatar_id":"","url":"https://api.github.com/users/vnkarthik87","html_url":"https://github.com/vnkarthik87","followers_url":"https://api.github.com/users/vnkarthik87/followers","following_url":"https://api.github.com/users/vnkarthik87/following{/other_user}","gists_url":"https://api.github.com/users/vnkarthik87/gists{/gist_id}","starred_url":"https://api.github.com/users/vnkarthik87/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vnkarthik87/subscriptions","organizations_url":"https://api.github.com/users/vnkarthik87/orgs","repos_url":"https://api.github.com/users/vnkarthik87/repos","events_url":"https://api.github.com/users/vnkarthik87/events{/privacy}","received_events_url":"https://api.github.com/users/vnkarthik87/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-12-14T08:21:45Z","updated_at":"2023-12-14T23:55:28Z","closed_at":"2023-12-14T13:04:06Z","author_association":"NONE","active_lock_reason":null,"body":"**Current Behaviour:**\r\nCurrently, WHILE loop have argument 'limit' which handles both 'timeout' and 'number of times loop to iterate'.\r\nIn most of the Robotframework keywords, timeout functionality supports values without suffix (for example, argument value 300 is equivalent to 300 seconds)\r\n\r\nWhen developers use the limit argument for timeout, they forget the suffix (s, sec, min...), as most of the keywords in RobotFramework supports timeout in seconds without suffix. \r\n\r\nFor example, below keywords in Robot Framework supports without suffix, except WHILE loop\r\n```\r\nSleep 300 # Sleeps for 300 seconds\r\nWait Until Keyword Succeeds 300 30 My Keyword args # Retries My Keyword for 300 second, every 30 seconds\r\nWHILE ${status}==${TRUE} limit=300 # Loops 300 times. This is conflicting with rest other keyword timeout argument values.\r\n```\r\n\r\n**Feature Request (Either of Possibility 1 OR Possibility 2):**\r\n\r\n**Possibility 1:**\r\nCan there be a timeout argument in addition to limit argument to support timeout even without suffix. (supports timestring, number or integer)\r\nThis will avoid additional instructions to RobotFramework Developers, that to be careful when providing 'limit' argument to WHILE loop. Below is the feature request example.\r\n\r\nExample:\r\n\r\n```\r\nWHILE ${status}==${TRUE} limit=5 # Loops 5 times\r\nWHILE ${status}==${TRUE} timeout=300 # Loops only for 5 minutes or 300 seconds\r\n```\r\n\r\n_**OR**_\r\n\r\n**Possibility 2:**\r\nCan there be a suffix added to limit, something like 'x' or 'times' as in 'Wait Until Keyword Succeeds'. Same argument name 'limit' should work for both timeout and number of times. 'timeout' argument name not required in this case.\r\n\r\nExample:\r\n\r\n```\r\nWHILE ${status}==${TRUE} limit=5x # Loops 5 times\r\nWHILE ${status}==${TRUE} limit=10 times # Loops 10 times\r\nWHILE ${status}==${TRUE} limit=300 # Timeout after 5 minutes or 300 seconds of looping\r\nWHILE ${status}==${TRUE} limit=2m # Timeout after 2 minutes of looping\r\n```\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4967","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/events","html_url":"https://github.com/robotframework/robotframework/issues/4967","id":2026489946,"node_id":"I_kwDOAUSaQ854ycha","number":4967,"title":"Variables are not resolved in keyword name in WUKS error message","user":{"login":"adrszad","id":17517440,"node_id":"MDQ6VXNlcjE3NTE3NDQw","avatar_url":"https://avatars.githubusercontent.com/u/17517440?v=4","gravatar_id":"","url":"https://api.github.com/users/adrszad","html_url":"https://github.com/adrszad","followers_url":"https://api.github.com/users/adrszad/followers","following_url":"https://api.github.com/users/adrszad/following{/other_user}","gists_url":"https://api.github.com/users/adrszad/gists{/gist_id}","starred_url":"https://api.github.com/users/adrszad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adrszad/subscriptions","organizations_url":"https://api.github.com/users/adrszad/orgs","repos_url":"https://api.github.com/users/adrszad/repos","events_url":"https://api.github.com/users/adrszad/events{/privacy}","received_events_url":"https://api.github.com/users/adrszad/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-05T15:34:06Z","updated_at":"2023-12-07T00:15:57Z","closed_at":"2023-12-06T23:37:31Z","author_association":"NONE","active_lock_reason":null,"body":"RF version: 6.1.1\r\n```\r\n*** Settings ***\r\nDocumentation scratch\r\n\r\n*** Test Cases ***\r\nTest\r\n KW Fail\r\n\r\n*** Keywords ***\r\nKW\r\n [Arguments] ${name}\r\n Wait Until Keyword Succeeds 3x 1s ${name}\r\n```\r\n![image](https://github.com/robotframework/robotframework/assets/17517440/53bfe22a-c824-4876-9037-acae455590ef)\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4965","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/events","html_url":"https://github.com/robotframework/robotframework/issues/4965","id":2023429239,"node_id":"I_kwDOAUSaQ854mxR3","number":4965,"title":"RF 7.0a2 fails to import keywords having parameters with Literal type","user":{"login":"jyligehc","id":126325830,"node_id":"U_kgDOB4eURg","avatar_url":"https://avatars.githubusercontent.com/u/126325830?v=4","gravatar_id":"","url":"https://api.github.com/users/jyligehc","html_url":"https://github.com/jyligehc","followers_url":"https://api.github.com/users/jyligehc/followers","following_url":"https://api.github.com/users/jyligehc/following{/other_user}","gists_url":"https://api.github.com/users/jyligehc/gists{/gist_id}","starred_url":"https://api.github.com/users/jyligehc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jyligehc/subscriptions","organizations_url":"https://api.github.com/users/jyligehc/orgs","repos_url":"https://api.github.com/users/jyligehc/repos","events_url":"https://api.github.com/users/jyligehc/events{/privacy}","received_events_url":"https://api.github.com/users/jyligehc/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-12-04T09:45:43Z","updated_at":"2024-01-11T14:44:32Z","closed_at":"2023-12-06T23:37:41Z","author_association":"NONE","active_lock_reason":null,"body":"Tested with Python 3.10 and RF 7.0a2\r\n\r\n```python\r\nEquipmentSection = Literal[\"csi\", \"rec\", \"other\", \"simulator\"]\r\n\r\n# And keyword later:\r\n @keyword\r\n def fetch_additional_equipment(self, additional: str, key: EquipmentSection = \"other\") -> None:\r\n \r\n\r\n\r\n```\r\nWith RF 7.0a2 it will cause following ERROR:\r\n\r\n```bash\r\nError in library 'tafrf.utils.equipment_logger.EquipmentLogging': Adding keyword 'fetch_additional_equipment' failed: 'Literal' does not accept parameters, 'Literal[csi, rec, other, simulator]' has 4.\r\n```\r\n\r\nAbove will not fail with RF6.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4964","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/events","html_url":"https://github.com/robotframework/robotframework/issues/4964","id":2020899990,"node_id":"I_kwDOAUSaQ854dHyW","number":4964,"title":"Variables set using `Set Suite Variable` with `children=True` cannot be properly overwritten","user":{"login":"oetzus","id":12053218,"node_id":"MDQ6VXNlcjEyMDUzMjE4","avatar_url":"https://avatars.githubusercontent.com/u/12053218?v=4","gravatar_id":"","url":"https://api.github.com/users/oetzus","html_url":"https://github.com/oetzus","followers_url":"https://api.github.com/users/oetzus/followers","following_url":"https://api.github.com/users/oetzus/following{/other_user}","gists_url":"https://api.github.com/users/oetzus/gists{/gist_id}","starred_url":"https://api.github.com/users/oetzus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oetzus/subscriptions","organizations_url":"https://api.github.com/users/oetzus/orgs","repos_url":"https://api.github.com/users/oetzus/repos","events_url":"https://api.github.com/users/oetzus/events{/privacy}","received_events_url":"https://api.github.com/users/oetzus/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-12-01T13:38:20Z","updated_at":"2023-12-20T23:39:00Z","closed_at":"2023-12-19T14:37:10Z","author_association":"NONE","active_lock_reason":null,"body":"I noticed that when \"Set Suite Variable\" is used with children=${True} in a suite setup and is then overwritten again within the the test case, the variable still has the old value when logged in a separate keyword. To better explain it, here's a simple test case to reproduce the error:\r\n```\r\n*** Settings ***\r\nSuite Setup Test Suite Setup\r\n\r\n*** Test Cases ***\r\nVariable Test\r\n Log ${test_variable}\r\n Set Suite Variable \\${test_variable} test case level content\r\n Log ${test_variable}\r\n Check Variable\r\n\r\n*** Keywords ***\r\nTest Suite Setup\r\n Set Suite Variable \\${test_variable} suite setup level content children=${True}\r\n Log ${test_variable}\r\n Check Variable\r\n\r\nCheck Variable\r\n Log ${test_variable}\r\n```\r\n\r\nIn the suite setup, the suite variable ${test_variable} is set using children=${True}. Logging the variable directly afterwards and additionally in the separate keyword \"Check Variable\" returns the correct value \"suite setup level content\".\r\nThen in the test case, the suite variable is overwritten with \"test case level content\". Logging the variable before that step returns \"suite setup level content\" and after overwriting the variable the logging returns \"test case level content\" as expected.\r\nHowever, when executing \"Check Variable\" again in the test case, the value is again \"suite setup level content\", so the old value instead of the new.\r\n\r\nYou may say now that the \"children\" parameter does not make sense to use on this level, but the same problem also occurs when I set the suite variable on a higher level in the __init__.robot file. Only because of simplicity I did it now in the suite setup of the same robot file. But nonetheless, using it on this level with the \"children\" parameter shouldn't lead to this behavior.\r\n\r\nIn fact, the issue happens even on multiple levels if there are more suite setups on different levels. \r\nThat means, if I set the suite variable in the __init__.robot file to the value \"a\", then execute \"Check Variable\" in the __init__.robot file, the value is \"a\" (as expected). Then in the \"Test Suite Setup\" keyword I set the value to \"b\", but \"Check Variable\" still returns \"a\". Then in the test case, I set the value to \"c\", but \"Check Variable\" returns this time \"b\", so always the value which was set \"one layer above\".","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4960","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/events","html_url":"https://github.com/robotframework/robotframework/issues/4960","id":2011611926,"node_id":"I_kwDOAUSaQ8535sMW","number":4960,"title":"Support integer conversion with strings representing whole number floats like `'1.0'` and `'2e10'`","user":{"login":"JFoederer","id":32476108,"node_id":"MDQ6VXNlcjMyNDc2MTA4","avatar_url":"https://avatars.githubusercontent.com/u/32476108?v=4","gravatar_id":"","url":"https://api.github.com/users/JFoederer","html_url":"https://github.com/JFoederer","followers_url":"https://api.github.com/users/JFoederer/followers","following_url":"https://api.github.com/users/JFoederer/following{/other_user}","gists_url":"https://api.github.com/users/JFoederer/gists{/gist_id}","starred_url":"https://api.github.com/users/JFoederer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JFoederer/subscriptions","organizations_url":"https://api.github.com/users/JFoederer/orgs","repos_url":"https://api.github.com/users/JFoederer/repos","events_url":"https://api.github.com/users/JFoederer/events{/privacy}","received_events_url":"https://api.github.com/users/JFoederer/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-11-27T06:53:43Z","updated_at":"2023-12-07T00:15:56Z","closed_at":"2023-11-27T20:16:41Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Type conversions are a very convenient feature in Robot framework. To make them that extra bit convenient I propose an enhancement.\r\n\r\nCurrently passing any string representation of a `float` number to a keyword accepting only `int` will fail. In most cases this is justified, but there are situations where floats are convertible to `int` just fine. Examples are `\"1.0\"`, `\"2.00\"` or `\"1e100\"`. Note that these conversions currently are already accepted when passed as type `float` (i.e. `${1.0}` or `${1e100}`. Conversion for numbers for which the decimal part is non-zero should still fail. We are talking about conversion here, not type casting.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4958","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/events","html_url":"https://github.com/robotframework/robotframework/issues/4958","id":2009359982,"node_id":"I_kwDOAUSaQ853xGZu","number":4958,"title":"Document `robot_running` and `dry_run_active` properties of the BuiltIn library in the User Guide","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-24T09:06:58Z","updated_at":"2023-12-07T00:15:56Z","closed_at":"2023-11-24T16:43:00Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"In issue #4666 we introduced 2 new properties `robot_running` and `dry_run_active` to better support library developers, but these properties were not documented anywhere. \r\n\r\nFor RobotCode I regularly get problems that the libdoc cannot be generated (e.g. #d-biehl/robotcode/issues/180) and there are some suggestions for improvement here as well (e.g. #4906)\r\n\r\nI think we should introduce a small chapter under chapter 4 in the user manual on this topic, with some examples like here https://github.com/d-biehl/robotcode/issues/180#issuecomment-1816141730","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4957","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/events","html_url":"https://github.com/robotframework/robotframework/issues/4957","id":2009280508,"node_id":"I_kwDOAUSaQ853wy_8","number":4957,"title":"[BUG] new VAR syntax with dynamic variable name throws an error if the variable comes from a lower scope ","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-24T08:05:03Z","updated_at":"2024-01-11T14:44:57Z","closed_at":"2023-12-08T14:38:55Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"with RFW v7.0a2\r\n\r\nI'm struggling with the new VAR syntax and the possibility to use dynamic variable names.\r\n\r\n```robot\r\n*** Test Cases ***\r\nfirst\r\n VAR ${basename} var\r\n VAR ${${basename}_1} scope=GLOBAL\r\n\r\n Log ${var_1}\r\n```\r\n\r\nI would assume that the test case creates a new global variable ${var_1}, but I only get the error message from robot:\r\n\r\n`[ FAIL ] Setting variable '${${basename}_1}' failed: Variable '${basename}' not found.`\r\n\r\nThe same bug also occurs if I specify the scope SUITE. Without scope or with LOCAL or TEST works. \r\n\r\nif the scope of the `${basename}` var is higher or equals the scope of the new `${${basename}_1}` it works.\r\n\r\nI would assume that the name of the dynamic variable is resolved in the same scope in which it is written, not in the scope in which it is to be defined.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4956","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/events","html_url":"https://github.com/robotframework/robotframework/issues/4956","id":2008894473,"node_id":"I_kwDOAUSaQ853vUwJ","number":4956,"title":"DotDict behaves inconsistent on equality checks. `x == y` != `not x != y` and not `x != y` == `not x == y`","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-23T23:41:14Z","updated_at":"2023-12-14T23:57:02Z","closed_at":"2023-11-27T21:26:12Z","author_association":"MEMBER","active_lock_reason":null,"body":"As found in #4955 `==` and `!=` do behave differently on DotDict.\r\n\r\nWhile `==` behaves like `dict` the `!=` does behave like OrderedDict.\r\n\r\nQuote:\r\nThis `not a == b` vs `a != b` was the reason the utest fail in the branch.\r\nAnd i would consider this an actual bug in DotDict implementation?\r\n\r\n\r\n```python\r\nfrom collections import OrderedDict\r\nfrom robot.utils import DotDict\r\n\r\n# Normal dict: the order isn't relevant\r\nnorm_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}\r\nnorm_dict_reverse = {'g': 7, 'f': 6, 'e': 5, 'd': 4, 'c': 3, 'b': 2, 'a': 1}\r\n\r\nnorm_dict == norm_dict_reverse # True\r\nnorm_dict != norm_dict_reverse # False\r\nnot norm_dict == norm_dict_reverse # False\r\nnot norm_dict != norm_dict_reverse # True\r\n\r\n# OrderedDict: the order is important\r\norder_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6), ('g', 7)])\r\norder_dict_reverse = OrderedDict([('g', 7), ('f', 6), ('e', 5), ('d', 4), ('c', 3), ('b', 2), ('a', 1)])\r\n\r\norder_dict == order_dict_reverse # False\r\norder_dict != order_dict_reverse # True\r\nnot order_dict == order_dict_reverse # True\r\nnot order_dict != order_dict_reverse # False\r\n\r\n#DotDict : the order isn't relevant with == but is relevant with !=\r\ndot_dict = DotDict({'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7})\r\ndot_dict_reverse = DotDict({'g': 7, 'f': 6, 'e': 5, 'd': 4, 'c': 3, 'b': 2, 'a': 1})\r\ndot_dict == dot_dict_reverse # True because order is not relevant with ==\r\ndot_dict != dot_dict_reverse # True because order is relevant with !=\r\nnot dot_dict == dot_dict_reverse # False\r\nnot dot_dict != dot_dict_reverse # False\r\n```\r\n\r\nThis also appears in Robot Framework Usage:\r\n\r\nDotDict\r\n![image](https://github.com/robotframework/robotframework/assets/41592183/19adc29d-88ca-4eea-b121-5f08f5e39492)\r\n\r\nOrderedDict\r\n![image](https://github.com/robotframework/robotframework/assets/41592183/e35dce29-5552-4f97-9181-45933f672416)\r\n\r\nNormal python dict\r\n![image](https://github.com/robotframework/robotframework/assets/41592183/5d6444be-10ff-4d2a-a995-a2e9cffa0abc)\r\n\r\n\r\nFix should just be adding this to DotDict:\r\n```python \r\n def __ne__(self, other):\r\n return not self == other\r\n```\r\n\r\nI think it is easiest if you quickly add this and a test for it yourself.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4954","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/events","html_url":"https://github.com/robotframework/robotframework/issues/4954","id":2006145427,"node_id":"I_kwDOAUSaQ853k1mT","number":4954,"title":"Collections and String: Add `ignore_case` as alias for `case_insensitive`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":121827221,"node_id":"MDU6TGFiZWwxMjE4MjcyMjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/deprecation","name":"deprecation","color":"fef2c0","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-22T11:32:12Z","updated_at":"2023-11-22T19:02:21Z","closed_at":"2023-11-22T13:05:23Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added case-insensitive comparison support to various Collections keywords so that keywords got an optional `ignore_case` argument (#4343). While doing that, we noticed that four Collections keywords already supported case-insensitivity and had `case_insensitive` argument for that purpose. This kind of inconsistency within a library isn't great, so something needs to be done to it.\r\n\r\nAn easy solution would be using `case_insensitive` also with the new keywords. That would make Collections consistent, but because we use `ignore_case` in BuiltIn (#2439), different libraries would be inconsistent. I believe we should aim for consistency with all standard libraries and also believe that that `ignore_case` is a better argument name than `case_insensitive`. It is also consistent with other similar arguments like `ignore_order` and `ignore_keys` in Collections.\r\n\r\nThe plan is to do the following:\r\n- Add `ignore_case` argument to Collections keywords that accept `case_insensitive`. The old argument should be preserved for now, but it should be mentioned in the documentation that the new one is preferred. We shouldn't yet emit deprecation warnings, but we can start doing that in RF 8.0.\r\n- For consistency reasons, add `ignore_whitespace` to these same keywords as an alias for `whitespace_insensitive`. It should be treated the same way a `case_insensitive`.\r\n- For consistency reasons, add `ignore_case` as an alias also for the two String library keywords that accept `case_insensitive`.\r\n\r\nAlthough we won't be emitting deprecation warnings, it's good to mention this under the deprecated features section in the release notes.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4952","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/events","html_url":"https://github.com/robotframework/robotframework/issues/4952","id":2005409981,"node_id":"I_kwDOAUSaQ853iCC9","number":4952,"title":"Collections: Make `ignore_order` and `ignore_keys` recursive","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-22T01:39:28Z","updated_at":"2023-11-22T19:02:21Z","closed_at":"2023-11-22T13:05:22Z","author_association":"MEMBER","active_lock_reason":null,"body":"`Lists Should Be Equal` accepts `ignore_order` (#2703) and `Dictionaries Should Be Equal` accepts `ignore_keys` (#2717). Currently both of them only work with the list/dict given to them and not recursively. We added recursive `Normalizer` class to support case-insensitive comparisons recursively (#4343), and we can easily extend it to handle also other normalization. Then also they will work recursively which I consider useful.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4945","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/events","html_url":"https://github.com/robotframework/robotframework/issues/4945","id":1994761082,"node_id":"I_kwDOAUSaQ8525aN6","number":4945,"title":"`TypedDict` with forward references do not work in argument conversion","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-11-15T13:16:23Z","updated_at":"2023-11-22T19:02:20Z","closed_at":"2023-11-15T20:58:32Z","author_association":"MEMBER","active_lock_reason":null,"body":"If we use a `TypedDict` like below as a type hint, type conversion is done for key `x` but not for `y`. \r\n\r\n```python\r\nfrom typing import TypedDict\r\n\r\nclass Example(TypedDict):\r\n x: int\r\n y: 'int'\r\n```\r\n\r\nThis is different compared to functions and methods where argument conversion is done both for `x` and `y` if we have `def example(x: int, y: 'int')`. The reason is that with `TypedDict` the annotation assigned to `y` by Python is `ForwardRef`, while with functions and methods we get the original string. Our conversion logic handles strings as aliases but doesn't know that to do with `ForwardRef`s.\r\n\r\nA simple fix for this issue is using `typing.get_type_hints` for getting types instead of accessing `__annotations__` like we currently do. That has a problem that using something like `x: 'int | float'` will cause an error with Python < 3.10. We just added support for such stringified types in arguments (#4711) and supporting them with `TypedDict` would be good as well. I guess we need to use `get_type_hints` first and then access `__annotations__` as a fall-back. Then we may get `ForwardRef`s and need to handle them as well.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4942","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/events","html_url":"https://github.com/robotframework/robotframework/issues/4942","id":1989326702,"node_id":"I_kwDOAUSaQ852krdu","number":4942,"title":"Add public argument conversion API for libraries and other tools","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-11-12T09:42:57Z","updated_at":"2023-11-22T19:02:19Z","closed_at":"2023-11-16T11:27:16Z","author_association":"MEMBER","active_lock_reason":null,"body":"Hi @pekkaklarck ,\r\n\r\nWe are using `TypeConverter` class in Robot Framework Browser in multiple places, to convert arguments of `*varagrs` when calling internal keywords.\r\nUnfortunately this API is no longer be able to digest real `type` values.\r\n\r\n```python\r\nfrom robot.running.arguments.typeconverters import TypeConverter\r\nTypeConverter.converter_for(int)\r\n```\r\n\r\nWe need “dynamic” type conversion because of many reasons.\r\n\r\nWith dynamic i mean we do Robot type conversion inside Browser lib when Robot is not able to do.\r\n\r\n1. We do have situations where we deprecate positional args in favour of named only ones. In these cases we introduce a `*varags` argument that collects all old positional args and assigns them in the old order to the variables inside. Therefore there is no type hinting in the arguments. but we have a Catalog of the original types which can be used to convert.\r\n2. We do have keywords like `Promise To` and `Wait For Condition` which calls our keywords internally and has `*args` to take the arguments. These two keywords iterate over the called keywords interface and try to convert the arguments according to their type. Also in this case we want/need to support dynamic argument conversion.\r\n\r\nFor us it is not really important, if exactly this function `converter_for()` will stay compatible or if a new function will be implemented to get to get the proper converter for a Python type.\r\nHowever it would be more convenient for our users to stay compatible, so they do not necessarily need to update Browser, when updating RF.\r\n\r\nWe do currently:\r\n```python\r\nconverter = TypeConverter.converter_for(argument_type)\r\n if converter is not None:\r\n params[argument_name] = converter.convert(\r\n argument_name, params.get(argument_name)\r\n )\r\n```\r\n\r\nA Public API for this would be nice too.\r\nOr maybe even just a convenient function for Converting value to type as a static method.\r\nSomething like `TypeConverters.convert_to_type(name: str, value: Any, destination_type: type)` \r\n\r\nCheers","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4939","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/events","html_url":"https://github.com/robotframework/robotframework/issues/4939","id":1987512274,"node_id":"I_kwDOAUSaQ852dwfS","number":4939,"title":"Parsing model: Rename `Return` to `ReturnSetting` and `ReturnStatement` to `Return`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-10T12:14:27Z","updated_at":"2023-11-22T19:02:19Z","closed_at":"2023-11-13T12:34:52Z","author_association":"MEMBER","active_lock_reason":null,"body":"The deprecated `[Return]` setting is currently represented in the parsing model using a `Return` class and the `RETURN` statement is represented as `ReturnStatement`. For consistency with other control structures, it's better to change this so that `Return` represents `RETURN` and `[Return]` is represented by `ReturnSetting`. We already added `ReturnSetting` as a forwards compatible alias for `Return` in RF 6.1 (#4656) exactly for this purpose. The `ModelVisitor` base class also support `visit_ReturnSetting` already now.\r\n\r\nIn practice this is what needs to be done:\r\n- Rename `Return` to `ReturnSetting` and remove the current `ReturnSetting` alias.\r\n- Rename `ReturnStatement` to `Return`.\r\n- Add `ReturnStatement` alias for backwards compatibility.\r\n- Add support for `visit_ReturnStatement` to the `ModelVisitor`. It will be called with `Return` nodes if `visit_Return` is missing.\r\n\r\nThis is a backwards incompatible change and tools working with the parsing model need to be updated. When using `ModelVisitor`, the following code ought to work with all versions. If only RF 6.1 or newer needs to be supported, `visit_Return` isn't needed because Robot will automatically call appropriate `visit_ReturnXxx` method.\r\n\r\n```python\r\nfrom robot import __version__ as robot_version\r\nfrom robot.api.parsing import ModelVisitor\r\n\r\n\r\nRF7_OR_NEWER = int(robot_version.split('.')[0]) >= 7\r\n\r\n\r\nclass Example(ModelVisitor):\r\n\r\n def visit_Return(self, node):\r\n if RF7_OR_NEWER:\r\n self.visit_ReturnStatement(node)\r\n else:\r\n self.visit_ReturnSetting(node)\r\n\r\n def visit_ReturnStatement(self, node):\r\n ...\r\n\r\n def visit_ReturnSetting(self, node):\r\n ...\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4936","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/events","html_url":"https://github.com/robotframework/robotframework/issues/4936","id":1985697739,"node_id":"I_kwDOAUSaQ852W1fL","number":4936,"title":"Remove bytes support from `robot.utils.normalize` function","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-09T14:05:24Z","updated_at":"2023-11-22T19:24:37Z","closed_at":"2023-11-09T15:15:31Z","author_association":"MEMBER","active_lock_reason":null,"body":"Our `normalize` utility is used for normalizing strings, but it also supports bytes. The reason for the bytes support is that in Python 2 `str` actually was bytes and we needed to handle that in addition to `unicode`. In Python 3 strings and bytes are separated properly, and this kind of string manipulation doesn't make sense with bytes. The bytes support makes the code a bit more complicated and removing it will also make the code a tiny bit faster.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4935","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/events","html_url":"https://github.com/robotframework/robotframework/issues/4935","id":1985689764,"node_id":"I_kwDOAUSaQ852Wzik","number":4935,"title":"Use `casefold`, not `lower`, when comparing strings case-insensitively","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-11-09T14:01:26Z","updated_at":"2023-11-09T15:15:32Z","closed_at":"2023-11-09T15:15:31Z","author_association":"MEMBER","active_lock_reason":null,"body":"We currently use [str.lower()](https://docs.python.org/3/library/stdtypes.html#str.lower). when comparing strings case-insensitively, but it would be better to use [str.casefold()](https://docs.python.org/3/library/stdtypes.html#str.casefold). From the documentation of the latter:\r\n\r\n> Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. For example, the German lowercase letter 'ß' is equivalent to \"ss\". Since it is already lowercase, [lower()](https://docs.python.org/3/library/stdtypes.html#str.lower) would do nothing to 'ß'; [casefold()](https://docs.python.org/3/library/stdtypes.html#str.casefold) converts it to \"ss\".\r\n\r\nThere aren't too many cases where the difference between `lower` and `casefold` matters, but there's no performance difference between them either and the change is trivial. This change should be done at least to our `normalize()` utility that is used internally in various places both directly and indirectly. Should also change keywords in BuiltIn that support case-insensitivity the same way.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4934","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/events","html_url":"https://github.com/robotframework/robotframework/issues/4934","id":1981604110,"node_id":"I_kwDOAUSaQ852HOEO","number":4934,"title":"Enhance performance of visiting parsing model","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-11-07T15:16:42Z","updated_at":"2023-11-10T13:04:28Z","closed_at":"2023-11-07T15:44:58Z","author_association":"MEMBER","active_lock_reason":null,"body":"When Robot parses data files, it produces a model that both Robot itself and external tools use. Going through the model is easiest by using [visitors](https://robot-framework.readthedocs.io/en/stable/autodoc/robot.parsing.model.html#robot.parsing.model.visitor.ModelVisitor). That is typically pretty fast, but it is possible to enhance the performance, for example, by caching visitor methods. These enhancements are especially important for external tools such as editor plugins that need to process lot of data. \r\n\r\nWe already have PR #4911 by @d-biehl that adds visitor method caching. This issue exists mainly for tracking purposes, but it also covers mentioning caching in visitor documentation. Possible additional performance enhancements can be linked to this same issue as well.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4933","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/events","html_url":"https://github.com/robotframework/robotframework/issues/4933","id":1981359348,"node_id":"I_kwDOAUSaQ852GST0","number":4933,"title":"Type conversion: Ignore hyphens when matching enum members","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-07T13:26:01Z","updated_at":"2023-11-07T15:44:58Z","closed_at":"2023-11-07T15:44:57Z","author_association":"MEMBER","active_lock_reason":null,"body":"Enum conversion is already now case, space and underscore insensitive (#3611). Ignoring also hyphens would mean that enums like\r\n```python\r\nclass Click(Enum):\r\n left_click = auto()\r\n right_click = auto()\r\n```\r\ncould be used as `left-click` in addition to the exact match `left_click` and other normalized variants like `left click`.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/timeline","performed_via_github_app":null,"state_reason":"completed","score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z","issues":{"total_count":77,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4793","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/events","html_url":"https://github.com/robotframework/robotframework/issues/4793","id":1751454828,"node_id":"I_kwDOAUSaQ85oZRRs","number":4793,"title":"Enhance programmatic API to create resource files","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-06-11T14:36:37Z","updated_at":"2023-06-11T16:22:43Z","closed_at":"2023-06-11T16:22:43Z","author_association":"MEMBER","active_lock_reason":null,"body":"The main motivation is making it easier to create resource files so that they can be converted to JSON. JSON support it self is #3902. `ResourceFile` already has `to_json` and `from_json` methods, but two additional things are needed to make it's usage more convenient:\r\n\r\n- It needs to be exposed via `robot.running`.\r\n- It needs `from_file_system`, `from_string` and `from_model` class methods that also `TestSuite` has.\r\n\r\nAfter these enhancement this is possible:\r\n```python\r\nfrom robot.running import ResourceFile\r\n\r\nresource = ResourceFile.from_file_system('example.resource')\r\nresource.to_json('example.rsrc')\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4792","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/events","html_url":"https://github.com/robotframework/robotframework/issues/4792","id":1749749552,"node_id":"I_kwDOAUSaQ85oSw8w","number":4792,"title":"Add Vietnamese translation ","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-06-09T11:53:31Z","updated_at":"2023-06-13T14:00:42Z","closed_at":"2023-06-09T11:54:49Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added translation infrastructure and as well as translations for various languages in RF 6.0 (#4390). We now have PR #4791 adding Vietnamese translation.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4781","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/events","html_url":"https://github.com/robotframework/robotframework/issues/4781","id":1737643682,"node_id":"I_kwDOAUSaQ85nklai","number":4781,"title":"Libdoc: Type info for `TypedDict` doesn't list `Mapping` in converted types","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-06-02T07:51:16Z","updated_at":"2023-06-05T08:09:05Z","closed_at":"2023-06-02T08:11:27Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added explicit `TypedDict` conversion in RF 6.0 (#4477) and Libdoc handled them specially already earlier. There's a very small issue that Libdoc only lists `string` as a converted type when we also convert any `Mapping`.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4780","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/events","html_url":"https://github.com/robotframework/robotframework/issues/4780","id":1737611887,"node_id":"I_kwDOAUSaQ85nkdpv","number":4780,"title":"Libdoc crashes if it does not detect documentation format","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-06-02T07:24:31Z","updated_at":"2023-06-05T08:09:05Z","closed_at":"2023-06-02T08:11:27Z","author_association":"MEMBER","active_lock_reason":null,"body":"If documentation format isn't detected automatically based on the output file extension or given explicitly using `--format`, Libdoc execution fails with `AttributeError`:\r\n```\r\n$ libdoc BuiltIn BuiltIn\r\nUnexpected error: AttributeError: 'NoneType' object has no attribute 'upper'\r\nTraceback (most recent call last):\r\n File \"/home/peke/Devel/robotframework/src/robot/utils/application.py\", line 81, in _execute\r\n rc = self.main(arguments, **options)\r\n File \"src/robot/libdoc.py\", line 197, in main\r\n libdoc.save(output, format, self._validate_theme(theme, format))\r\n File \"/home/peke/Devel/robotframework/src/robot/libdocpkg/model.py\", line 93, in save\r\n with LibdocOutput(output, format) as outfile:\r\n File \"/home/peke/Devel/robotframework/src/robot/libdocpkg/output.py\", line 27, in __init__\r\n self._format = format.upper()\r\nAttributeError: 'NoneType' object has no attribute 'upper'\r\n```\r\n\r\nThis is an error situation, but it should be reported correctly.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4777","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/events","html_url":"https://github.com/robotframework/robotframework/issues/4777","id":1731173138,"node_id":"I_kwDOAUSaQ85nL5sS","number":4777,"title":"Parse files with `.robot.rst` extension automatically","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-05-29T19:46:43Z","updated_at":"2023-06-05T08:09:04Z","closed_at":"2023-05-29T19:57:44Z","author_association":"MEMBER","active_lock_reason":null,"body":"Robot Framework can parse reStructuredText files having `.rst` or `.rest` extension, but to avoid parsing unrelated reST files that support needs to be enabled separately by using the `--extension` option. To make using reST files more convenient, we could automatically parse files with `.robot.rst` extension.\r\n\r\nThis is easy to implement, because we already support for such multipart extensions with custom parsers (#1283).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4771","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/events","html_url":"https://github.com/robotframework/robotframework/issues/4771","id":1722483268,"node_id":"I_kwDOAUSaQ85mqwJE","number":4771,"title":"Python 3.12 compatibility","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430421,"node_id":"MDU6TGFiZWwxMTA0MzA0MjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20critical","name":"priority: critical","color":"00441b","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":3,"created_at":"2023-05-23T17:11:45Z","updated_at":"2023-12-03T18:43:33Z","closed_at":"2023-05-24T22:36:37Z","author_association":"MEMBER","active_lock_reason":null,"body":"Python 3.12 will be released in October and the first beta is now available. I tested it and noticed that our Python evaluation using the special variable syntax `$var` is broken. This seems to be due to a subtle change in Python's tokenizer (python/cpython#104802). Luckily fixing our code is easy and with the fix all our acceptance tests pass.\r\n\r\nA much smaller issue is that our tests seem have invalid escape sequences like `'\\.'` that are nowadays reported more visibly than earlier. They need be changed to `'\\\\.'` or `r'\\.'`.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4765","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/events","html_url":"https://github.com/robotframework/robotframework/issues/4765","id":1707618980,"node_id":"I_kwDOAUSaQ85lyDKk","number":4765,"title":"Add forward compatible `start_time`, `end_time` and `elapsed_time` propertys to result objects","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-05-12T13:14:08Z","updated_at":"2023-06-05T08:09:03Z","closed_at":"2023-05-13T13:33:06Z","author_association":"MEMBER","active_lock_reason":null,"body":"The plan is to enhance performance of getting and processing timestamps in RF 7.0 (#4258). Part of that is internally representing start and end times as `datetime` objects and elapsed time as a `timedelta`. The old `starttime`, `endtime` and `elapsed` time attributes will be preserved for backwards compatibility reasons, and new `start_time`, `end_time` and `elapsed_time` attributes added.\r\n\r\nFor forward compatibility reasons we should add `start_time`, `end_time` and `elapsed_time` already in RF 6.1. They can be propetys that get their values from the old attributes. In RF 7 we can then change them to be the \"real\" attributes and make the old ones propertys.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4756","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/events","html_url":"https://github.com/robotframework/robotframework/issues/4756","id":1695574065,"node_id":"I_kwDOAUSaQ85lEGgx","number":4756,"title":"Failed keywords inside skipped tests are not expanded","user":{"login":"karniemi","id":5871676,"node_id":"MDQ6VXNlcjU4NzE2NzY=","avatar_url":"https://avatars.githubusercontent.com/u/5871676?v=4","gravatar_id":"","url":"https://api.github.com/users/karniemi","html_url":"https://github.com/karniemi","followers_url":"https://api.github.com/users/karniemi/followers","following_url":"https://api.github.com/users/karniemi/following{/other_user}","gists_url":"https://api.github.com/users/karniemi/gists{/gist_id}","starred_url":"https://api.github.com/users/karniemi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karniemi/subscriptions","organizations_url":"https://api.github.com/users/karniemi/orgs","repos_url":"https://api.github.com/users/karniemi/repos","events_url":"https://api.github.com/users/karniemi/events{/privacy}","received_events_url":"https://api.github.com/users/karniemi/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":20,"created_at":"2023-05-04T08:58:14Z","updated_at":"2023-06-05T08:09:02Z","closed_at":"2023-05-17T18:12:20Z","author_association":"NONE","active_lock_reason":null,"body":"We are just upgrading from 3.x to 6.0.2. We are moving our test framework to use the \"skipped\"-concept instead of the deprecated \"critical/non-critical\"-concept. We noticed that in log.html, the failed KWs are not automatically expanded for a test skipped using skipOnFailure.\r\n\r\nReproducing:\r\n- click a failed skipped test in report.html.\r\n- Failed nested KWs are not automatically expanded in log.html\r\n\r\nFor a failed non-skipped test, the failed KWs are automatically recursively expanded. The same happens for failed non-critical test in 3.x. We would expect and like the same behaviour for the failed skipped tests. Especially for nested KWs, it's irritating to manually expand the failed nested KWs to get to the lowest level failed KW. ","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4754","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/events","html_url":"https://github.com/robotframework/robotframework/issues/4754","id":1695264304,"node_id":"I_kwDOAUSaQ85lC64w","number":4754,"title":"Back navigation does not work properly in HTML outputs (log, report, Libdoc)","user":{"login":"karniemi","id":5871676,"node_id":"MDQ6VXNlcjU4NzE2NzY=","avatar_url":"https://avatars.githubusercontent.com/u/5871676?v=4","gravatar_id":"","url":"https://api.github.com/users/karniemi","html_url":"https://github.com/karniemi","followers_url":"https://api.github.com/users/karniemi/followers","following_url":"https://api.github.com/users/karniemi/following{/other_user}","gists_url":"https://api.github.com/users/karniemi/gists{/gist_id}","starred_url":"https://api.github.com/users/karniemi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karniemi/subscriptions","organizations_url":"https://api.github.com/users/karniemi/orgs","repos_url":"https://api.github.com/users/karniemi/repos","events_url":"https://api.github.com/users/karniemi/events{/privacy}","received_events_url":"https://api.github.com/users/karniemi/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":7,"created_at":"2023-05-04T05:03:59Z","updated_at":"2023-06-05T08:09:02Z","closed_at":"2023-06-02T08:11:26Z","author_association":"NONE","active_lock_reason":null,"body":"We are just Upgrading from 3.x to 6.0.2.\r\n\r\nGetting back to report.html from log.html requires 3 clicks on Back button. This is quite irritating.\r\n\r\nSteps to reproduce:\r\n1) from testreport.html, open a testcase. This takes to log.html, url ends like \"log.html#s1-s2-s29-t6\".\r\n2) click Back. Still in log.html. url ends like \"log.html#\"\r\n3) click Back. Still in log.html. url ends like \"log.html#s1-s2-s29-t6\"\r\n4) click Back. Only now,, we are back in report.html\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4749","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/events","html_url":"https://github.com/robotframework/robotframework/issues/4749","id":1682001888,"node_id":"I_kwDOAUSaQ85kQU_g","number":4749,"title":"Process: `Split/Join Command Line` do not work properly with `pathlib.Path` objects","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-04-24T20:40:10Z","updated_at":"2023-06-05T14:43:49Z","closed_at":"2023-04-24T20:58:46Z","author_association":"MEMBER","active_lock_reason":null,"body":"Several related problems:\r\n- `Split Command Line` fails if given `pathlib.Path`.\r\n- `Join Command Line` fails as well with Python < 3.8.\r\n- `Join Command Line` could also handle other non-string values.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4746","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/events","html_url":"https://github.com/robotframework/robotframework/issues/4746","id":1680590119,"node_id":"I_kwDOAUSaQ85kK8Un","number":4746,"title":"Decide and document XDG media type","user":{"login":"Akselmo","id":13801236,"node_id":"MDQ6VXNlcjEzODAxMjM2","avatar_url":"https://avatars.githubusercontent.com/u/13801236?v=4","gravatar_id":"","url":"https://api.github.com/users/Akselmo","html_url":"https://github.com/Akselmo","followers_url":"https://api.github.com/users/Akselmo/followers","following_url":"https://api.github.com/users/Akselmo/following{/other_user}","gists_url":"https://api.github.com/users/Akselmo/gists{/gist_id}","starred_url":"https://api.github.com/users/Akselmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Akselmo/subscriptions","organizations_url":"https://api.github.com/users/Akselmo/orgs","repos_url":"https://api.github.com/users/Akselmo/repos","events_url":"https://api.github.com/users/Akselmo/events{/privacy}","received_events_url":"https://api.github.com/users/Akselmo/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":9,"created_at":"2023-04-24T07:03:22Z","updated_at":"2023-06-11T16:49:06Z","closed_at":"2023-06-11T16:47:56Z","author_association":"NONE","active_lock_reason":null,"body":"I've created an issue to XDG mimetypes repo about adding a mediatype for robot framework\r\nhttps://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/198\r\n\r\nI think having mediatype `text/robotframework` would be ok. This means any text editor would know it's a text file, and those which have syntax highlight etc. support for Robot files can enable that as well.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4744","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/events","html_url":"https://github.com/robotframework/robotframework/issues/4744","id":1678014037,"node_id":"I_kwDOAUSaQ85kBHZV","number":4744,"title":"WHILE limit doesn't work in teardown","user":{"login":"m1kaj","id":25018297,"node_id":"MDQ6VXNlcjI1MDE4Mjk3","avatar_url":"https://avatars.githubusercontent.com/u/25018297?v=4","gravatar_id":"","url":"https://api.github.com/users/m1kaj","html_url":"https://github.com/m1kaj","followers_url":"https://api.github.com/users/m1kaj/followers","following_url":"https://api.github.com/users/m1kaj/following{/other_user}","gists_url":"https://api.github.com/users/m1kaj/gists{/gist_id}","starred_url":"https://api.github.com/users/m1kaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m1kaj/subscriptions","organizations_url":"https://api.github.com/users/m1kaj/orgs","repos_url":"https://api.github.com/users/m1kaj/repos","events_url":"https://api.github.com/users/m1kaj/events{/privacy}","received_events_url":"https://api.github.com/users/m1kaj/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-04-21T07:34:16Z","updated_at":"2023-05-04T20:18:37Z","closed_at":"2023-04-25T21:58:41Z","author_association":"NONE","active_lock_reason":null,"body":"### Description\r\nMy original source is test run failure. Tests ran using a docker container and run stopped when container exited with code 137. Trying to simplify the test that lead to the steps given below. I'm seeing execution get stuck in Test Teardown. \r\n\r\n### Steps to reproduce\r\n1. Open terminal and create a test suite file `stuck.robot` with content\r\n```\r\n*** Keywords ***\r\nMy Teardown\r\n WHILE True limit=3\r\n Log To Console Sleep 1 second\r\n Sleep 1\r\n END\r\n\r\n\r\n*** Test Cases ***\r\nMy Test\r\n No Operation\r\n [Teardown] My Teardown\r\n```\r\n2. Run test: `robot stuck.robot`\r\n\r\n### Actual results\r\nRobot output looks normal until while loop limit is reached:\r\n```\r\n==============================================================================\r\nStuck\r\n==============================================================================\r\nMy Test .Sleep 1 second\r\nSleep 1 second\r\nSleep 1 second\r\n```\r\nThen robot appears stuck. Host resource monitor indicates high CPU usage. It is possible to force exit by hitting `CTRL+C` more than once.\r\n\r\n### Reproducibility\r\nReproduced 10 times out of 10 on my local PC (first one in the list below). On other systems, reproduced on first try.\r\n\r\n### Tested versions\r\n* Windows 11 PC running WSL: Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)\r\n * Robot Framework 6.0.2 , Python 3.8.10\r\n * Robot Framework 6.1a1 , Python 3.8.10\r\n* Ubuntu 22.04 LTS system\r\n * _need to collect version info later_\r\n* MacBook Pro\r\n * Robot Framework 6.0.2, Python 3.10.5\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4740","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/events","html_url":"https://github.com/robotframework/robotframework/issues/4740","id":1671363647,"node_id":"I_kwDOAUSaQ85jnvw_","number":4740,"title":"Add type hints to parsing API","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-04-17T14:48:44Z","updated_at":"2023-05-04T20:18:36Z","closed_at":"2023-05-03T16:31:23Z","author_association":"MEMBER","active_lock_reason":null,"body":"At least `get_tokens`, `get_model`, and their resource and init file variants need to get type hints and adding them is easy. Adding types to the whole parsing module would be good too, but that may be too much work for RF 6.1. If it is, a separate issue about that should be submitted for RF 6.2.\r\n\r\nOne reason to add type hints is that they can enable using [mypyc](https://mypyc.readthedocs.io/en/latest/index.html) for compiling the parsing module into a C extension. That could help making parsing faster as part of execution and, probably more importantly, when used by IDEs or other external tools. Full `mypy` or `mypyc` compatibility isn't in the scope of this issue, but the better the type hints are, the easier it is to continue to that direction in the future.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4736","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/events","html_url":"https://github.com/robotframework/robotframework/issues/4736","id":1665308172,"node_id":"I_kwDOAUSaQ85jQpYM","number":4736,"title":"Backslash preventing newline in documentation can form escape sequence like `\\n`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-04-12T21:47:39Z","updated_at":"2023-05-31T20:35:01Z","closed_at":"2023-04-12T21:52:51Z","author_association":"MEMBER","active_lock_reason":null,"body":"When suite, test or keyword documentation is split to multiple rows, rows are automatically joined together with a newline. This isn't always desirable so it's possible to use `\\` at the end of a documentation row to prevent it:\r\n```robotframework\r\n*** Settings ***\r\nDocumentation Backslash avoids automatic \\\r\n... newline.\r\n```\r\n\r\nThe problem is that lines are joined together so that the above looks like `Backslash avoids automatic \\newline` and when it is later evaluated the accidental `\\n` actually creates a newline. This can be fixed so that backslashes used for preventing newlines are removed from the documentation before rows are joined together.\r\n\r\nThis is a pretty annoying bug, but luckily there are very seldom needs to prevent the automatic newline. For example, in the above case the documentation in log and report looks exactly the same when formatted as a HTML paragraph. The main use case for splitting lines without an automatic newline is splitting strings that don't even have spaces in them and such strings are rare in documentation.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4729","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/events","html_url":"https://github.com/robotframework/robotframework/issues/4729","id":1659823987,"node_id":"I_kwDOAUSaQ85i7udz","number":4729,"title":"Leading and internal spaces should be preserved in documentation","user":{"login":"kerol2r20","id":3398826,"node_id":"MDQ6VXNlcjMzOTg4MjY=","avatar_url":"https://avatars.githubusercontent.com/u/3398826?v=4","gravatar_id":"","url":"https://api.github.com/users/kerol2r20","html_url":"https://github.com/kerol2r20","followers_url":"https://api.github.com/users/kerol2r20/followers","following_url":"https://api.github.com/users/kerol2r20/following{/other_user}","gists_url":"https://api.github.com/users/kerol2r20/gists{/gist_id}","starred_url":"https://api.github.com/users/kerol2r20/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kerol2r20/subscriptions","organizations_url":"https://api.github.com/users/kerol2r20/orgs","repos_url":"https://api.github.com/users/kerol2r20/repos","events_url":"https://api.github.com/users/kerol2r20/events{/privacy}","received_events_url":"https://api.github.com/users/kerol2r20/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":7,"created_at":"2023-04-09T10:12:30Z","updated_at":"2023-05-04T20:18:35Z","closed_at":"2023-04-12T21:53:42Z","author_association":"NONE","active_lock_reason":null,"body":"Hi,\r\nI found that `.. code::robotframework` directives cannot work well in resource file format when I set documen format as reStructuredText format.\r\n\r\n```robot\r\n*** Keywords ***\r\nSimple keyword\r\n [Documentation] \r\n ... .. code:: robotframework\r\n ...\r\n ... *** Test Cases ***\r\n ... Simple test case\r\n ... Simple keyword\r\n```\r\n\r\ndocutils ouput ` :1: (ERROR/3) Content block expected for the \"code\" directive; none found.` error message.\r\n\r\nI had tried to find out why it happen and found that libdoc visit each token and lost white space token. \r\nAfter parse_resource_file function invoked, the doc of keyword remain like the following.\r\nThis is not a valid format for docutils.\r\n\r\n```\r\n.. code:: robotframework\r\n\r\n*** Test Cases ***\r\nSimple test case\r\nSimple keyword\r\n```\r\n\r\nMay it possible to reserve white space when using reStructuredText as document format?","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4716","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/events","html_url":"https://github.com/robotframework/robotframework/issues/4716","id":1651042071,"node_id":"I_kwDOAUSaQ85iaOcX","number":4716,"title":"Variable nodes with nested variables report a parsing error, but work properly in the runtime","user":{"login":"mnojek","id":7412964,"node_id":"MDQ6VXNlcjc0MTI5NjQ=","avatar_url":"https://avatars.githubusercontent.com/u/7412964?v=4","gravatar_id":"","url":"https://api.github.com/users/mnojek","html_url":"https://github.com/mnojek","followers_url":"https://api.github.com/users/mnojek/followers","following_url":"https://api.github.com/users/mnojek/following{/other_user}","gists_url":"https://api.github.com/users/mnojek/gists{/gist_id}","starred_url":"https://api.github.com/users/mnojek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mnojek/subscriptions","organizations_url":"https://api.github.com/users/mnojek/orgs","repos_url":"https://api.github.com/users/mnojek/repos","events_url":"https://api.github.com/users/mnojek/events{/privacy}","received_events_url":"https://api.github.com/users/mnojek/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-04-02T18:10:39Z","updated_at":"2023-05-04T20:18:35Z","closed_at":"2023-04-05T18:53:07Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"### Context\r\nWe have a rule in Robocop that parses non-local variables and checks if they are written in uppercase. I realized recently (thanks to the https://github.com/MarketSquare/robotframework-robocop/issues/678) that we should exclude nested variables from the check, so that `${VAR${nested}}` would not report a rule violation.\r\n\r\n### The bug\r\nI realized that correct variables are marked with an error by RF Parsing API. For example, this code, run with `robot --variable var1:1 test.robot`:\r\n\r\n```\r\n*** Variables ***\r\n${var${1}} 1\r\n\r\n*** Test Cases ***\r\nMy Test\r\n Log To Console ${var${1}}\r\n```\r\n\r\nexecutes with PASS state.\r\n\r\nBut when parsing the variable node, I see that there is an error there:\r\n\r\n\"Screenshot\r\n\r\nThe bug appears in RF 5 and 6. I haven't tested for earlier versions.\r\n\r\nHere are some more examples that raise the same error for RF Parsing API:\r\n\r\n```\r\n${MY_VAR${var}} 11\r\n${MY VAR${VAR}} 11\r\n${${var}MY VAR${VAR}} 11\r\n${${var${VAR}}MY VAR${VAR}} 11\r\n${@{VAR}[1]MY_VAR&{var.param}} 11\r\n${${var${VAR}}my_var} 11\r\n${${VAR}my_var} 11\r\n${${VAR}my_var${var}} 11\r\n${@{VAR}[1]my_var} 11\r\n${@{VAR}[1]my_var&{var.param}} 11\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4709","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/events","html_url":"https://github.com/robotframework/robotframework/issues/4709","id":1646754740,"node_id":"I_kwDOAUSaQ85iJ3u0","number":4709,"title":"Add `__repr__()` method to NormalizedDict","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-30T01:13:50Z","updated_at":"2023-05-04T20:18:34Z","closed_at":"2023-03-30T17:47:14Z","author_association":"MEMBER","active_lock_reason":null,"body":"I see the problem, that with the RobotDebug REPL i am updating right now, the NormalizedDict are just shown like this:\r\n\r\n`${SUITE_METADATA} = `\r\n\r\nCould we do it like this?\r\n```python\r\ndef __repr__(self):\r\n return '%s(%s)' % (self.__class__.__name__, str(self))\r\n```\r\nor:\r\n```python\r\ndef __repr__(self):\r\n return f'{self.__class__.__name__}({self.__str__()})'\r\n```\r\nThen it would be :\r\n`${SUITE_METADATA} = NormalizedDict({'Hello': 'World', 'Test': '123'})`\r\n\r\nWe could also write it like this?\r\n`robot.utils.NormalizedDict({'Hello': 'World', 'Test': '123'})`\r\n\r\nBut i think the former version would be good enough \r\n\r\nWhat do you think?\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4705","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/events","html_url":"https://github.com/robotframework/robotframework/issues/4705","id":1643455775,"node_id":"I_kwDOAUSaQ85h9SUf","number":4705,"title":"Items are not converted when using generics like `list[int]` and passing object, not string","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-28T08:28:56Z","updated_at":"2023-05-05T14:07:33Z","closed_at":"2023-03-28T13:55:55Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added support for converting items with generics like `list[int]` and `dict[str, int]` in RF 6.0 (#4433). There unfortunately is a bug that it only works when passing values as string literals, not as actual object. For example, using this example from our Slack:\r\n```python\r\ndef sum_values(values_dict: dict[str, int]) -> int:\r\n values_sum: int = 0\r\n for _, value in values_dict.items():\r\n values_sum += value\r\n return values_sum\r\n```\r\nlike:\r\n```\r\n&{dict} = Create Dictionary spam 11 eggs 22\r\n${sum} = Sum Values ${dict}\r\n```\r\nfails with:\r\n> TypeError: unsupported operand type(s) for +=: 'int' and 'str'`.\r\n\r\nUsing the example with a dictionary literal works fine:\r\n```\r\n${sum} = Sum Values {'spam': '11', 'eggs': '22'}\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4695","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/events","html_url":"https://github.com/robotframework/robotframework/issues/4695","id":1630819433,"node_id":"I_kwDOAUSaQ85hNFRp","number":4695,"title":"Accessing `id` property of model objects may cause `ValueError`","user":{"login":"oboehmer","id":22439451,"node_id":"MDQ6VXNlcjIyNDM5NDUx","avatar_url":"https://avatars.githubusercontent.com/u/22439451?v=4","gravatar_id":"","url":"https://api.github.com/users/oboehmer","html_url":"https://github.com/oboehmer","followers_url":"https://api.github.com/users/oboehmer/followers","following_url":"https://api.github.com/users/oboehmer/following{/other_user}","gists_url":"https://api.github.com/users/oboehmer/gists{/gist_id}","starred_url":"https://api.github.com/users/oboehmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oboehmer/subscriptions","organizations_url":"https://api.github.com/users/oboehmer/orgs","repos_url":"https://api.github.com/users/oboehmer/repos","events_url":"https://api.github.com/users/oboehmer/events{/privacy}","received_events_url":"https://api.github.com/users/oboehmer/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":6,"created_at":"2023-03-19T07:39:05Z","updated_at":"2023-05-04T20:18:33Z","closed_at":"2023-03-29T06:51:07Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"With 6.1a1 (not seen with 6.0.1), the following construct no longer works to retrieve the currently executed keyword's ID from the stack IF the keyword is executed via `Run Keyword ...` variants:\r\n\r\n```\r\n for stack in inspect.stack():\r\n frame = inspect.getargvalues(stack[0])\r\n if getattr(frame, 'locals', None) and frame.locals.get('step'):\r\n return frame.locals['step'].id\r\n```\r\n\r\n\r\nThis can easily be reproduced using the following test suite and custom library:\r\n\r\n```\r\n*** Settings ***\r\nLibrary testlib.py\r\n\r\n*** Test Cases ***\r\n# the first test passes, the two remaining fail\r\nTest KW \r\n Test Keyword\r\n\r\nTest Run KW \r\n Run Keyword Test Keyword\r\n\r\nTest Run KW and expect error\r\n Run Keyword and Expect Error you told me to fail Test Keyword ${TRUE}\r\n```\r\n\r\ntestlib.py:\r\n```\r\nimport inspect\r\nfrom robot.api import logger\r\n\r\n\r\ndef _get_current_keyword_id():\r\n \"\"\"\r\n Traverses the stack to find the current keyword and returns its id.\r\n \"\"\"\r\n for stack in inspect.stack():\r\n frame = inspect.getargvalues(stack[0])\r\n if getattr(frame, 'locals', None) and frame.locals.get('step'):\r\n return frame.locals['step'].id\r\n\r\n\r\ndef test_keyword(fail=False):\r\n logger.info(_get_current_keyword_id())\r\n assert not fail, 'you told me to fail'\r\n```\r\n\r\nexecution with 6.1a1:\r\n\r\n```\r\nroot@36c9fa153edc:workspace# robot -L TRACE keyword-id.robot \r\n==============================================================================\r\nKeyword-Id \r\n==============================================================================\r\nTest KW | PASS |\r\n------------------------------------------------------------------------------\r\nTest Run KW | FAIL |\r\nValueError: robot.running.Keyword(name='Test Keyword', args=[], assign=()) is not in list\r\n------------------------------------------------------------------------------\r\nTest Run KW and expect error | FAIL |\r\nExpected error 'you told me to fail' but got 'ValueError: robot.running.Keyword(name='Test Keyword', args=['${TRUE}'], assign=()) is not in list'.\r\n------------------------------------------------------------------------------\r\nKeyword-Id | FAIL |\r\n3 tests, 1 passed, 2 failed\r\n==============================================================================\r\n```\r\n\r\nstack trace shown in log:\r\n```\r\nTraceback (most recent call last):\r\n File \"/home/cisco/cxta/workspace/testlib.py\", line 16, in test_keyword\r\n logger.info(_get_current_keyword_id())\r\n File \"/home/cisco/cxta/workspace/testlib.py\", line 12, in _get_current_keyword_id\r\n return frame.locals['step'].id\r\n File \"/venv/lib/python3.9/site-packages/robot/model/body.py\", line 58, in id\r\n return self._get_id(self.parent)\r\n File \"/venv/lib/python3.9/site-packages/robot/model/body.py\", line 69, in _get_id\r\n my_id = steps.index(self) + 1\r\nValueError: robot.running.Keyword(name='Test Keyword', args=[], assign=()) is not in list\r\n```\r\n\r\nexecution with 6.0.1 passes.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4692","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/events","html_url":"https://github.com/robotframework/robotframework/issues/4692","id":1625036987,"node_id":"I_kwDOAUSaQ85g3Bi7","number":4692,"title":"`ELSE IF` condition not passed to listeners","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-03-15T08:49:27Z","updated_at":"2023-03-15T12:50:35Z","closed_at":"2023-03-15T09:34:19Z","author_association":"MEMBER","active_lock_reason":null,"body":"RF 6.0 enhanced listeners so that more info about control structures is passed to them (#4335). Due to a bug in the code, a missing comma in a single item tuple, `ELSE IF` condition is missing. Easy to fix and need to add tests as well.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4689","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/events","html_url":"https://github.com/robotframework/robotframework/issues/4689","id":1623949169,"node_id":"I_kwDOAUSaQ85gy39x","number":4689,"title":"Invalid sections are not represented properly in parsing model","user":{"login":"yanne","id":159146,"node_id":"MDQ6VXNlcjE1OTE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/159146?v=4","gravatar_id":"","url":"https://api.github.com/users/yanne","html_url":"https://github.com/yanne","followers_url":"https://api.github.com/users/yanne/followers","following_url":"https://api.github.com/users/yanne/following{/other_user}","gists_url":"https://api.github.com/users/yanne/gists{/gist_id}","starred_url":"https://api.github.com/users/yanne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanne/subscriptions","organizations_url":"https://api.github.com/users/yanne/orgs","repos_url":"https://api.github.com/users/yanne/repos","events_url":"https://api.github.com/users/yanne/events{/privacy}","received_events_url":"https://api.github.com/users/yanne/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-14T17:10:30Z","updated_at":"2023-03-16T20:38:45Z","closed_at":"2023-03-16T14:53:08Z","author_association":"MEMBER","active_lock_reason":null,"body":"Consider the following test suite:\r\n\r\n```\r\n*** Test cases ***\r\nTest \r\n Log 1\r\n\r\n*** invalid section ***\r\nSomething\r\n```\r\n\r\nThis will produce following AST:\r\n\r\n```\r\nFile(\r\n source='/Users/jth/Code/robotframework/tmp/foo.robot',\r\n languages=(),\r\n lineno=1,\r\n col_offset=0,\r\n end_lineno=5,\r\n end_col_offset=23,\r\n errors=(),\r\n sections=[\r\n TestCaseSection(\r\n lineno=1,\r\n col_offset=0,\r\n end_lineno=5,\r\n end_col_offset=23,\r\n errors=(),\r\n header=SectionHeader(lineno=1, col_offset=0, end_lineno=1, end_col_offset=18, errors=(), type='TESTCASE HEADER', tokens=(Token(TESTCASE_HEADER, '*** Test Cases ***', 1, 0),)),\r\n body=[\r\n TestCase(\r\n lineno=2,\r\n col_offset=0,\r\n end_lineno=3,\r\n end_col_offset=11,\r\n errors=(),\r\n header=TestCaseName(lineno=2, col_offset=0, end_lineno=2, end_col_offset=4, errors=(), type='TESTCASE NAME', tokens=(Token(TESTCASE_NAME, 'Test', 2, 0),)),\r\n body=[KeywordCall(lineno=3, col_offset=3, end_lineno=3, end_col_offset=11, errors=(), type='KEYWORD', tokens=(Token(KEYWORD, 'Log', 3, 3), Token(ARGUMENT, '1', 3, 10)))],\r\n ),\r\n Error(lineno=5, col_offset=0, end_lineno=5, end_col_offset=23, errors=(\"Unrecognized section header '*** invalid section ***'. Valid sections: 'Settings', 'Variables', 'Test Cases', 'Tasks', 'Keywords' and 'Comments'.\",), type='ERROR', tokens=(Token(ERROR, '*** invalid section ***', 5, 0, \"Unrecognized section header '*** invalid section ***'. Valid sections: 'Settings', 'Variables', 'Test Cases', 'Tasks', 'Keywords' and 'Comments'.\"),)),\r\n ],\r\n ),\r\n ],\r\n)\r\n```\r\n\r\nIn the AST, their erroneous header is put inside the TestCase body, which is a bit weird from the AST perspective. \r\nIt would be better to create a separate AST node, InvalidSection, which would contain the data of the invalid section.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4688","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/events","html_url":"https://github.com/robotframework/robotframework/issues/4688","id":1623508631,"node_id":"I_kwDOAUSaQ85gxMaX","number":4688,"title":"Do not exclude files during parsing if using `--suite` option","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-14T13:42:47Z","updated_at":"2023-06-09T22:54:34Z","closed_at":"2023-05-23T12:55:48Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently when the `--suite` option is used, files not matching the specified suite aren't parsed at all. This is a useful performance optimization, but it doesn't work well with the new `Name` setting (#4583) that allows configuring the suite name in the parsed file itself. In addition to that, suites not being parsed and not thus not being available for pre-run modifiers can cause surprises. To avoid all these issues, it is better to not use `--suite` for limiting what files are parsed at all.\r\n\r\nThis change isn't functionally backwards incompatible, but it obviously affects those who `--suite` to make parsing faster. A precondition to such a change is having an explicit way to limit what files are parsed (#4687).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4687","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/events","html_url":"https://github.com/robotframework/robotframework/issues/4687","id":1623494967,"node_id":"I_kwDOAUSaQ85gxJE3","number":4687,"title":"Add explicit command line option to limit which files are parsed","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":20,"created_at":"2023-03-14T13:34:52Z","updated_at":"2023-06-05T08:09:00Z","closed_at":"2023-05-29T22:03:06Z","author_association":"MEMBER","active_lock_reason":null,"body":"When execution just some tests from a big directory structure, parsing only relevant files instead of the whole structure makes parsing faster. We don't currently have any explicit option for limiting parsing like that, but when the `--suite` option is used files not matching the specified suite are ignored. This functionality won't work too well in the future, though, if we make it possible to change the suite name using the `Name` setting (#4583). It's also likely that not too many users know about this functionality and the underlying logic to convert file and directory names to suite names for matching purposes is also rather complicated.\r\n\r\nA good way to solve all the above problems is adding a separate command line option or options for controlling what files to parse. Once we have such functionality, we can remove the current performance optimization from `--suite`, a separate option makes the feature easier to discover, and also the code gets simpler. There are some design decisions to be made, though:\r\n\r\n- What should the option be named? I was thinking `--includefiles`, but it has the same prefix as `--include` which would mean that shortened usages like `--incl` that used to be unique wouldn't work anymore. Perhaps `--parsefiles` or just `--files` would be better.\r\n- Should the value be a literal value or should we accept glob patterns? I believe supporting patterns is a good idea.\r\n- Should the value be just a file name or a relative or absolute path to it? I see benefits with both so possibly we could support both usages.\r\n- Should the value include file extension? I believe it should be allowed but preferably not required. If that gets too complicated, always requiring it is probably better.\r\n- Should there be separate option for excluding files? It would make some use cases easier, but I'm not sure is that worth the added complexity.\r\n- Should this option affect only files or also directories? If the option would match a directory, we could automatically include all files under it, recursively. On the other hand, just matching files would be easier to implement and explain.\r\n- Should we have separate options for matching files and directories? That's probably too much, especially if we'd have separate options for including and excluding. If directories are considered important, probably better to implement this so that the same option work with both files and directories.\r\n\r\nThis feature should be implemented before RF 7 where we'd like to change `--suite` so that it doesn't affect parsing. That would give users who need the performance optimization time to update their scripts.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4684","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/events","html_url":"https://github.com/robotframework/robotframework/issues/4684","id":1621310061,"node_id":"I_kwDOAUSaQ85gozpt","number":4684,"title":"Handle start index with `FOR IN ENUMERATE` loops already in parser","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-03-13T11:37:11Z","updated_at":"2023-03-15T12:50:34Z","closed_at":"2023-03-13T15:17:42Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added support for the optional start index in RF 4.0 (#3781). It was implemented so that only the runner object detected that the last iterated value has `start=` prefix and the parser doesn't know anything about it. When similar configuration was added to `WHILE` (`limit`) and `EXCEPT` (`type`), they were already recognized by the parser making the behavior with `start` inconsistent. This should be changed and `start` with `FOR IN ENUMERATE` loops handled by the parser as well.\r\n\r\nHandling `start` in the parser means that the `For` model object in the `TestSuite` structure needs `start` attribute as well. The same `For` is used with all `FOR` loop types and it getting an attribute that only affects one of them is a bit questionable, but I don't consider it too big a problem. We could consider adding separate `ForInEnumerate`, `ForInRange` and `ForInZip` model object, but I consider that too much work compared to benefits at least right now. We also need to add `start` as an attribute to `output.xml`. Changing it always has backwards incompatibility concerns, but tools processing XML files shouldn't be bothered by new attributes so I consider this safe.\r\n\r\nOne reason to do this is that we plan to make `FOR IN ZIP` configurable as well. It's configuration options should definitely be handled by the parser and in that case `FOR IN ENUMERATE` behaving differently would be really weird.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4683","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/events","html_url":"https://github.com/robotframework/robotframework/issues/4683","id":1621271832,"node_id":"I_kwDOAUSaQ85goqUY","number":4683,"title":"Report syntax errors better in log file","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"yanne","id":159146,"node_id":"MDQ6VXNlcjE1OTE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/159146?v=4","gravatar_id":"","url":"https://api.github.com/users/yanne","html_url":"https://github.com/yanne","followers_url":"https://api.github.com/users/yanne/followers","following_url":"https://api.github.com/users/yanne/following{/other_user}","gists_url":"https://api.github.com/users/yanne/gists{/gist_id}","starred_url":"https://api.github.com/users/yanne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanne/subscriptions","organizations_url":"https://api.github.com/users/yanne/orgs","repos_url":"https://api.github.com/users/yanne/repos","events_url":"https://api.github.com/users/yanne/events{/privacy}","received_events_url":"https://api.github.com/users/yanne/received_events","type":"User","site_admin":false},"assignees":[{"login":"yanne","id":159146,"node_id":"MDQ6VXNlcjE1OTE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/159146?v=4","gravatar_id":"","url":"https://api.github.com/users/yanne","html_url":"https://github.com/yanne","followers_url":"https://api.github.com/users/yanne/followers","following_url":"https://api.github.com/users/yanne/following{/other_user}","gists_url":"https://api.github.com/users/yanne/gists{/gist_id}","starred_url":"https://api.github.com/users/yanne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanne/subscriptions","organizations_url":"https://api.github.com/users/yanne/orgs","repos_url":"https://api.github.com/users/yanne/repos","events_url":"https://api.github.com/users/yanne/events{/privacy}","received_events_url":"https://api.github.com/users/yanne/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-13T11:12:08Z","updated_at":"2023-03-15T12:50:34Z","closed_at":"2023-03-14T17:01:01Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently when you have an invalid setting like `[Setpu]` in a test (or keyword, or task), error is reported on the console, but the test is nevertheless executed and in the log file the invalid setting isn't visible under the test at all. This isn't great. It would be better if the invalid setting would be visible under the test in the log file and it should also fail the test.\r\n\r\nA similar situation occurs with invalid syntax like `END` or `ELSE` without an opening `IF`. At the moment such invalid syntax is considered to be a keyword. We have `Reserved` library that contains matching keywords, so when these \"keywords\" are run they fail. Invalid syntax reported as failing keywords is odd and the resulting error messages aren't great either. A part of #4210 is detecting this kind of invalid syntax already at the parsing time, but we need to also show them in the log file somehow.\r\n\r\nA solution to both of these error reporting issues is adding new `Error` object to our `TestSuite` structure. When the parser detects invalid syntax, it can create such objects, and when they are run they can simply fail. These errors should create new `` elements to output.xml and they obviously need to be show in log.html as well.\r\n\r\nA problem with this enhancement is that it's not fully backwards compatible:\r\n- Invalid settings like `[Setpu]` don't currently affect test status, but in the future they will fail the test. An obvious solution for this kind of problem is not having such invalid settings in tests in the first place.\r\n- External tools parsing output.xml need to take `` elements into account. In general such tools should ignore elements they don't recognize, but there certainly can be tools that don't behave like that.\r\n- Tools working with the `TestSuite` model need to take new `Error` objects into account.\r\n\r\nInvalid syntax failing a test isn't a big concern for me, but this change possibly breaking external tools is a lot bigger problem. I don't see any other ways this could be handed, though. Doing the change in a non-major version is a bit questionable, but I don't think postponing this change to RF 7 (or changing RF 6.1 to RF 7) is a good idea either. We just need to inform external tool developers about this change in release notes and possibly also otherwise.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4682","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/events","html_url":"https://github.com/robotframework/robotframework/issues/4682","id":1620330369,"node_id":"I_kwDOAUSaQ85glEeB","number":4682,"title":"Make `FOR IN ZIP` loop behavior if lists have different lengths configurable","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-03-12T11:33:21Z","updated_at":"2023-03-15T12:50:33Z","closed_at":"2023-03-13T23:34:12Z","author_association":"MEMBER","active_lock_reason":null,"body":"Robot `FOR IN ZIP` loop behaves like Python's [zip](https://docs.python.org/3/library/functions.html#zip) so that if lists lengths aren't the same, items from the longest one are ignored. For example, the following loop would be executed only twice:\r\n\r\n```robotframework\r\n*** Variables ***\r\n@{ANIMALS} dog cat horse cow elephant\r\n@{ELÄIMET} koira kissa\r\n\r\n*** Test Cases ***\r\nExample\r\n FOR ${en} ${fi} IN ZIP ${ANIMALS} ${ELÄIMET}\r\n Log ${en} is ${fi} in Finnish\r\n END\r\n```\r\n\r\nThis behavior can cause problems when iterating over items received from the automated system. For example, the following test would pass regardless how many things `Get something` returns as long as the returned items match the expected values. The example even succeeds if `Get something` nothing.\r\n\r\n```robotframework\r\n*** Test Cases ***\r\nExample\r\n Validate something expected 1 expected 2 expected 3\r\n\r\n*** Keywords ****\r\nValidate something\r\n [Arguments] @{expected}\r\n @{actual} = Get something\r\n FOR ${act} ${exp} IN ZIP ${actual} ${expected}\r\n Validate one thing ${act} ${exp}\r\n END\r\n```\r\n\r\nTo avoid the above example failing if `Get something` returns more or less values than expected, a separate check needs to be added. Because there's no ready-made keyword for checking are list lengths equal (`Lists should be equal` keyword doesn't work here), the validation needs to use something bit more complicated like this:\r\n```\r\n Should be equal ${{len($actual)}} ${{len($expected)}}\r\n```\r\nFor a real life example see [this example](https://github.com/robotframework/robotframework/blob/f7ee913622e60c0cf630e1580c2bb58c57100187/atest/robot/running/if/invalid_if.robot#L119) from out acceptance tests. Tests also contain various `FOR IN ZIP` usages where this particular issue could cause problems.\r\n\r\nThis same underlying issues has caused problems with Python's `zip` as well. Starting from Python 3.10 (see [PEP 619](https://peps.python.org/pep-0618/) `zip` has new `strict` parameter that can be used like `zip(actual, expected, strict=True)`. It causes a `ValueError` to be raised if iterated lists have different lengths. Related to this, Python also has separate [itertools.zip_longest](https://docs.python.org/3/library/itertools.html#itertools.zip_longest) that goes through all items in all lists so that if certain list has less value than others, value specified with the `fillvalue` argument is used instead.\r\n\r\nMy proposal is that we add new `mode` configuration option to `FOR IN ZIP` loops. The motivation is that we could have three values `shortest`, `strict` and `longest` emulating Python's behavior with `zip(...)`, `zip(..., strict=True=`), and `zip_longest(...)`, respectively. This was also [considered with Python](https://peps.python.org/pep-0618/#add-several-modes-to-switch-between), but they decided to go with a Boolean option `strict` partly because they already have a separate `zip_longest`.\r\n\r\nAnother reason `mode` wasn't used with Python is that to properly support the `longest` case, it would require adding `fillvalue` that doesn't make sense with other modes. That's a valid concern in our case as well, but I don't consider it too big a problem. We don't at the moment support the `longest` case at all, so this would instead be a nice enhancement and a lot better syntax than separate `FOR IN ZIP LONGEST` would be.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4680","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/events","html_url":"https://github.com/robotframework/robotframework/issues/4680","id":1620223756,"node_id":"I_kwDOAUSaQ85gkqcM","number":4680,"title":"User Guide generation broken on Windows","user":{"login":"sunday2","id":20227068,"node_id":"MDQ6VXNlcjIwMjI3MDY4","avatar_url":"https://avatars.githubusercontent.com/u/20227068?v=4","gravatar_id":"","url":"https://api.github.com/users/sunday2","html_url":"https://github.com/sunday2","followers_url":"https://api.github.com/users/sunday2/followers","following_url":"https://api.github.com/users/sunday2/following{/other_user}","gists_url":"https://api.github.com/users/sunday2/gists{/gist_id}","starred_url":"https://api.github.com/users/sunday2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sunday2/subscriptions","organizations_url":"https://api.github.com/users/sunday2/orgs","repos_url":"https://api.github.com/users/sunday2/repos","events_url":"https://api.github.com/users/sunday2/events{/privacy}","received_events_url":"https://api.github.com/users/sunday2/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-03-12T03:46:47Z","updated_at":"2023-03-20T12:36:05Z","closed_at":"2023-03-14T00:28:23Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"env: \r\nplatform: Windows 10 Pro\r\npython: 3.7\r\nRF: master branch\r\n\r\nproblem: when calling the script ug2html.py to generate the RF user guide, encoutered the following encoding issue, \r\n![image](https://user-images.githubusercontent.com/20227068/224522445-08e798de-37ba-4279-8e0f-3cfa74b00e0e.png)\r\nthis may due to this function:\r\n\r\n`doc.userguide.translations.update`\r\n```python\r\ndef update(path: Path, content):\r\n source = path.read_text(encoding='UTF-8').splitlines()\r\n with open(path, 'w') as file:\r\n write(source, file, end_marker='.. START GENERATED CONTENT')\r\n file.write('.. Generated by translations.py used by ug2html.py.\\n')\r\n write(content, file)\r\n write(source, file, start_marker='.. END GENERATED CONTENT')\r\n```\r\nwhen calling the open function, does not specify the encoding, the default encoding will be platform dependent. In my case, the encoding cp1252 will be used, this issue happened when write the content that was Bg language and other languages will also meet this issue if cp1252 not support them.\r\n\r\npossible solution: \r\nspecify the encoding to be 'utf-8' when open the file.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4676","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/events","html_url":"https://github.com/robotframework/robotframework/issues/4676","id":1613777283,"node_id":"I_kwDOAUSaQ85gMEmD","number":4676,"title":"Propose using `$var` syntax if evaluation IF or WHILE condition using `${var}` fails","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-03-07T16:18:50Z","updated_at":"2023-03-15T12:50:32Z","closed_at":"2023-03-10T20:45:44Z","author_association":"MEMBER","active_lock_reason":null,"body":"A common error when evaluating expressions with IF or otherwise is using something like\r\n```\r\nIF ${x} == 'expected'\r\n Keyword\r\nEND\r\n```\r\nwhen the variable `${x}` contains a string. Normal variables are resolved _before_ evaluating the expression, so if `${x}` contains a string `value`, the evaluated expression will be `value == 'expected'`. Evaluating it fails because `value` isn't quoted, it's thus considered a variable in Python, and no such variable exists. The resulting error is this:\r\n\r\n> Evaluating IF condition failed: Evaluating expression 'value == 'expected'' failed: NameError: name 'value' is not defined nor importable as module\r\n\r\nOne solution to this problem is quoting the variable like `'${x}' == 'expected'`, but that doesn't work if the variable value contains quotes or newlines. A better solution is using the special `$var` syntax like `$x == 'value'` that makes the variable available in the Python evaluation namespace (#2040). All this is explained in the [User Guide](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#evaluating-expressions), but there are many users who don't know about this and struggle with the syntax.\r\n\r\nBecause this is a such a common error, we should make the error more informative if the expression contains \"normal\" variables. We could, for example, show also the original expression and recommend quoting or using the \"special\" variable syntax. Possibly it could look like this:\r\n\r\n> Evaluating IF condition failed: Evaluating expression 'value == 'expected'' failed: NameError: name 'value' is not defined nor importable as module\r\n> The original expression was '${x} == 'expected''. Try using the '$var' syntax like '$x == 'expected'' to avoid resolving variables before the expression is evaluated. See the Evaluating expression appendix in the User Guide for more details.\r\n\r\nThere are few problems implementing this:\r\n1. Variables are solved before the [evaluate_expression](https://github.com/robotframework/robotframework/blob/master/src/robot/variables/evaluation.py#L31) is called so this function doesn't know the original expression nor did it contain variables. This information needs to be passed to it, but in same cases (at least with inline Python evaluation) it isn't that easy.\r\n2. It's not easy to detect when exactly this extra information should be included into the error. Including it always when evaluating the expression fails can add confusion when the error isn't related to variables. It would probably better to include it only if evaluation fails for a NameError, but also in that case you could have an expression like `'${x}' == value` where the variable likely isn't a problem. We could try some heuristics to see what causes the error, but that's probably too much work compared to including the extra info in some cases where it's not needed.\r\n3. Coming up with a good but somewhat short error message isn't easy. I'm not totally happy with the above, but I guess it would be better than nothing.\r\n\r\nBecause this extra info is added only if evaluation fails, this should be a totally backwards compatible change. It would be nice to include it already into RF 6.1, but that release is already about to be late and this isn't that easy to implement, so RF 6.2 is probably a better target. If someone is interested to look at this, including it already into RF 6.1 ought to be possible.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4670","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/events","html_url":"https://github.com/robotframework/robotframework/issues/4670","id":1609324383,"node_id":"I_kwDOAUSaQ85f7Fdf","number":4670,"title":"Parsing model: `Documentation.from_params(...).value` doesn't work","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":10,"created_at":"2023-03-03T22:17:29Z","updated_at":"2023-05-05T13:54:00Z","closed_at":"2023-03-21T09:02:42Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Documentation.from_params(...) has problems with multiline values and empty lines.\r\n\r\nMust be investigated more closely and there must be more tests about this.\r\n\r\nhttps://github.com/robotframework/robotframework/blob/c80464b98f1efff1d966865eddec6120cf95ad18/src/robot/parsing/model/statements.py#L166\r\n\r\nRevert this commit 0c5d7f1fcac4ef9bd0178df27528e985af7dafb6 from \"custom parsers\" #4614 because it should be fixed independently.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4666","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/events","html_url":"https://github.com/robotframework/robotframework/issues/4666","id":1599753572,"node_id":"I_kwDOAUSaQ85fWk1k","number":4666,"title":"Add public API to query is Robot running and is dry-run active","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-02-25T16:09:46Z","updated_at":"2023-03-15T12:50:31Z","closed_at":"2023-02-28T16:40:33Z","author_association":"MEMBER","active_lock_reason":null,"body":"For libraries it would be helpful to know if RF is running, or if a library is just imported as python package or by libdoc, which also would be the case when language servers would analyze them.\n\nhttps://robotframework.slack.com/archives/C0K0240NL/p1677318363986369\n\nProposal would be two boolean properties either in BuiltIn or robot.api?!\n\n`robot_running` or `robot_is_running` would be True if there is an execution context.\n`dry_run_active` or `dryrun_is_active` would be True if there is a running context and the dryrun is ongoing.\n\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/timeline","performed_via_github_app":{"id":7100,"slug":"slack","node_id":"MDM6QXBwNzEwMA==","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"name":"Slack","description":"Connect your code to your conversations; stay updated on projects, fix bugs, and move more work forward—without leaving Slack.\r\n\r\n[Learn more and get started](https://slack.github.com/)\r\n\r\nBy installing or using the app, you agree to the [Terms and Conditions](https://github.com/integrations/slack/blob/master/docs/terms-and-conditions.md).","external_url":"https://slack.github.com/","html_url":"https://github.com/apps/slack","created_at":"2017-11-30T02:22:47Z","updated_at":"2022-12-05T10:09:47Z","permissions":{"actions":"write","checks":"read","contents":"read","deployments":"write","discussions":"read","issues":"write","metadata":"read","pull_requests":"write","repository_projects":"read","statuses":"read"},"events":["check_run","check_suite","commit_comment","create","delete","deployment","deployment_review","deployment_status","discussion","discussion_comment","issues","issue_comment","public","pull_request","pull_request_review","pull_request_review_comment","push","release","reminder","repository","repository_dispatch","status","watch","workflow_job","workflow_run"]},"state_reason":"completed","score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z","issues":{"total_count":7,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4525","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/events","html_url":"https://github.com/robotframework/robotframework/issues/4525","id":1429929274,"node_id":"I_kwDOAUSaQ85VOv06","number":4525,"title":"Wrong version numbers used in the User Guide and in a deprecation warning","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-31T14:20:19Z","updated_at":"2022-10-31T14:24:24Z","closed_at":"2022-10-31T14:24:24Z","author_association":"MEMBER","active_lock_reason":null,"body":"We decided to change version number of RF 5.1 to RF 6.0 pretty close to the final release. I tried to update docs and code so that they'd use correct version numbers, but missed few places:\r\n\r\n- The User Guide talks about deprecating Force Tags and Default Tags in RF 6.0 when in fact that will happen (earliest) in RF 7.0.\r\n- The User Guide explains that `-tag` syntax can be used for removing tags in RF 5.2 but that's going to happen in RF 6.1.\r\n- A deprecation warning about using `-tag` syntax also says that behavior will be changed in RF 5.2.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4523","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/events","html_url":"https://github.com/robotframework/robotframework/issues/4523","id":1428745818,"node_id":"I_kwDOAUSaQ85VKO5a","number":4523,"title":"Unit test `test_parse_time_with_now_and_utc` fails around DST change","user":{"login":"fedepell","id":19709142,"node_id":"MDQ6VXNlcjE5NzA5MTQy","avatar_url":"https://avatars.githubusercontent.com/u/19709142?v=4","gravatar_id":"","url":"https://api.github.com/users/fedepell","html_url":"https://github.com/fedepell","followers_url":"https://api.github.com/users/fedepell/followers","following_url":"https://api.github.com/users/fedepell/following{/other_user}","gists_url":"https://api.github.com/users/fedepell/gists{/gist_id}","starred_url":"https://api.github.com/users/fedepell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedepell/subscriptions","organizations_url":"https://api.github.com/users/fedepell/orgs","repos_url":"https://api.github.com/users/fedepell/repos","events_url":"https://api.github.com/users/fedepell/events{/privacy}","received_events_url":"https://api.github.com/users/fedepell/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":1,"created_at":"2022-10-30T11:37:08Z","updated_at":"2022-10-30T18:36:13Z","closed_at":"2022-10-30T18:35:22Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Very minor but reporting as it was creating me headaches, running tests just exactly _today_.\r\n\r\nIt seems to me that the `test_parse_time_with_now_and_utc` test will fail if run just on the day of DST change (ie. **today**) or the day before as they are doing comparisons with +/- 1 day and a hardcoded seconds difference value, which is incorrect if the DST happens between the two cases compared.\r\n\r\nSpecifically today (last night DST changed here) I see failing those tests:\r\n```\r\n ('now - 1 day 100 seconds',-86500),\r\n ('NOW - 1D 10H 1MIN 10S', -122470)]:\r\n``` \r\nProbably yesterday (so just before DST change) would be the ones with `+`.\r\n\r\nAs written above I'm not sure this is worth investigating and fixing, but just wanted to report as it gave me by chance some worries while rebuilding and retesting the new version of Robotframework. I will just redo the tests tomorrow ;-)\r\n\r\n\r\n**Version Information:**\r\nTried with both 6.0 and 5.0.1\r\n\r\n**Steps to reproduce:**\r\nRun the unit tests, specifically on the day immediately before or after DST change.\r\n\r\n**Error message and traceback:**\r\n```\r\n======================================================================\r\nFAIL: test_parse_time_with_now_and_utc (test_robottime.TestTime)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n File \"/home/foo/rpmbuild/BUILD/robotframework-6.0/utest/utils/test_robottime.py\", line 341, in test_parse_time_with_now_and_utc\r\n assert_true(expected <= parsed <= expected + 1),\r\n File \"/home/foo/rpmbuild/BUILD/robotframework-6.0/utest/../src/robot/utils/asserts.py\", line 115, in assert_true\r\n _report_failure(msg)\r\n File \"/home/foo/rpmbuild/BUILD/robotframework-6.0/utest/../src/robot/utils/asserts.py\", line 218, in _report_failure\r\n raise AssertionError()\r\nAssertionError\r\n\r\n----------------------------------------------------------------------\r\n``` \r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4521","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/events","html_url":"https://github.com/robotframework/robotframework/issues/4521","id":1427104832,"node_id":"I_kwDOAUSaQ85VD-RA","number":4521,"title":"Enhance `robot.utils.timestr_to_secs` so that it works with `timedelta` objects","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-28T11:15:48Z","updated_at":"2022-10-28T11:41:05Z","closed_at":"2022-10-28T11:41:05Z","author_association":"MEMBER","active_lock_reason":null,"body":"This would have avoided MarketSquare/robotframework-browser#2402.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4520","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/events","html_url":"https://github.com/robotframework/robotframework/issues/4520","id":1427066989,"node_id":"I_kwDOAUSaQ85VD1Bt","number":4520,"title":"Document Libdoc's public API better","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-28T10:43:06Z","updated_at":"2022-10-28T11:13:28Z","closed_at":"2022-10-28T11:02:49Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently `robot.libdoc` API docs mention that `libdoc` and `libdoc_cli` functions are public and that everything else is private. `robot.libdocpkg` just tells that the whole package is private. We also have `LibradyDocumentation` factory method that external tools can use but it's not declared public. Enhancements to be done:\r\n\r\n- Document that `LibradyDocumentation` is part of the public API.\r\n- Recommend importing it via `robot.libdoc`. This also needs a test.\r\n- Add documentation to `LibradyDocumentation`. Needs an example and reference to the returned `LibraryDoc` class.\r\n- Add at least some documentation to `LibraryDoc` and `KeywordDoc`.\r\n- Document that related `DocumentationBuilder` (see also #4519) is not part of the public API.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4519","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/events","html_url":"https://github.com/robotframework/robotframework/issues/4519","id":1427059550,"node_id":"I_kwDOAUSaQ85VDzNe","number":4519,"title":"Libdoc's `DocumentationBuilder` doesn't anymore work with resource files with `.robot` extension","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-28T10:36:45Z","updated_at":"2022-10-28T11:02:50Z","closed_at":"2022-10-28T11:02:50Z","author_association":"MEMBER","active_lock_reason":null,"body":"When support for generating documentation for suite files was added (#4493), the `DocumentationBuilder` factory method was changed so that it returns a `SuiteDocBuilder` with all files having a `.robot` extension. This builder only works with suite files and not with resource files. The `LibraryDocumentation` factory method that uses `DocumentationBuilder` handles this problem internally similarly as it handles `DocumentationBuilder` not supporting resource files in PYTHONPATH so this doesn't affect Libdoc itself. It does, however, affect direct usage of `DocumentationBuilder`.\r\n\r\nChanges like this are always annoying, but in this case this isn't too severe because `DocumentationBuilder` isn't really part of the public API and `LibraryDocumentation` should be used instead of it. Alternatively, it's possible to use `ResourceDocBuilder` explicitly when working with resource files. The initial plan was to just document this behavior (#4517), but it is actually easy to fix this by making `DocumentationBuilder` a class instead of a factory method.\r\n\r\nA related problem is that Libdoc's public API isn't properly defined. A separate issue needs to be submitted about that. We can then explicitly recommend `LibraryDocumentation`.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4516","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/events","html_url":"https://github.com/robotframework/robotframework/issues/4516","id":1424167138,"node_id":"I_kwDOAUSaQ85U4xDi","number":4516,"title":"`Set Library Search Order` doesn't work if there are two matches and one is from standard libraries","user":{"login":"jaasal","id":39295284,"node_id":"MDQ6VXNlcjM5Mjk1Mjg0","avatar_url":"https://avatars.githubusercontent.com/u/39295284?v=4","gravatar_id":"","url":"https://api.github.com/users/jaasal","html_url":"https://github.com/jaasal","followers_url":"https://api.github.com/users/jaasal/followers","following_url":"https://api.github.com/users/jaasal/following{/other_user}","gists_url":"https://api.github.com/users/jaasal/gists{/gist_id}","starred_url":"https://api.github.com/users/jaasal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaasal/subscriptions","organizations_url":"https://api.github.com/users/jaasal/orgs","repos_url":"https://api.github.com/users/jaasal/repos","events_url":"https://api.github.com/users/jaasal/events{/privacy}","received_events_url":"https://api.github.com/users/jaasal/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":4,"created_at":"2022-10-26T14:40:56Z","updated_at":"2022-10-27T18:07:42Z","closed_at":"2022-10-27T18:05:35Z","author_association":"NONE","active_lock_reason":null,"body":"Versions: Robot Framework 6.0, Python 3.8.10, Windows 10\r\nPrerequisites: robotframework-sshlibrary installed\r\n\r\nExecute the following test:\r\n```\r\n*** Settings ***\r\nLibrary SSHLibrary\r\nLibrary OperatingSystem\r\n\r\n*** Test Cases ***\r\nTest Library Search Order\r\n Set Library Search Order OperatingSystem SSHLibrary \r\n Get File ./foo.txt\r\n```\r\n\r\nExpected: Get File -keyword from OperatingSystem is executed\r\nActual: Warning about duplicate keywords is shown, Get File -keyword from SSHLibrary is executed","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":1},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4515","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/events","html_url":"https://github.com/robotframework/robotframework/issues/4515","id":1416952503,"node_id":"I_kwDOAUSaQ85UdPq3","number":4515,"title":"Localized BDD prefixes consisting of more than one word don't work","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":2,"created_at":"2022-10-20T16:50:46Z","updated_at":"2022-11-03T16:00:50Z","closed_at":"2022-10-28T11:42:45Z","author_association":"MEMBER","active_lock_reason":null,"body":"RF 6.0 added support for localizing Given/When/Then prefixes (#519). The implementation has a bug and prefixes consisting of more than one word like `Étant donné` in French don't work. Other affected languages are Polish, Turkish, Bulgarian and Romanian.\r\n\r\nThis is severe enough to warrant a bug fix release bug not so critical that such a release would be needed immediately.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/timeline","performed_via_github_app":null,"state_reason":"completed","score":1}]}}] \ No newline at end of file +[{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null,"issues":{"total_count":24,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4987","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/events","html_url":"https://github.com/robotframework/robotframework/issues/4987","id":2050371400,"node_id":"I_kwDOAUSaQ856Ni9I","number":4987,"title":"Do not continue after failures inside TRY blocks in teardowns","user":{"login":"tminakov","id":7096186,"node_id":"MDQ6VXNlcjcwOTYxODY=","avatar_url":"https://avatars.githubusercontent.com/u/7096186?v=4","gravatar_id":"","url":"https://api.github.com/users/tminakov","html_url":"https://github.com/tminakov","followers_url":"https://api.github.com/users/tminakov/followers","following_url":"https://api.github.com/users/tminakov/following{/other_user}","gists_url":"https://api.github.com/users/tminakov/gists{/gist_id}","starred_url":"https://api.github.com/users/tminakov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tminakov/subscriptions","organizations_url":"https://api.github.com/users/tminakov/orgs","repos_url":"https://api.github.com/users/tminakov/repos","events_url":"https://api.github.com/users/tminakov/events{/privacy}","received_events_url":"https://api.github.com/users/tminakov/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2023-12-20T11:31:49Z","updated_at":"2023-12-20T16:10:15Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"When a keyword is ran within a teardown (case or suite) all operations inside a TRY block are executed even if there is an exception.\r\n\r\nConsidering this sample keyword:\r\n```\r\nMy Keyword\r\n [Arguments] ${condition}\r\n\r\n TRY\r\n IF $condition Fail failing text\r\n Do Operation\r\n EXCEPT AS ${exception}\r\n Fail ${exception}\r\n END\r\n```\r\n\r\nIf it's called within a normal context (case) and the condition is met, `Do Operation` will not be executed; but if it's in a teardown, `Do Operation` is still ran.\r\n\r\nThis behavior is inline with the expectations set with teardowns - that all calls inside them (and inner for called keywords) are executed, in attempt to clean up the environment.\r\n \r\nStill I'd like to nominate the TRY/EXCEPT blocks for different behavior - when there's an exception in a TRY to halt further calls and fall back to the EXCEPT and FINALLY calls. This will allow the usage of exception handling as normal flow control (like in python), and clear workarounds like the one below.\r\n\r\nThe workaround I'm normally using is to have bogus `RETURN` statements (or huge embedded IF blocks); for instance in the same example:\r\n\r\n```\r\nMy Keyword\r\n [Arguments] ${condition}\r\n\r\n IF $condition \r\n Fail failing text\r\n RETURN # just so the next lines are not executed in teardown\r\n END\r\n Do Operation\r\n```\r\n\r\nFor a couple of checks that's ok, but when there are more failure conditions (esp later in the flow - like depending on storage data), this gets ugly:\r\n\r\n```\r\n\r\n IF $condition \r\n Fail failing text\r\n RETURN # just so the next lines are not executed in teardown\r\n END\r\n ${check}= Do Check In SQL\r\n IF not $check \r\n Fail check failed\r\n RETURN # just so the next lines are not executed in teardown\r\n END\r\n # etc\r\n```\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4987/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4914","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/events","html_url":"https://github.com/robotframework/robotframework/issues/4914","id":1963840069,"node_id":"I_kwDOAUSaQ851DdJF","number":4914,"title":"Enhance token types used by parsing model","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2023-10-26T15:34:56Z","updated_at":"2023-10-26T15:34:57Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"On the lowest level the parsing model consists of tokens having different types. For most parts types are fine, but we have identified few issues with them. We should go them through and do at least the following:\r\n\r\n1. When assigning variables, we sometimes use the type `VARIABLE` and sometimes `ASSIGN`. Issue #4708 proposed changing the type used with FOR and EXCEPT AS variables from `VARIABLE` to `ASSIGN` to be consistent with variables created from keyword return values. This change was already done during the RF 7.0 development, but it was reverted because it turned out we still used `VARIABLE` with variables created in the Variables section and with the new VAR syntax and i wasn't possible to change also these types in RF 7.0. We need to check all places where variables are created and see can we use a common type in all cases and what that type would be.\r\n\r\n2. We currently use the type `ARGUMENT` with too many different tokens. For example, we use it with IF and WHILE conditions and with variable values in the Variables section and with the VAR syntax. This means that if we wanted to support conditional variable assignment like `VAR ${x} IF $cond y ELSE z` both `$cont` and `y` would have the `ARGUMENT` type. This in turn would make it unnecessarily hard to find the condition and value tokens. It's not certain is this kind of conditional variable assignment a good idea in general, but we should nevertheless change the token types so that implementation is possible. We could, for example, introduce a new `CONDITION` type to be used with all conditions.\r\n\r\n3. `RETURN` should be changed to mean the RETURN statement, not [Return] setting.\r\n\r\n4. There are some deprecated and unused token types we can remove. This includes `WITH_NAME`, `FORCE_TAGS`, `FATAL_ERROR`, `FATAL_INVALID_HEADER` and `RETURN_SETTING`.\r\n\r\n5. We should in general go through the token types and see do they make sense. The idea is to do a proper cleanup once and then try to keep the types stable.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4914/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4858","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/events","html_url":"https://github.com/robotframework/robotframework/issues/4858","id":1885309238,"node_id":"I_kwDOAUSaQ85wX4k2","number":4858,"title":"Remove support for singular section headers","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2023-09-07T07:47:27Z","updated_at":"2023-09-07T07:47:27Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Singular section headers were deprecated in RF 6.0 (#4431) and started to emit actual deprecation warnings in RF 7.0 (#4432). The earliest release we can remove their support for good is RF 8.0. If that's considered too early and we want to give users more time to update their data, removal can be postponed to RF 9.0.\r\n\r\nFor reasons why we decided to remove the support for singular headers see #4431.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4858/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4774","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/events","html_url":"https://github.com/robotframework/robotframework/issues/4774","id":1724264584,"node_id":"I_kwDOAUSaQ85mxjCI","number":4774,"title":"Failed imports should fail suite they belong to","user":{"login":"JonasSchares","id":103201810,"node_id":"U_kgDOBia8Eg","avatar_url":"https://avatars.githubusercontent.com/u/103201810?v=4","gravatar_id":"","url":"https://api.github.com/users/JonasSchares","html_url":"https://github.com/JonasSchares","followers_url":"https://api.github.com/users/JonasSchares/followers","following_url":"https://api.github.com/users/JonasSchares/following{/other_user}","gists_url":"https://api.github.com/users/JonasSchares/gists{/gist_id}","starred_url":"https://api.github.com/users/JonasSchares/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JonasSchares/subscriptions","organizations_url":"https://api.github.com/users/JonasSchares/orgs","repos_url":"https://api.github.com/users/JonasSchares/repos","events_url":"https://api.github.com/users/JonasSchares/events{/privacy}","received_events_url":"https://api.github.com/users/JonasSchares/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2023-05-24T15:29:23Z","updated_at":"2023-10-18T18:37:14Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"We encountered follwoing scenario while using a custom library: (RF 6.0, Python 3.10.8)\r\nWhen the initialization of the custom library fails, the test execution is continued until the first keyword provided by that library is used. The result is a rather misleading \"No keyword with name 'XY' found.\".\r\n\r\nHere is a minimal example:\r\nExampleLib.py:\r\n```python\r\nclass ExampleLib:\r\n ROBOT_LIBRARY_SCOPE = 'SUITE'\r\n ROBOT_LISTENER_API_VERSION = 3\r\n\r\n def __init__(self):\r\n # do init stuff\r\n raise Exception(\"something bad happened while doing init stuff\")\r\n\r\n def sayHello(self):\r\n return \"Hello World\"\r\n```\r\n\r\nExample.robot:\r\n```robot\r\n*** Settings ***\r\nLibrary ExampleLib.py\r\n\r\n*** Test Cases ***\r\nTest SayHello\r\n ${res} = Set Variable \"This is a String\"\r\n ${res} = sayHello\r\n Log To Console ${res}\r\n```\r\n\r\nResult:\r\n![Result](https://github.com/robotframework/robotframework/assets/103201810/6b577e36-61c7-41cd-a359-e4e7d181f01a)\r\n\r\nIt would be great to have the possibility to stop the test execution from within the custom libraries constructor.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4774/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4686","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/events","html_url":"https://github.com/robotframework/robotframework/issues/4686","id":1622470583,"node_id":"I_kwDOAUSaQ85gtO-3","number":4686,"title":"Change default `FOR IN ZIP` mode from `SHORTEST` to `STRICT`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2023-03-13T23:45:29Z","updated_at":"2023-08-28T08:59:57Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"RF 6.1 made it possible to configure what to do if lengths of lists iterated using `FOR IN ZIP` are different (#4682). The old default behavior to silently ignore items in longer lists (i.e. `SHORTEST` mode) was preserved, but the plan is to deprecate it in RF 7.0 (#4685). In RF 8 we can then change the default so that lengths must match (i.e. `STRICT` mode). The main motivation is avoiding false positives. See #4682 for mode details.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4686/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4674","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/events","html_url":"https://github.com/robotframework/robotframework/issues/4674","id":1613542507,"node_id":"I_kwDOAUSaQ85gLLRr","number":4674,"title":"Support variables in format `$var` in addition to `${var}`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430421,"node_id":"MDU6TGFiZWwxMTA0MzA0MjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20critical","name":"priority: critical","color":"00441b","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":23,"created_at":"2023-03-07T14:07:35Z","updated_at":"2024-02-15T13:28:12Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Curly braces required by Robot's variable syntax can be considered somewhat distracting and even ugly. Depending on the keyboard layout, writing them can also require annoying finger acrobatics. It would thus be convenient if it would be possible to use `$var` instead of `${var}` and also `@list`, `&dict` and `%env` instead of `@{list}`, `&{dict}` and `%{env}`. For example, all these could be supported:\r\n\r\n```\r\n*** Variables ***\r\n$VARIABLE value\r\n\r\n*** Test Cases ***\r\nExample\r\n Log $VARIABLE\r\n $var = Keyword\r\n FOR $item IN @stuff\r\n Log $item\r\n END\r\n```\r\n\r\nIn all the above cases the `$var` syntax is used on its own and that would work fine. This syntax wouldn't work too well when embedded to a string, though. For example, if you have variables `$name` and `$named`, string `Hello, $name!` could be parsed like `Hello, ${name}!`, but `abc$named` could be either `abc${name}d` or `abc${named}`. We could require using the `${var}` syntax in cases where `$var` is ambiguous, that's how [shell scripts](https://learn-bash.org/variables.html) work, but I believe it's better to require it always when variables are embedded. That makes the syntax more consistent and this approach is also considerably easier to implement. We can, however, look at this again later if the `$var` syntax is universally considered better and using it always (when possible) is considered important.\r\n\r\nSupporting the `$var` syntax would be a backwards incompatible change, but if we support it only when variables are used on their own, it shouldn't be that bad. It would mean that all arguments starting with `$`, `@`, `&` and `%` would need to be escaped like `\\$not_var`. We already require this with `#` (which otherwise starts a comment) so there's precedence for such syntax. Nevertheless, this would break lot of tests/tasks and the change can be made only in a major version. It would also be a good idea to deprecate using arguments starting with these characters already earlier. If this enhancement is considered important, it could be added in RF 7.0 and deprecation added in RF 6.2 or possibly already in RF 6.1.\r\n\r\nAlthough the basic syntax would be simple, there are some design decision to be made:\r\n\r\n1. Should we limit variable base name to only alpha numeric characters and underscore? In other words, should something like `$! als lkjas` be considered a variable with base name `! als lkjat` or should the whole thing be considered a literal string? Being more strict with the variable name would mean there's less need for escaping, but then these variables would work inconsistently compared to \"normal\" variables. It would also mean that some built-in variables like `${/}` couldn't be used like `$/`. I got a feeling that it's better if we don't limit the name. \r\n2. Should this syntax support item access like `$list[0]` and `$dict[key][nested]`? I believe it should.\r\n3. Should this syntax support \"extended variable syntax\" like `$var.upper()` and `$SPACE * 10`? I don't have too strong opinion on this, but I guess it would be better to support it. Needing to use `${var.upper()}` in this case would be a bit strange and inconsistent.\r\n\r\nI'll add this issue tentatively to RF 7.0 scope, but we still need to make a bit more official decision about it. If we decide to include it, then another issue should be submitted about deprecating arguments starting with `$` and other such variable meta characters.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/reactions","total_count":9,"+1":5,"-1":3,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":1},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4674/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4537","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/events","html_url":"https://github.com/robotframework/robotframework/issues/4537","id":1451842501,"node_id":"I_kwDOAUSaQ85WiVvF","number":4537,"title":"Support creating variables that are not logged even on TRACE level","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2022-11-16T15:48:54Z","updated_at":"2023-08-25T13:19:37Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Often in automation we need to use passwords or other values that should not be logged. To help with that, various libraries have keywords that avoid logging given values even though their keywords normally do that. For example, SeleniumLibrary has `Input Password` that doesn't log the password and also temporarily disables Robot's logging to avoid the password being logged by the underlying Selenium on DEBUG level. This works fine otherwise, but if tests are run with `--loglevel TRACE`, Robot anyway logs all argument values and the password will be visible. Browser's `Fill Secret` tries to avoid that problem by requiring the value to be passed using a special `$var` syntax so that Robot won't log the actual variable value. Unfortunately that doesn't work if the value is passed to `Fill Secret` via a user keyword and only that keyword uses the `$var` syntax like in the following example:\r\n\r\n```robotframework\r\n*** Variables ***\r\n${PASSWORD} secret\r\n\r\n*** Test Cases ***\r\nExample\r\n Keyword ${PASSWORD} # This value is logged on TRACE level\r\n\r\n*** Keywords ***\r\nKeyword\r\n [Arguments] ${pwd}\r\n Fill Secret selector $pwd\r\n```\r\n\r\nTo make it easier to use values that should not be logged, I propose we add new variable syntax `*{var}` to create \"secret variables\". The syntax could be used when creating variables in the Variables section, when creating local variables based on keyword return values, and with `Set Global/Suite/Test/Local Variable` keywords. The syntax would be only used for creating variables, they would be used normally like `${var}`:\r\n\r\n```robotframework\r\n*** Variables ***\r\n*{PASSWORD} secret\r\n\r\n*** Test Cases ***\r\nExample\r\n Keyword ${PASSWORD}\r\n *{local} = Another keyword\r\n Keyword ${local}\r\n\r\n*** Keywords ***\r\nKeyword\r\n [Arguments] ${pwd}\r\n Fill Secret selector ${pwd}\r\n```\r\n\r\nTechnically the `*{var}` assignment would create a custom object with this kind of implementation:\r\n\r\n```python\r\nclass Secret:\r\n def __init__(self, value, name=None):\r\n self.value = value\r\n self.name = name\r\n def __str__(self):\r\n return f'' if self.name else ''\r\n```\r\n\r\nThese objects would be used when the variable is passed from tests to user keywords and from user keywords to other user keywords. The real value would, however, be passed to library keywords so they would get values normally and wouldn't need to be changed to benefit from this new syntax.\r\n\r\nAlthough this new syntax would work with existing keywords, we should make it possible for library keywords to require arguments to be \"secret\". That's basically what `Fill Secret` does but this new syntax would avoid the problem that the value can be logged on higher level. A convenient way to support this would be type hints:\r\n\r\n```python\r\nfrom robot.api.secrets import Secret\r\n\r\ndef example(secret: Secret):\r\n ...\r\n```\r\n\r\nThis would work so that Robot would validate that the used value is a `Secret` and fail if it's not. I believe we should pass the real value, not the actual `Secret` object, to the underlying keyword also in this case. That can confuse type checkers but keywords can use [typing.cast](https://docs.python.org/3/library/typing.html#typing.cast) if that's a problem. To support normal type conversion, we should also allow parameterizing the type hint like `Secret[int]`.\r\n\r\nKeywords could also return secret values simply by returning `Secret` instances:\r\n\r\n```python\r\nfrom robot.api.secrets import Secret\r\n\r\ndef example():\r\n return Secret('value')\r\n```\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4537/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4478","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/events","html_url":"https://github.com/robotframework/robotframework/issues/4478","id":1385930204,"node_id":"I_kwDOAUSaQ85Sm53c","number":4478,"title":"Simpler syntax to create lists, dicts, and other collections as arguments to keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2022-09-26T11:43:47Z","updated_at":"2023-08-25T11:33:26Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Robot's automatic argument conversion (#2890) makes it possible to have a keywords like\r\n```python\r\ndef accept_list(arg: list):\r\n ...\r\n\r\ndef accept_dict(arg: dict):\r\n ...\r\n```\r\nand call them so that argument are Python literals\r\n```\r\nAccept List ['list', 'items', 'here']\r\nAccept Dict {'key': 'value', 'another': 'item'}\r\n```\r\n\r\nThis is pretty convenient, but needing to use Python syntax is a bit ugly in general and especially annoying when using embedded arguments that are supposed to enhance readability:\r\n```\r\nSelect animals ['cat', 'dog'] from list\r\n```\r\n\r\nI propose we enhance argument conversion so that we support also the following syntax:\r\n```\r\nAccept List list, items, here\r\nAccept Dict key=value, another=item\r\n```\r\n\r\nThe high level semantics would be as follows:\r\n\r\n- Separator between items is a comma _and_ a space. This allows using commas in values like `first, second,with,commas, third`. Having a comma followed by a space in the value wouldn't be possible.\r\n- We could allow using a semicolon and a space as an alternative separator. In that case we'd use the separator that's encountered first. This would allow usages like `first; second, with, commas followed by spaces; third`.\r\n- With dictionaries the separator between key and value is `=`. This is the syntax we use also when creating `&{dict}` variables.\r\n- Values are considered strings by default. This can be changed by using generics (#4433) and `TypedDict` (#4477).\r\n- Because this would be handled by type convertors, variables would have been resolved already earlier. That means that something like `${1}, ${2}` wouldn't create a list of integers. See the above point for alternatives.\r\n- Also escapes are handled before type conversion. That makes it impossible to use something like `first, second\\,with\\,commas` for escaping commas in values.\r\n\r\nThis enhancement would ease using collections a lot especially if #4433 and #4477 are implemented. If we agree above semantics are fine, implementation would also be pretty easy. I thus add this to RF 5.1 scope even though the release is already late.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4478/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4472","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/events","html_url":"https://github.com/robotframework/robotframework/issues/4472","id":1379984865,"node_id":"I_kwDOAUSaQ85SQOXh","number":4472,"title":"Allow resource files and libraries to be imported privately in other resource files","user":{"login":"BCGST","id":105816460,"node_id":"U_kgDOBk6hjA","avatar_url":"https://avatars.githubusercontent.com/u/105816460?v=4","gravatar_id":"","url":"https://api.github.com/users/BCGST","html_url":"https://github.com/BCGST","followers_url":"https://api.github.com/users/BCGST/followers","following_url":"https://api.github.com/users/BCGST/following{/other_user}","gists_url":"https://api.github.com/users/BCGST/gists{/gist_id}","starred_url":"https://api.github.com/users/BCGST/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BCGST/subscriptions","organizations_url":"https://api.github.com/users/BCGST/orgs","repos_url":"https://api.github.com/users/BCGST/repos","events_url":"https://api.github.com/users/BCGST/events{/privacy}","received_events_url":"https://api.github.com/users/BCGST/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972226383,"node_id":"LA_kwDOAUSaQ88AAAABKF4nTw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20extra%20large","name":"effort: extra large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2022-09-20T20:55:41Z","updated_at":"2023-08-25T11:29:42Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"It could be beneficial if users could import resource files and libraries in a \"private\" way. Currently, resource files are imported in a sort of recursive way where you have access to all keywords that resource file imports as well, as described in the user guide [here](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#resource-files). This can be unhelpful when you are abstracting a library or resource such that other contributors should not make direct calls to the underlying libraries.\r\n\r\nThis was especially important to me on a recent project where I was refactoring a test suite to be able choose whether to run with Browser library or SeleniumLibrary to compare their pros and cons. You could pick which browser control to use but writing a test that made direct keyword calls to the opposite library would cause that control to crash out. Using an abstracted resource file allows you to pick which library to use on the fly, however with recursive importation, a contributor could still mistakenly call a non-abstracted keyword from one or the other library and cause the opposing library crash the test when they reach the unexpected keyword.\r\n\r\nIn more biased terms, private importation of libraries and resources feels like a much more familiar mode for project structure for me given that is how python seems to handle resource/library importation.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4472/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4395","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/events","html_url":"https://github.com/robotframework/robotframework/issues/4395","id":1300958594,"node_id":"I_kwDOAUSaQ85Niw2C","number":4395,"title":"Give local keywords in resource files precedence over keywords in test case files","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2022-07-11T16:39:30Z","updated_at":"2023-11-30T12:10:25Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Currently if you have a test case file like\r\n\r\n```robotframework\r\n*** Settings ***\r\nResource example.resource\r\n\r\n*** Test Cases ***\r\nExample\r\n Keyword 1\r\n\r\n*** Keywords ***\r\nKeyword 2\r\n Log Keyword in test case file\r\n```\r\n\r\nand the imported resource file contains\r\n\r\n```robotframework\r\n*** Keywords ***\r\nKeyword 1\r\n Keyword 2\r\n \r\nKeyword 2\r\n Log Keyword in resource file\r\n```\r\n\r\nthe `Keyword 2` keyword that ends up being called by `Keyword 1` is from the test case file. This is rather strange and it would be more logical if the keyword from the same resource file as `Keyword 1` would be used.\r\n\r\nThis behavior was deprecated in RF 6.0 when local keywords were given precedence over imported keywords with same name (#4366).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4395/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4365","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/events","html_url":"https://github.com/robotframework/robotframework/issues/4365","id":1271120015,"node_id":"I_kwDOAUSaQ85Lw8CP","number":4365,"title":"Rename `Force Tags` to `Test Tags` and remove `Default Tags`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":15,"created_at":"2022-06-14T17:22:50Z","updated_at":"2023-11-09T11:09:59Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"We currently have three settings for controlling tags tests get:\r\n\r\n- `Force Tags` in the Settings section for specifying tags tests will unconditionally get.\r\n- `Default Tags` in the Settings sections for specifying tags tests get, in addition to the forced tags, unless tests themselves have tags.\r\n- `[Tags]` with each tests to specify tags they get in addition to the forced tags. These also override the default tags.\r\n\r\nThis is rather complicated and my understanding is that all three settings are rarely used. I propose we simplify this so that in the future we'd only have two settings:\r\n\r\n- `Test Tags` in the Settings section to specify tags tests always get. Same as `Force Tags` nowadays.\r\n- `[Tags]` with each test to specify tags tests get in addition to the `Test Tags`.\r\n\r\nThe functional difference compared to the current behavior is that there wouldn't be a possibility to specify tags tests get by default but that they could override when needed. For example, something like this wouldn't be possible anymore:\r\n\r\n```robotframework\r\n*** Settings ***\r\nForce Tags all have\r\nDefault Tags most have\r\n\r\n*** Test Cases ***\r\nT1\r\n No Operation\r\nT2\r\n [Tags] only one has\r\n No Operation\r\nT3\r\n No Operation\r\n```\r\n\r\nInstead of using `Default Tags` that some tests override, all tests that actually need these tags must list them explicitly. The change wouldn't be overly big and I actually like this better:\r\n\r\n```robotframework\r\n*** Settings ***\r\nTest Tags all have\r\n\r\n*** Test Cases ***\r\nT1\r\n [Tags] most have\r\n No Operation\r\nT2\r\n [Tags] only one has\r\n No Operation\r\nT3\r\n [Tags] most have\r\n No Operation\r\n```\r\n\r\nThis change is obviously backwards incompatible and cannot be done without a deprecation period. I propose we do it like this:\r\n- In RF 5.1 add `Test Tags` that basically acts as an alias for `Force Tags`. Also document that `Test Tags` and `[Tags]` are the way forward.\r\n- In RF 6.0 deprecate `Force Tags` and `Default Tags`.\r\n- In RF 7.0 remove `Force Tags` and `Default Tags`.\r\n\r\nThis is currently only a proposal and comments are welcome! If you just want to indicate your opinion, you can add :+1: or :-1: reaction to this description.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/reactions","total_count":14,"+1":13,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4365/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4252","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/events","html_url":"https://github.com/robotframework/robotframework/issues/4252","id":1160040268,"node_id":"I_kwDOAUSaQ85FJM9M","number":4252,"title":"Support nested keywords with library keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2022-03-04T20:49:53Z","updated_at":"2023-09-29T13:36:58Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Library keywords can execute methods freely, but methods aren't shown in the log file as child keywords. For example,\r\n\r\n```python\r\ndef do_something():\r\n do_first_thing('example')\r\n do_second_thing()\r\n```\r\nwill in the log file be shown as a single keyword without any child keywords. It is possible to use `BuiltIn.run_keyword` to execute other keywords so that they are shown as child keywords and #4237 discusses better APIs for that usage.\r\n\r\nA problem with using `BuiltIn.run_keyword` is that keywords executed with it must be available as normal keywords either in the library running other keywords or in some other imported library. That's ok if keywords are usable on their own, but it is possible that child keywords cannot be used like that. This problem can be avoided by making it possible to run any callable as the [final proposal](https://github.com/robotframework/robotframework/issues/4237#issuecomment-1058077142) in #4237 suggests. There could, however, be even better solutions for the underlying need.\r\n\r\nA solution I have been thinking is is using a context manager that would create a keyword in log (and in output.xml). We probably could use our existing `robot.running.Keyword` for that purpose. The usage could be something like this:\r\n\r\n```python\r\ndef do_something():\r\n with Keyword('Do first thing', args=['example'], doc='Example'):\r\n do_first_thing()\r\n with Keyword('Do second thing'):\r\n print('No need to call a method, implementation can be directly inside the context manager!')\r\n```\r\n\r\nThese are the main benefits of this approach compared to `BuitlIn.run_keyword` would be:\r\n1. No need to expose child keywords as real keywords.\r\n2. No need to even make each child keyword a callable. Implementation could be directly inside the context manager.\r\n3. It would be possible to add documentation, tags, etc. to be shown in the log file.\r\n\r\nPoints 1. and 3. would be possible also with `execute_keyword` proposed in #4237. Executing other keywords has also other use cases than logging child keywords, so #4237 is likely needed anyway. It's not certain is 2. alone worth enough to implement this feature. Possibly using a context manager could result with cleaner code, though.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4252/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4237","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/events","html_url":"https://github.com/robotframework/robotframework/issues/4237","id":1140704583,"node_id":"I_kwDOAUSaQ85D_cVH","number":4237,"title":"Better API for library keywords to execute other keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2022-02-16T23:50:50Z","updated_at":"2023-08-25T11:29:11Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"It is a relatively common need for library keywords to be able to run other keywords. One good example is SeleniumLibrary, that makes it possible to register a keyword that will be executed if any of its own keywords fails. Sometimes, especially when doing task automation, it is also beneficial to log actions done by the keyword in the log file separately. For example,\r\n\r\n```python\r\ndef do_something():\r\n do_first_thing()\r\n do_second_thing()\r\n```\r\nwill in the log file be shown as a single keyword without any child keywords, but there are sometimes needs to show `do_first_thing` and `do_second_thing` as child keywords.\r\n\r\nNowadays keywords can execute other keywords by using `BuiltIn.run_keyword`. It works but has several problems:\r\n\r\n1. Arguments are resolved twice. This means replacing variables and handling syntax like `\\n`. For example, if we have a keyword like\r\n ```python\r\n def example(arg):\r\n BuiltIn().run_keyword('Log To Console', arg)\r\n ```\r\n and call it like\r\n ```\r\n Example c:\\\\temp\r\n ```\r\n the actually logged string has a tab character. The reason is that `\\\\t` is first resolved to string `\\t` which is then on the second round resolved to a tab.\r\n\r\n Double resolving can be avoided be registering the keyword to be a \"run keyword variant\", but that API isn't really public and it's also pretty bad in general. We have #2190 about enhancing it and making it public, but it would probably be better to avoid this double resolving altogether.\r\n\r\n2. Related to above, the keyword using `BuiltIn.run_keyword` cannot safely call it without escaping strings. For example, something like `BuiltIn.run_keyword('Log To Console', 'c:\\\\temp')` won't work correctly and the argument should be `c:\\\\\\\\temp` instead.\r\n\r\n3. `BuiltIn.run_keyword` only accepts positional arguments. For example, if we had a keyword implemented like\r\n ```pyhton\r\n def example(upper=False):\r\n ...\r\n ```\r\n we couldn't call it like `BuiltIn.run_keyword('Example', upper=True)` but instead needed to use `BuiltIn.run_keywod('Example', 'upper=True')`.\r\n\r\nThe above examples ought to make it clear that a better API is needed. I have some ideas how to API could look and will write separate comments about that a bit later.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/reactions","total_count":2,"+1":2,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4237/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4170","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/events","html_url":"https://github.com/robotframework/robotframework/issues/4170","id":1080815625,"node_id":"I_kwDOAUSaQ85Aa_AJ","number":4170,"title":"Tests that are not run due to earlier fatal error should get SKIP status, not FAIL","user":{"login":"dgalezow","id":48494061,"node_id":"MDQ6VXNlcjQ4NDk0MDYx","avatar_url":"https://avatars.githubusercontent.com/u/48494061?v=4","gravatar_id":"","url":"https://api.github.com/users/dgalezow","html_url":"https://github.com/dgalezow","followers_url":"https://api.github.com/users/dgalezow/followers","following_url":"https://api.github.com/users/dgalezow/following{/other_user}","gists_url":"https://api.github.com/users/dgalezow/gists{/gist_id}","starred_url":"https://api.github.com/users/dgalezow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgalezow/subscriptions","organizations_url":"https://api.github.com/users/dgalezow/orgs","repos_url":"https://api.github.com/users/dgalezow/repos","events_url":"https://api.github.com/users/dgalezow/events{/privacy}","received_events_url":"https://api.github.com/users/dgalezow/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2021-12-15T09:50:03Z","updated_at":"2023-10-18T18:36:51Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"With the implementation of SKIP status, it makes more sense to mark Test Cases that were not even started as SKIP instead of FAIL\r\n\r\nAs @pekkaklarck mentioned on slack it would be good to implement this for all ways to gracefully stop execution like \r\nFatal Error keyword\r\n--exitonfailure","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4170/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4069","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/events","html_url":"https://github.com/robotframework/robotframework/issues/4069","id":980011349,"node_id":"MDU6SXNzdWU5ODAwMTEzNDk=","number":4069,"title":"Variables acting as embedded arguments are not checked against regular expression","user":{"login":"MoreFamed","id":82573620,"node_id":"MDQ6VXNlcjgyNTczNjIw","avatar_url":"https://avatars.githubusercontent.com/u/82573620?v=4","gravatar_id":"","url":"https://api.github.com/users/MoreFamed","html_url":"https://github.com/MoreFamed","followers_url":"https://api.github.com/users/MoreFamed/followers","following_url":"https://api.github.com/users/MoreFamed/following{/other_user}","gists_url":"https://api.github.com/users/MoreFamed/gists{/gist_id}","starred_url":"https://api.github.com/users/MoreFamed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MoreFamed/subscriptions","organizations_url":"https://api.github.com/users/MoreFamed/orgs","repos_url":"https://api.github.com/users/MoreFamed/repos","events_url":"https://api.github.com/users/MoreFamed/events{/privacy}","received_events_url":"https://api.github.com/users/MoreFamed/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":15,"created_at":"2021-08-26T09:06:07Z","updated_at":"2023-08-28T11:54:16Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Hi, I came across strange behaviour of RF regarding embedded arguments. I have keyword\r\n```\r\nPerform ${arg:[^ ]+}\r\n Log To Console ${arg}\r\n```\r\nIn other words, the argument cannot contain any space. Then, `Perform abcd` passes, as it contains no space. `Perform ab cd` fails with _No keyword with name 'Perform ab cd' found_, since it does contain a space. So far so good. But when I set the value with space to a variable and give it to the keyword: `${a} Set Variable ab cd` and `Perform ${a}`, the keyword surprisingly passes (and logs _ab cd_). I expect it to fail as if in case when the non-matching value was given to the keyword directly.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4069/timeline","performed_via_github_app":null,"state_reason":"reopened","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3423","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/events","html_url":"https://github.com/robotframework/robotframework/issues/3423","id":541348081,"node_id":"MDU6SXNzdWU1NDEzNDgwODE=","number":3423,"title":"Possibility to use output.json in addition to output.xml","user":{"login":"teaglebuilt","id":18645015,"node_id":"MDQ6VXNlcjE4NjQ1MDE1","avatar_url":"https://avatars.githubusercontent.com/u/18645015?v=4","gravatar_id":"","url":"https://api.github.com/users/teaglebuilt","html_url":"https://github.com/teaglebuilt","followers_url":"https://api.github.com/users/teaglebuilt/followers","following_url":"https://api.github.com/users/teaglebuilt/following{/other_user}","gists_url":"https://api.github.com/users/teaglebuilt/gists{/gist_id}","starred_url":"https://api.github.com/users/teaglebuilt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/teaglebuilt/subscriptions","organizations_url":"https://api.github.com/users/teaglebuilt/orgs","repos_url":"https://api.github.com/users/teaglebuilt/repos","events_url":"https://api.github.com/users/teaglebuilt/events{/privacy}","received_events_url":"https://api.github.com/users/teaglebuilt/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":47,"created_at":"2019-12-21T17:04:23Z","updated_at":"2023-12-18T21:58:49Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Problem:\r\n\r\nPrefer to use a NOSQL database to store test reports. NOSQL databases typically require json format because its a relational database.\r\n\r\nSolution:\r\n\r\nProvide robotframework with the ability to use json rather than xml in the output file. \r\n\r\nFor example:\r\n\r\n```\r\n # flag --output\r\n robot --output output.json ./tests\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3423/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3278","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/events","html_url":"https://github.com/robotframework/robotframework/issues/3278","id":484420789,"node_id":"MDU6SXNzdWU0ODQ0MjA3ODk=","number":3278,"title":"Variable type conversion","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":14,"created_at":"2019-08-23T09:13:40Z","updated_at":"2024-02-04T13:50:32Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"RF 3.1 added automatic argument conversion with library keywords using function annotations (#2890), default values (#2932), and some other means. That has worked very well, and it would be nice if something like that would work also with variables defined in test data. We probably could re-use the underlying argument conversion logic which ought to make it relatively easy to implement this. We also got a similar request related to variables passed from the command line #2946.\r\n\r\nAutomatically converting numbers like `42` and `3.14` to actual integers/floats would be handy, even when we already support them as variables like `${42}` and `${3.14}`. Being able to use datatime objects, bytes, and other types supported by the argument conversion that don't have direct variable alternatives would naturally be even more useful (but also less commonly needed). I would expect this to be most useful with lists and dictionaries and especially with nested list and dicts that cannot easily be constructed in Robot's data.\r\n\r\nMy proposed syntax for this functionality is supporting \"type postfix\" like `:int` in variable names like this:\r\n\r\n```robotframework\r\n*** Variables ***\r\n${COUNT:int} 42\r\n${GOOD IDEA:bool} Yes # Converted to Boolean True\r\n${ANIMALS:list} ['cat', 'dog', 'horse'] # Python syntax\r\n${NESTED:dict} {'a': 1, 'b': [{'x': 2}, {'x': 3}]} # Great with JSON\r\n```\r\n\r\nThis syntax is derived from Python's function annotation syntax and also the same syntax that was decided to be used with command line variables in #2946. Created variable names would naturally omit the type suffix and look like `${COUNT}` and `${GOOD IDEA}`.\r\n\r\nIn addition to being available in the variable section, the new syntax should also be available also when creating variable otherwise, including in keyword arguments:\r\n\r\n```robotframework\r\n*** Keywords ***\r\nExample\r\n [Arguments] ${count:int}\r\n ${nested:dict} = Set Variable {'a': ${count}, 'b': [{'x': 2}, {'x': 3}]}\r\n Set Test Variable ${DATE:datetime} 2019-08-23 12:03:42\r\n```\r\n\r\nThere are some design decision still to be made like should `${X:dict}` create a `DotDict` instance that allows `${X.key}` syntax and how to handle possible backwards incompatibility issues. For most parts the design looks pretty good, though, and I think this would be a valuable addition to Robot Framework. If there's enough interest, we can consider adding this already to RF 3.2 scope. To show your interest, vote with :+1: or :-1: and/or add comments.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/reactions","total_count":9,"+1":9,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3278/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3187","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/events","html_url":"https://github.com/robotframework/robotframework/issues/3187","id":444834531,"node_id":"MDU6SXNzdWU0NDQ4MzQ1MzE=","number":3187,"title":"Inline keyword call syntax","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":50,"created_at":"2019-05-16T08:58:20Z","updated_at":"2024-03-13T12:11:41Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Having inline keyword call syntax would be nice. It would allow using keywords in places where currently you'd normally just have plain strings (or variables). Example usages are listed below and possible syntax alternatives discussed in separate comments.\r\n\r\n1. Arguments to other keywords. At the moment you need to this in two steps:\r\n\r\n ```\r\n ${result} = Keyword argument\r\n Another Keyword ${result}\r\n ```\r\n\r\n In Python and other \"real\" programming languages you use something like `another_keyword(keyword('argument'))`, but in Robot's syntax\r\n\r\n ```\r\n Another Keyword Keyword argument\r\n ```\r\n is parsed as `Another Keyword` getting two arguments. This cannot be changed so new syntax is needed.\r\n\r\n2. Condition to the forthcoming `IF/ELSE` syntax (#3074). Currently (well, in the future once IF/ELSE is supported), you need to use:\r\n ```\r\n ${status} = Keyword\r\n IF ${status}\r\n Another Keyword\r\n END\r\n ```\r\n and\r\n ```\r\n IF Keyword\r\n Another Keyword\r\n END\r\n ```\r\n would be parsed as `Keyword` being the expression to evaluate.\r\n\r\n3. Similarly existing FOR loops would benefit from this.\r\n\r\n4. Inline keyword call syntax would also allow adding support to create variables in the `Variables` section based on keyword return values. Currently that's not possible at all, and creating suite level variables dynamically requires using Suite Setup. Being able to do something like this is a pretty common request:\r\n\r\n ```\r\n *** Variables ***\r\n ${EXAMPLE} = Keyword argument\r\n ```\r\n\r\nThe hardest thing related to this issue is coming up with a good syntax. I've been thinking about this for some time and have some ideas but no clear candidate I like best. I'll explain these ideas in separate comments below. :+1: and :-1: reactions, comments and other syntax ideas are all highly appreciated!","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/reactions","total_count":4,"+1":3,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":1},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3187/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2581","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/events","html_url":"https://github.com/robotframework/robotframework/issues/2581","id":222661777,"node_id":"MDU6SXNzdWUyMjI2NjE3Nzc=","number":2581,"title":"Scope of keywords called in resource files is globally reinterpreted when resource file is imported","user":{"login":"jesuspv","id":407695,"node_id":"MDQ6VXNlcjQwNzY5NQ==","avatar_url":"https://avatars.githubusercontent.com/u/407695?v=4","gravatar_id":"","url":"https://api.github.com/users/jesuspv","html_url":"https://github.com/jesuspv","followers_url":"https://api.github.com/users/jesuspv/followers","following_url":"https://api.github.com/users/jesuspv/following{/other_user}","gists_url":"https://api.github.com/users/jesuspv/gists{/gist_id}","starred_url":"https://api.github.com/users/jesuspv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jesuspv/subscriptions","organizations_url":"https://api.github.com/users/jesuspv/orgs","repos_url":"https://api.github.com/users/jesuspv/repos","events_url":"https://api.github.com/users/jesuspv/events{/privacy}","received_events_url":"https://api.github.com/users/jesuspv/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972226383,"node_id":"LA_kwDOAUSaQ88AAAABKF4nTw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20extra%20large","name":"effort: extra large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2017-04-19T08:39:15Z","updated_at":"2023-08-25T11:25:37Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Given the following files (one for a test case and two for resources):\r\n\r\n```\r\n$ cat cases/case.robot\r\n*** Settings ***\r\n\r\nResource rc/SSHClient.robot\r\nResource rc/TelnetClient.robot\r\n\r\n*** Test Cases ***\r\n\r\nMy Test Case\r\n SSHClient.Log On\r\n TelnetClient.Log On\r\n\r\n SSHClient.Log Off\r\n TelnetClient.Log Off\r\n```\r\n```\r\n$ cat rc/SSHClient.robot\r\n*** Variables ***\r\n\r\n${SERVER_IP} 1.2.3.4\r\n${SERVER_USER} guest\r\n${SERVER_PASSWORD} guest\r\n\r\n*** Settings ***\r\n\r\nLibrary SSHLibrary\r\n\r\n*** Keywords ***\r\n\r\nLog On\r\n Open Connection ${SERVER_IP}\r\n Login ${SERVER_USER} ${SERVER_PASSWORD}\r\n\r\nLog Off\r\n Close Connection\r\n```\r\n```\r\n$ cat rc/TelnetClient.robot\r\n*** Variables ***\r\n\r\n${SERVER_IP} 1.2.3.4\r\n${SERVER_USER} guest\r\n${SERVER_PASSWORD} guest\r\n\r\n*** Settings ***\r\n\r\nLibrary Telnet\r\n\r\n*** Keywords ***\r\n\r\nLog On\r\n Open Connection ${SERVER_IP}\r\n Login ${SERVER_USER} ${SERVER_PASSWORD}\r\n ... login_prompt=Username:\r\n ... password_prompt=Password:\r\n\r\nLog Off\r\n Close Connection\r\n```\r\n\r\nWhen running case.robot this kind of warning appears:\r\n\r\n```\r\n[ WARN ] Keyword 'Open Connection' found both from a custom test library 'SSHLibrary' and a standard library 'Telnet'. The custom keyword is used. To select explicitly, and to get rid of this warning, use either 'SSHLibrary.Open Connection' or 'Telnet.Open Connection'.\r\n[ WARN ] Keyword 'Login' found both from a custom test library 'SSHLibrary' and a standard library 'Telnet'. The custom keyword is used. To select explicitly, and to get rid of this warning, use either 'SSHLibrary.Login' or 'Telnet.Login'.\r\nMy Test Case\r\n```\r\n\r\nwhich seems to force us to prefix keywords in the resource files with the library name, even when they have imported only one library (with no name collision in the resource-file scope).\r\n\r\nShould not be the scope of keywords called in resource files determined locally to the resource file? (at least, when they can be resolved in the resource-file scope as when we have been explicitly imported the corresponding library)\r\n\r\nP.S.: I know that it is intended that keywords can be resolved at runtime to allow dynamically decide the implementation (I do not remember where I read about that behaviour though). However, this seems to hamper Robot framework keywords reusability, forcing us to work around by prefixing keywords, renaming them (globally unique...!), or implementing these keywords in a .py file (to be imported via Library). Please, you can also consult [this resource example](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#example-resource-file) in the official user guide for additional evidences on how misleading is the current non-local scope resolution.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2581/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2377","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2377/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2377/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2377/events","html_url":"https://github.com/robotframework/robotframework/issues/2377","id":156937107,"node_id":"MDU6SXNzdWUxNTY5MzcxMDc=","number":2377,"title":"Can't import diffrent libs and use the same alias","user":{"login":"ddoraemon","id":8178118,"node_id":"MDQ6VXNlcjgxNzgxMTg=","avatar_url":"https://avatars.githubusercontent.com/u/8178118?v=4","gravatar_id":"","url":"https://api.github.com/users/ddoraemon","html_url":"https://github.com/ddoraemon","followers_url":"https://api.github.com/users/ddoraemon/followers","following_url":"https://api.github.com/users/ddoraemon/following{/other_user}","gists_url":"https://api.github.com/users/ddoraemon/gists{/gist_id}","starred_url":"https://api.github.com/users/ddoraemon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddoraemon/subscriptions","organizations_url":"https://api.github.com/users/ddoraemon/orgs","repos_url":"https://api.github.com/users/ddoraemon/repos","events_url":"https://api.github.com/users/ddoraemon/events{/privacy}","received_events_url":"https://api.github.com/users/ddoraemon/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-05-26T09:04:54Z","updated_at":"2024-03-14T15:08:08Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"```robotframework\r\n*** Test Cases ***\r\n1111\r\n @{a} = Create list 5 2 3\r\n import library Collections WITH NAME p1\r\n reload library p1\r\n import library String WITH NAME p1\r\n reload library p1\r\n p1.Sort List ${a}\r\n log ${a}\r\n```\r\n\r\np1 is Collections not String because:\r\nrobot/running/namespace.py:128\r\nif lib.name in self._kw_store.libraries:\r\n LOGGER.info(\"Test library '%s' already imported by suite '%s'\"\r\n % (lib.name, self._suite_name))\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2377/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2377/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2190","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/events","html_url":"https://github.com/robotframework/robotframework/issues/2190","id":114558284,"node_id":"MDU6SXNzdWUxMTQ1NTgyODQ=","number":2190,"title":"Clean-up semi-public API to register \"run keyword variants\" and to disable variable resolving in arguments","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":12,"created_at":"2015-11-02T09:32:51Z","updated_at":"2023-11-14T14:01:02Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Robot has a mechanism to disable resolving variables in arguments using `robot.libraries.BuiltIn.register_run_keyword` method. This also makes the method so called \"run keyword variant\" which slightly changes the logic how the keyword is executed. This whole system is a mess that needs to be cleaned up. At least the following things need to be considered:\n1. Separate mechanism to disable resolving variables from arguments. Could possibly be part of `robot.api.deco.keyword`. Should then also have an API to resolve arguments if needed.\n2. Investigate could the whole \"run keyword variant\" system be removed from the public API or, preferably, altogether.\n3. If we cannot remove \"run keyword variant\" system, we need to deprecate/remove the functionality to register keywords by using function/method. That system doesn't work in Python 3 currently and trying to fix it is not worth the effort.\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2190/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2106","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2106/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2106/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2106/events","html_url":"https://github.com/robotframework/robotframework/issues/2106","id":101024939,"node_id":"MDU6SXNzdWUxMDEwMjQ5Mzk=","number":2106,"title":"Imported libraries should not be cached","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2015-08-14T14:44:32Z","updated_at":"2024-03-14T15:08:07Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Currently we put imported libraries into an internal cache to avoid importing and processing them multiple times. It's questionable how much time that actually saves and there's a risk that we waste memory keeping references to libraries used only once. The cache also makes the overall import logic more complicated and causes bugs like #2105. Need to measure what kind of performance changes removing the cache would have.\n\nWe are also thinking about not caching resources (#2099) and variable files (#2101).\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2106/reactions","total_count":3,"+1":3,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2106/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2101","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2101/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2101/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2101/events","html_url":"https://github.com/robotframework/robotframework/issues/2101","id":100769540,"node_id":"MDU6SXNzdWUxMDA3Njk1NDA=","number":2101,"title":"Variable files should always be re-imported","user":{"login":"Samu1971","id":10280577,"node_id":"MDQ6VXNlcjEwMjgwNTc3","avatar_url":"https://avatars.githubusercontent.com/u/10280577?v=4","gravatar_id":"","url":"https://api.github.com/users/Samu1971","html_url":"https://github.com/Samu1971","followers_url":"https://api.github.com/users/Samu1971/followers","following_url":"https://api.github.com/users/Samu1971/following{/other_user}","gists_url":"https://api.github.com/users/Samu1971/gists{/gist_id}","starred_url":"https://api.github.com/users/Samu1971/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Samu1971/subscriptions","organizations_url":"https://api.github.com/users/Samu1971/orgs","repos_url":"https://api.github.com/users/Samu1971/repos","events_url":"https://api.github.com/users/Samu1971/events{/privacy}","received_events_url":"https://api.github.com/users/Samu1971/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2015-08-13T13:30:13Z","updated_at":"2024-03-14T15:08:07Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"RF:2.8.6\nPython: 2.7\nOS: W7\n\nThanks in advance for your help.\n\nI have installed RF 2.8.6 and I am using import variable as is shown below, somehow seems is not working, the payment_variables.py file is created with some values in it in the first test, then is updated for the second tests (I can verify this by open the file directly), but the variable is not being re-imported / updated.\n\nSteps to reproduce it\n1.- Create a variable file as x.py with some variables and values\n example\n ('fields_to_validate', {'session id': 'YjI2ZTVlYmItYTllZC00N2Q2LWI4NjMtMGZlN2M5NTYxNzAy', 'IP address': '88.88.88.88', 'Amount': '10.64', 'Last4CCDigits': '1111', 'Product Code': '7181', 'Transaction Status': 'true', 'CCType': 'VISA', 'Error Code': '0'})\n\n2.- Import the variable file and check its variables and values\n Import Variables ${RES_eCAPS_WECAN}/x.py\n\n3.- Make changes in the values of the variables and save the file\n\n4.- Import the variable file again and check its variables and values\n I expect the 'import variables' keyword should import file even if was already imported, but this seems not be the case, because the variables keep the values gotten in the first Import (Step 2).\n\nany suggestion?\n\nhere you go more details.\n\nin the following example may help to understand what is going on.\nI first read the file using OperatingSystem.Get File and its content is displayed.\nright after that I use BuiltIn.Import Variables to import the variables from the same file, and clearly the content is different.\n\nany idea? shouldn't Import Variable re-import.\n\nKEYWORD: ${the file} = OperatingSystem.Get File ${RES_eCAPS_WECAN}/payment_variables.py\n Documentation: \n Returns the contents of a specified file.\n Start / End / Elapsed: 20150624 12:05:29.847 / 20150624 12:05:29.848 / 00:00:00.001\n\n```\n12:05:29.848 INFO Getting file 'C:\\Workspace\\CAPSProject\\capstest\\resources\\eCAPS\\eCAPS_WECAN\\payment_variables.py' \n12:05:29.848 INFO ${the file} = fields_to_validate = {'CCType':'','Transaction Status':'true','Error Code':'0','IP address':'88.88.88.88','Amount':'10.64','Last4CCDigits':'','session id': 'YjI2ZTVlYmItYTllZC00N2Q2LWI4NjMtMGZlN2M5NTY... \n```\n\nKEYWORD: BuiltIn.Import Variables ${RES_eCAPS_WECAN}/payment_variables.py\n Documentation: \n Imports a variable file with the given path and optional arguments.\n Start / End / Elapsed: 20150624 12:05:29.850 / 20150624 12:05:29.853 / 00:00:00.003\n 12:05:29.853 INFO True\n C:\\Workspace\\CAPSProject\\capstest\\resources\\eCAPS\\eCAPS_WECAN\\payment_variables.py\n [u'overwrite=True']\n \n [('fields_to_validate', {'session id': 'YjI2ZTVlYmItYTllZC00N2Q2LWI4NjMtMGZlN2M5NTYxNzAy', 'IP address': '88.88.88.88', 'Amount': '10.64', 'Last4CCDigits': '1111', 'Product Code': '7181', 'Transaction Status': 'true', 'CCType': 'VISA', 'Error Code': '0'})]\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2101/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2101/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2099","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/2099/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/2099/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/2099/events","html_url":"https://github.com/robotframework/robotframework/issues/2099","id":100505003,"node_id":"MDU6SXNzdWUxMDA1MDUwMDM=","number":2099,"title":"Resource files should be re-processed when imported","user":{"login":"dangdang03","id":13269881,"node_id":"MDQ6VXNlcjEzMjY5ODgx","avatar_url":"https://avatars.githubusercontent.com/u/13269881?v=4","gravatar_id":"","url":"https://api.github.com/users/dangdang03","html_url":"https://github.com/dangdang03","followers_url":"https://api.github.com/users/dangdang03/followers","following_url":"https://api.github.com/users/dangdang03/following{/other_user}","gists_url":"https://api.github.com/users/dangdang03/gists{/gist_id}","starred_url":"https://api.github.com/users/dangdang03/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dangdang03/subscriptions","organizations_url":"https://api.github.com/users/dangdang03/orgs","repos_url":"https://api.github.com/users/dangdang03/repos","events_url":"https://api.github.com/users/dangdang03/events{/privacy}","received_events_url":"https://api.github.com/users/dangdang03/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/70","html_url":"https://github.com/robotframework/robotframework/milestone/70","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/70/labels","id":9838128,"node_id":"MI_kwDOAUSaQ84Alh4w","number":70,"title":"v8.0","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":0,"state":"open","created_at":"2023-08-25T10:17:24Z","updated_at":"2024-03-14T15:08:08Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2015-08-12T09:40:03Z","updated_at":"2024-03-14T15:08:06Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"test procedure:\nimport resouce 1.txt -------first time\n...\ndo some changes for resouce file(1.txt)\n...\nimport resouce 1.txt ------- second time\n\nfor the second time, the import resouce file could not update the changes to robot execution.\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/2099/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/2099/timeline","performed_via_github_app":null,"state_reason":null,"score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null,"issues":{"total_count":11,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5077","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/events","html_url":"https://github.com/robotframework/robotframework/issues/5077","id":2179729004,"node_id":"I_kwDOAUSaQ86B7AZs","number":5077,"title":"VAR syntax doesn't log the variable value like \"Set * Variable\" did","user":{"login":"apallier","id":7916922,"node_id":"MDQ6VXNlcjc5MTY5MjI=","avatar_url":"https://avatars.githubusercontent.com/u/7916922?v=4","gravatar_id":"","url":"https://api.github.com/users/apallier","html_url":"https://github.com/apallier","followers_url":"https://api.github.com/users/apallier/followers","following_url":"https://api.github.com/users/apallier/following{/other_user}","gists_url":"https://api.github.com/users/apallier/gists{/gist_id}","starred_url":"https://api.github.com/users/apallier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apallier/subscriptions","organizations_url":"https://api.github.com/users/apallier/orgs","repos_url":"https://api.github.com/users/apallier/repos","events_url":"https://api.github.com/users/apallier/events{/privacy}","received_events_url":"https://api.github.com/users/apallier/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2024-03-11T17:25:23Z","updated_at":"2024-03-12T12:48:43Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"The new `VAR` syntax introduced in RF7 doesn't log the variable value.\r\n\r\nThe `Set * Variable` keywords (like: `Set Variable`, `Set Test Variable`, `Set Suite Variable`, ...) automatically log the variable value and this is a nice behavior. Isn't it? :)\r\n\r\nIf the `VAR` syntax is intended to replace `Set * Variable` keywords, it would be great if the VAR syntax also performed the same logging.\r\n\r\nCode example:\r\n\r\n```robotframework\r\n*** Variables ***\r\n${VARIABLE} ${1}\r\n${VARIABLE_2} ${2}\r\n\r\n*** Test Cases ***\r\nTest With Set Variable\r\n ${local_variable}= Set Variable ${3}\r\n Set Test Variable ${VARIABLE}\r\n Set Suite Variable ${VARIABLE_2}\r\n\r\nTest With VAR Syntax\r\n VAR ${local_variable}= ${2}\r\n VAR ${VARIABLE} ${VARIABLE} scope=TEST\r\n VAR ${VARIABLE_2} ${VARIABLE_2} scope=SUITE\r\n```\r\n\r\nLog result:\r\n\r\n![image](https://github.com/robotframework/robotframework/assets/7916922/965756b2-1281-4cb6-a887-334aa219c863)\r\n\r\n\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/reactions","total_count":6,"+1":5,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5077/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5060","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/events","html_url":"https://github.com/robotframework/robotframework/issues/5060","id":2146929611,"node_id":"I_kwDOAUSaQ85_94vL","number":5060,"title":"VAR ${var} scope=SUITE does not support children argument","user":{"login":"kstine","id":9166025,"node_id":"MDQ6VXNlcjkxNjYwMjU=","avatar_url":"https://avatars.githubusercontent.com/u/9166025?v=4","gravatar_id":"","url":"https://api.github.com/users/kstine","html_url":"https://github.com/kstine","followers_url":"https://api.github.com/users/kstine/followers","following_url":"https://api.github.com/users/kstine/following{/other_user}","gists_url":"https://api.github.com/users/kstine/gists{/gist_id}","starred_url":"https://api.github.com/users/kstine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kstine/subscriptions","organizations_url":"https://api.github.com/users/kstine/orgs","repos_url":"https://api.github.com/users/kstine/repos","events_url":"https://api.github.com/users/kstine/events{/privacy}","received_events_url":"https://api.github.com/users/kstine/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2024-02-21T14:43:42Z","updated_at":"2024-02-24T16:24:52Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"The current VAR syntax does not support the children argument offered by the `Set Suite Variable` Keyword.\r\n\r\nhttps://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Set%20Suite%20Variable\r\n\r\n```\r\nSet Suite Variable ${SUITE_VAR} I can be used by child suites. children=True\r\n```\r\n\r\n\r\nSyntax like this should be possible:\r\n\r\n```\r\nVAR ${SUITE_VAR} I should be usable by child suites. scope=SUITE children=True\r\n```\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5060/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5010","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/events","html_url":"https://github.com/robotframework/robotframework/issues/5010","id":2076383859,"node_id":"I_kwDOAUSaQ857wxpz","number":5010,"title":"EncodingWarning(s) when running robot code if PYTHONWARNDEFAULTENCODING is set.","user":{"login":"rasjani","id":27887,"node_id":"MDQ6VXNlcjI3ODg3","avatar_url":"https://avatars.githubusercontent.com/u/27887?v=4","gravatar_id":"","url":"https://api.github.com/users/rasjani","html_url":"https://github.com/rasjani","followers_url":"https://api.github.com/users/rasjani/followers","following_url":"https://api.github.com/users/rasjani/following{/other_user}","gists_url":"https://api.github.com/users/rasjani/gists{/gist_id}","starred_url":"https://api.github.com/users/rasjani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rasjani/subscriptions","organizations_url":"https://api.github.com/users/rasjani/orgs","repos_url":"https://api.github.com/users/rasjani/repos","events_url":"https://api.github.com/users/rasjani/events{/privacy}","received_events_url":"https://api.github.com/users/rasjani/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2024-01-11T11:40:05Z","updated_at":"2024-01-11T13:36:19Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"If environment variable PYTHONWARNDEFAULTENCODING is set (and at least when running on MacOS), `_get_python_system_encoding()` from `robot/utils/encodingsniffer.py` in triggers following warning;\r\n\r\n```\r\n/Users/rasjani/src/duunit/energy-meter/venv/lib/python3.11/site-packages/robot/utils/encodingsniffer.py:59: EncodingWarning: UTF-8 Mode affects locale.getpreferredencoding(). Consider locale.getencoding() instead.\r\n return locale.getpreferredencoding(False)\r\n```\r\n\r\nIn this example, all i did was `import Browser` in the python repl. \r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5010/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5008","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/events","html_url":"https://github.com/robotframework/robotframework/issues/5008","id":2074853820,"node_id":"I_kwDOAUSaQ857q8G8","number":5008,"title":"Add library, resource file and variable file import related methods to listener version 3","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972225384,"node_id":"LA_kwDOAUSaQ88AAAABKF4jaA","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20large","name":"effort: large","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2024-01-10T17:32:53Z","updated_at":"2024-01-10T17:32:54Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Listener version 3 was initially implemented in RF 3.0 (#1208). It didn't have `start/end_keyword` methods nor methods related to library, resource file and variable file imports because implementing them would have been too big task. It finally got keyword and control structure related methods in RF 7.0 (#3296), but it still lacks methods related to library, resource file and variable file imports.\r\n\r\nListener version 2 has methods `library_import`, `resource_import` and `variables_import`, and we probably should use same name with listener version 3 as well. With listener version 2 all these methods the name of the imported thing and a dictionary containing other information as arguments. With listener version 3 we want to pass the real model objects instead similarly as we do with `start/end` methods. Listeners should be able to modify at least resource files but preferably also libraries and variable files.\r\n\r\nThe good news is that implementing `start/end_keyword` methods required refactoring also library and resource file related model objects and they both ought to be in good enough shape to be used directly. With variable files we don't have such a good model object yet, but creating one shouldn't be too complicated. If it turns out to be hard, just adding methods for libraries and resource files and delaying adding methods for variable files is fine as well.\r\n\r\nI consider this pretty high priority because after that listener version 3 can handle everything that listener version 2 can.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5008/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4959","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/events","html_url":"https://github.com/robotframework/robotframework/issues/4959","id":2011430668,"node_id":"I_kwDOAUSaQ8534_8M","number":4959,"title":"Recognize library class from module regadless its name if it is decorated with the `@library` decorator","user":{"login":"jnhyperion","id":20297196,"node_id":"MDQ6VXNlcjIwMjk3MTk2","avatar_url":"https://avatars.githubusercontent.com/u/20297196?v=4","gravatar_id":"","url":"https://api.github.com/users/jnhyperion","html_url":"https://github.com/jnhyperion","followers_url":"https://api.github.com/users/jnhyperion/followers","following_url":"https://api.github.com/users/jnhyperion/following{/other_user}","gists_url":"https://api.github.com/users/jnhyperion/gists{/gist_id}","starred_url":"https://api.github.com/users/jnhyperion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnhyperion/subscriptions","organizations_url":"https://api.github.com/users/jnhyperion/orgs","repos_url":"https://api.github.com/users/jnhyperion/repos","events_url":"https://api.github.com/users/jnhyperion/events{/privacy}","received_events_url":"https://api.github.com/users/jnhyperion/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2023-11-27T03:48:18Z","updated_at":"2023-12-19T11:44:39Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"project structure:\r\n``` shell\r\nmy_module\r\n sub_module\r\n lib.py\r\n __init__.py\r\n __init__.py\r\ntest.robot\r\n```\r\n`lib.py`\r\n``` python\r\nfrom robot.api.deco import library, keyword\r\n\r\n@library(scope=\"GLOBAL\")\r\nclass lib:\r\n\r\n @keyword\r\n def my_py_kw(self):\r\n print(\"foo\")\r\n```\r\n\r\n`test.robot`\r\n``` robot\r\n*** Settings ***\r\nLibrary my_module.sub_module.lib\r\n\r\n*** Test Cases ***\r\nexample\r\n my py kw\r\n```\r\n\r\nwhen I change the lib class from `class lib` to `class Foo`, the kw `my_py_kw ` will not be recognized anymore.\r\n\r\nI think once I used the deco `@library` for a lib class, robot should use this deco to detect lib class instead of only using the name.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4959/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4931","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/events","html_url":"https://github.com/robotframework/robotframework/issues/4931","id":1979643968,"node_id":"I_kwDOAUSaQ851_vhA","number":4931,"title":"Collapse long failure messages in log and report","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2023-11-06T17:11:28Z","updated_at":"2023-11-13T13:46:26Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Currently long failure messages (over 40 lines by default, configurable with `--max-error-lines` (#2576)) are cut from the middle. This is done to avoid huge messages messing up logs and reports, but the problem is that some valuable information may be lost. Another issue is that even the resulting messages are somewhat long and take lot of space.\r\n\r\nThe above is an old problem, but the situation is getting worse in RF 7.0 due failure messages being shown not only with tests,but also with each keyword and control structure. Earlier keywords and control structures in the result model didn't have a message at all, but it was added as part of the result model cleanup (#4883). The motivation was this:\r\n- We are adding JSON representation to the result model (#4847) and want the model to be as stable and future-proof as possible.\r\n- We likely want to in the future allow running individual keywords outside Robot core. At that point we want the result model to have a message, not only status as earlier.\r\n- In some special cases (at least with `--flatten-keywords` and `--remove-keywords`) we want to add some extra notes to result objects. Earlier we used documentation for that, but it was odd because control structures such as FOR loops cannot otherwise have a documentation. Using the message for this purpose works much better.\r\n\r\nNow that also keywords and control structures also have a message, the same message can be shown on multiple levels in the log file. That's rather annoying in general, but gets especially irritating if the message is long. To mitigate this issue, and to fix the old issue with long messages, I propose we do the following:\r\n\r\n1. Show only the beginning of long failure messages in log and report by default. I believe we should show so much that typical messages are shown fully, but considerably less than 40 lines that is the current maximum. We could possibly also show more with tests than with keywords and control structures.\r\n2. Have some way to show the full message. Probably a simple \"Show more.\" button/link would be fine.\r\n3. Stop cutting long messages otherwise. This can increase output file sizes, but I doubt the difference is too big.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4931/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4909","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/events","html_url":"https://github.com/robotframework/robotframework/issues/4909","id":1957912135,"node_id":"I_kwDOAUSaQ850s15H","number":4909,"title":"Deprecate using arguments starting with `$`, `@`, `&` and `%` as literal values","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":121827221,"node_id":"MDU6TGFiZWwxMjE4MjcyMjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/deprecation","name":"deprecation","color":"fef2c0","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2023-10-23T19:49:44Z","updated_at":"2024-02-12T13:26:58Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"We are planning to support `$var` syntax in addition to ´${var}` in the future (#4674). The plan was to do that already in RF 7.0, but it turned out that this would be too badly backwards incompatible. Probably the biggest problem would be that the Browser library accepts passwords in format `$secret` and resolves the variable value internally to avoid the value being logged automatically. After the planned change `$secret`, would be considered exactly the same as `${secret}` meaning that a confidential value could leak.\r\n\r\nWe still believe that supporting the `$var` syntax is a good idea, but we need to first deprecate using values starting with `$` or any other variable identifier. That means that using, for example,\r\n```\r\nLog Many $value @another\r\n```\r\nwill cause a deprecation warning and the value needs to be escaped like\r\n```\r\nLog Many \\$value \\@another\r\n```\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/reactions","total_count":2,"+1":1,"-1":1,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4909/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4853","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/events","html_url":"https://github.com/robotframework/robotframework/issues/4853","id":1878983584,"node_id":"I_kwDOAUSaQ85v_wOg","number":4853,"title":"`--exitonerror` should cause a non-zero exit code","user":{"login":"DetachHead","id":57028336,"node_id":"MDQ6VXNlcjU3MDI4MzM2","avatar_url":"https://avatars.githubusercontent.com/u/57028336?v=4","gravatar_id":"","url":"https://api.github.com/users/DetachHead","html_url":"https://github.com/DetachHead","followers_url":"https://api.github.com/users/DetachHead/followers","following_url":"https://api.github.com/users/DetachHead/following{/other_user}","gists_url":"https://api.github.com/users/DetachHead/gists{/gist_id}","starred_url":"https://api.github.com/users/DetachHead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DetachHead/subscriptions","organizations_url":"https://api.github.com/users/DetachHead/orgs","repos_url":"https://api.github.com/users/DetachHead/repos","events_url":"https://api.github.com/users/DetachHead/events{/privacy}","received_events_url":"https://api.github.com/users/DetachHead/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2023-09-03T08:01:27Z","updated_at":"2023-12-19T23:16:43Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"currently it only fails remaining tests if an error occurs, but if for example an error occurs in a listener's `end_test` method, the test will have already passed and the exit code will be 0 if there are no more tests to run","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4853/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4821","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/events","html_url":"https://github.com/robotframework/robotframework/issues/4821","id":1805952528,"node_id":"I_kwDOAUSaQ85rpKYQ","number":4821,"title":"Format String keyword needs escaping of equals sign (=)","user":{"login":"rrajpuro","id":46111665,"node_id":"MDQ6VXNlcjQ2MTExNjY1","avatar_url":"https://avatars.githubusercontent.com/u/46111665?v=4","gravatar_id":"","url":"https://api.github.com/users/rrajpuro","html_url":"https://github.com/rrajpuro","followers_url":"https://api.github.com/users/rrajpuro/followers","following_url":"https://api.github.com/users/rrajpuro/following{/other_user}","gists_url":"https://api.github.com/users/rrajpuro/gists{/gist_id}","starred_url":"https://api.github.com/users/rrajpuro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrajpuro/subscriptions","organizations_url":"https://api.github.com/users/rrajpuro/orgs","repos_url":"https://api.github.com/users/rrajpuro/repos","events_url":"https://api.github.com/users/rrajpuro/events{/privacy}","received_events_url":"https://api.github.com/users/rrajpuro/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2023-07-15T07:32:01Z","updated_at":"2023-12-19T23:54:23Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"The Format String keyword from BuiltIn String Library needs escaping of equals sign (=). Is this behaviour expected?\r\n\r\n_Robot Framework REPL_\r\n```\r\n>>> Format String [text()=\"{}\"] TESTING\r\nERROR Keyword 'String.Format String' got positional argument after named arguments.\r\n>>>\r\n>>> Format String [text()\\=\"{}\"] TESTING\r\n[text()=\"TESTING\"]\r\n```\r\n_Python REPL_\r\n```\r\n>>> '[text()=\"{}\"]'.format('TESTING')\r\n'[text()=\"TESTING\"]'\r\n>>>\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4821/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4304","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/events","html_url":"https://github.com/robotframework/robotframework/issues/4304","id":1196078189,"node_id":"I_kwDOAUSaQ85HSrRt","number":4304,"title":"New technology for Libdoc HTML outputs","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430421,"node_id":"MDU6TGFiZWwxMTA0MzA0MjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20critical","name":"priority: critical","color":"00441b","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2022-04-07T13:47:55Z","updated_at":"2023-08-25T11:28:15Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"Libdoc HTML outputs, similarly as log.html and report.html, use [jQuery Templates](https://github.com/BorisMoore/jquery-tmpl) for generating HTML content based on the date embedded to the outputs when they are created by Libdoc. In practice there's [libdoc.html](https://github.com/robotframework/robotframework/tree/master/src/robot/htmldata/libdoc) file that contains template code as well as JavaScript. It also uses external styles and some external JavaScript files used also by Rebot.\r\n\r\nThe explained setup has worked fine for us, but there's a problem that jQuery Templates have been unmaintained for years. We need to find a replacement for it and at the same time we should enhance our HTML/JavaScript setup in general. At least the following tasks should be done:\r\n\r\n- [ ] Find a replacement for jQuery Templates. We could use its successor [JsRender](https://www.jsviews.com/) or some totally new technology like [Svelte](https://svelte.dev).\r\n- [ ] Separate JavaScript code from HTML templates as much as possible.\r\n- [ ] Add tests for JavaScript model code. A precondition is deciding what test tool(s) to use.\r\n- [ ] Set up GitHub actions to run JavaScript tests.\r\n- [ ] Decide and document JavaScript coding conventions. Using an automated code formatter could be a good idea.\r\n- [ ] Take localization into account. See #3676.\r\n- [ ] Take accessibility into account. See #3879.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4304/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3473","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/events","html_url":"https://github.com/robotframework/robotframework/issues/3473","id":567598691,"node_id":"MDU6SXNzdWU1Njc1OTg2OTE=","number":3473,"title":"Support controlling listener priority","user":{"login":"ElColmo","id":7458310,"node_id":"MDQ6VXNlcjc0NTgzMTA=","avatar_url":"https://avatars.githubusercontent.com/u/7458310?v=4","gravatar_id":"","url":"https://api.github.com/users/ElColmo","html_url":"https://github.com/ElColmo","followers_url":"https://api.github.com/users/ElColmo/followers","following_url":"https://api.github.com/users/ElColmo/following{/other_user}","gists_url":"https://api.github.com/users/ElColmo/gists{/gist_id}","starred_url":"https://api.github.com/users/ElColmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElColmo/subscriptions","organizations_url":"https://api.github.com/users/ElColmo/orgs","repos_url":"https://api.github.com/users/ElColmo/repos","events_url":"https://api.github.com/users/ElColmo/events{/privacy}","received_events_url":"https://api.github.com/users/ElColmo/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/71","html_url":"https://github.com/robotframework/robotframework/milestone/71","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/71/labels","id":9838307,"node_id":"MI_kwDOAUSaQ84Alh7j","number":71,"title":"v7.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":11,"closed_issues":0,"state":"open","created_at":"2023-08-25T11:26:23Z","updated_at":"2024-03-12T12:39:15Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2020-02-19T14:14:19Z","updated_at":"2023-10-18T18:38:09Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"I'm on RobotFramework 3.1.2 on Linux.\r\n\r\nI have a Library (MyLibrary) with a built-in listener, implemented via {code}self.ROBOT_LIBRARY_LISTENER=self{code}.\r\n\r\nI also have an external listener, implemented via poc-listener.py.\r\n\r\nI want to be able to specify the Library's built-in listener to be notified about the start and end events *before* the external listener is notified. What happens in practice is that the external listener is always notified first. I use the following command line:\r\n{code}robot --listener poc-listener.py testcases{code}\r\n\r\nNote that \"testcases\" has a test suite file which specifies the library import:\r\n *** Settings ***\r\n Library MyLibrary\r\n\r\n\r\nThis same behaviour happens even if I disable the built-in listener, and specify both listeners via the command line, using:\r\n robot --listener poc-listener.py --listener MyLibrary testcases\r\n\r\nThe only way I've been able to find to control the order in which the listeners execute is by specifying *both* listeners in the Library, using \r\n self.ROBOT_LIBRARY_LISTENER={self, \"poc-listener.py\"}\r\nand by calling robot without any listeners on the command line: \r\n robot testcases.\r\n\r\nObviously this isn't ideal, since \r\n- I'd be forced to add parameters to the library, to specify the external listeners\r\n- this completely bypasses Robot's built-in method of specifying the listeners (via the command line)\r\n- it breaks encapulation, since, in general most Libraries have no business knowing about what other listeners have been specified\r\n\r\nWhat I'd suggest is a mechanism to allow the order of listeners to be specified, where one of the listeners involved is a listener specified within a Library itself, using\r\n self.ROBOT_LIBRARY_LISTENER=self","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/3473/timeline","performed_via_github_app":null,"state_reason":null,"score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null,"issues":{"total_count":13,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5070","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/events","html_url":"https://github.com/robotframework/robotframework/issues/5070","id":2165010745,"node_id":"I_kwDOAUSaQ86BC3E5","number":5070,"title":"\"Called when a keyword starts.\" is written in the documentation for the end_keyword method in listener's V3","user":{"login":"petr-kus","id":66471396,"node_id":"MDQ6VXNlcjY2NDcxMzk2","avatar_url":"https://avatars.githubusercontent.com/u/66471396?v=4","gravatar_id":"","url":"https://api.github.com/users/petr-kus","html_url":"https://github.com/petr-kus","followers_url":"https://api.github.com/users/petr-kus/followers","following_url":"https://api.github.com/users/petr-kus/following{/other_user}","gists_url":"https://api.github.com/users/petr-kus/gists{/gist_id}","starred_url":"https://api.github.com/users/petr-kus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petr-kus/subscriptions","organizations_url":"https://api.github.com/users/petr-kus/orgs","repos_url":"https://api.github.com/users/petr-kus/repos","events_url":"https://api.github.com/users/petr-kus/events{/privacy}","received_events_url":"https://api.github.com/users/petr-kus/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":1,"created_at":"2024-03-02T22:47:32Z","updated_at":"2024-03-12T17:13:24Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"\"Called when a keyword starts.\" is written in the documentation for the **end_keyword** method in the listener's V3\r\n\r\nIn (latest - 7.0 version)\r\n[https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface-versions](https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#listener-interface-versions)\r\n\r\nfor listener version 3. Is this tiny 'copy-paste' bug: \r\n![small_bug](https://github.com/robotframework/robotframework/assets/66471396/b94813a0-ae9b-48d3-8b80-4b3a3976f394)\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5070/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5069","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/events","html_url":"https://github.com/robotframework/robotframework/issues/5069","id":2163391370,"node_id":"I_kwDOAUSaQ86A8ruK","number":5069,"title":"Japanese localizaion","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":0,"created_at":"2024-03-01T13:17:04Z","updated_at":"2024-03-01T13:22:41Z","closed_at":"2024-03-01T13:22:41Z","author_association":"MEMBER","active_lock_reason":null,"body":"We got PR #5064 by @5003 about adding Japanese translations. This issue exists to get the enhancement listed in the release notes.\r\n\r\nAlthough we in general don't add enhancements in bug fix releases, I believe adding localizations is fine. I'll thus merge #5064 now and it will be part of the forthcoming RF 7.0.1.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5069/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5063","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/events","html_url":"https://github.com/robotframework/robotframework/issues/5063","id":2151459306,"node_id":"I_kwDOAUSaQ86APKnq","number":5063,"title":"Robot Framework does not run in Pyodide >= 0.23","user":{"login":"manykarim","id":61293164,"node_id":"MDQ6VXNlcjYxMjkzMTY0","avatar_url":"https://avatars.githubusercontent.com/u/61293164?v=4","gravatar_id":"","url":"https://api.github.com/users/manykarim","html_url":"https://github.com/manykarim","followers_url":"https://api.github.com/users/manykarim/followers","following_url":"https://api.github.com/users/manykarim/following{/other_user}","gists_url":"https://api.github.com/users/manykarim/gists{/gist_id}","starred_url":"https://api.github.com/users/manykarim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manykarim/subscriptions","organizations_url":"https://api.github.com/users/manykarim/orgs","repos_url":"https://api.github.com/users/manykarim/repos","events_url":"https://api.github.com/users/manykarim/events{/privacy}","received_events_url":"https://api.github.com/users/manykarim/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2024-02-23T16:54:17Z","updated_at":"2024-02-25T23:05:57Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"As described by @Snooz82 in Slack:\r\n\r\n> Pyodide 0.23 and newer runs Python 3.11.2 which officially supports WebAssembly as a [PEP11 Tier 3](https://peps.python.org/pep-0011/#tier-3) platform. [#3252](https://github.com/pyodide/pyodide/pull/3252), [#3614](https://github.com/pyodide/pyodide/pull/3614)\r\n> \r\n> That causes incompatibility to Robot Framework… :sob:\r\n> RF uses setitimer and this seems not be included anymore, because it never worked on JavaScript…\r\n> That means we can not update to Pyodide 0.23.0 from March 30 2023…\r\n> current Version is 0.25.0\r\n> \r\n> I updated it on the code playground now from 18.1 to 22.1 which caused RF 3.1 to die, due to missing python 3.10 support.\r\n> We could refactor the code so, that depending on the selected Robot Version we do use a different Pyodide Version.\r\n> And in the next Release of Robot Framework, we could actively check if we can support running on newest Pyodide version.\r\n> Maybe that mean, that some timer signals are not working, but i think that would be ok.\r\n> Pekka: if you think there is a possibility to patch robot/running/timeouts/posix.py so that RF could still live without it, this would be an option too.\r\n\r\nWhen I tried Robot Framework in a Jupyter Lite Notebook using Pyodide, I received the error below:\r\n\r\n`ImportError: cannot import name 'setitimer' from 'signal' (/lib/python311.zip/signal.py)`\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5063/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5051","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/events","html_url":"https://github.com/robotframework/robotframework/issues/5051","id":2132987226,"node_id":"I_kwDOAUSaQ85_Is1a","number":5051,"title":"Going through unexecuted keyword has unnecessary overhead if keywords are not found","user":{"login":"jeremy-of-laurel","id":65317440,"node_id":"MDQ6VXNlcjY1MzE3NDQw","avatar_url":"https://avatars.githubusercontent.com/u/65317440?v=4","gravatar_id":"","url":"https://api.github.com/users/jeremy-of-laurel","html_url":"https://github.com/jeremy-of-laurel","followers_url":"https://api.github.com/users/jeremy-of-laurel/followers","following_url":"https://api.github.com/users/jeremy-of-laurel/following{/other_user}","gists_url":"https://api.github.com/users/jeremy-of-laurel/gists{/gist_id}","starred_url":"https://api.github.com/users/jeremy-of-laurel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeremy-of-laurel/subscriptions","organizations_url":"https://api.github.com/users/jeremy-of-laurel/orgs","repos_url":"https://api.github.com/users/jeremy-of-laurel/repos","events_url":"https://api.github.com/users/jeremy-of-laurel/events{/privacy}","received_events_url":"https://api.github.com/users/jeremy-of-laurel/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":1,"created_at":"2024-02-13T19:20:05Z","updated_at":"2024-02-25T21:40:59Z","closed_at":"2024-02-25T21:40:00Z","author_association":"NONE","active_lock_reason":null,"body":"In an initial effort to make my testing repo compatible with both SeleniumLibrary and Browser, I added some conditional logic to run specific keywords based on the library chosen at test execution. More specifically, I used a global variable ${AUTOMATION}, declared in an argument file, which determines the library used here.\r\n\r\nBasic example:\r\n```\r\nIF '${AUTOMATION}' == 'SeleniumLibrary'\r\n SeleniumLibrary.Keyword_1\r\n SeleniumLibrary.Keyword_2\r\n SeleniumLibrary.Keyword_3\r\nELSE IF '${AUTOMATION}' == 'Browser'\r\n Browser.Keyword_1\r\n Browser.Keyword_2\r\n Browser.Keyword_3\r\nEND\r\n```\r\nInitial results with a converted test showed a degrade in performance. If SeleniumLibrary is used, the Browser keywords are not ran, but RF appears to hang on the unmet 'ELSE IF' condition for several seconds in this example:\r\n![rf7-0_slow_elseif](https://github.com/robotframework/robotframework/assets/65317440/52e024a9-c060-43af-8cc3-cf5836017491)\r\n\r\nAfter some discussion in Slack, I believe it's been confirmed that the root cause is due to the Browser library not being imported, which is potentially causing some overhead on the RF side. When Browser library is not imported, I get the slowness, but if I import Browser, that slowness is eliminated and I get a much more expected result:\r\n![rf7-0_good_result](https://github.com/robotframework/robotframework/assets/65317440/c9830f14-b875-4c9e-a32e-b4dc4c2d9e3a)\r\n\r\nReproducible in both RF 6.1.1 and RF 7.0.\r\nPython 3.10.12\r\nUbuntu 22.04.3\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5051/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5039","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/events","html_url":"https://github.com/robotframework/robotframework/issues/5039","id":2104092696,"node_id":"I_kwDOAUSaQ859aegY","number":5039,"title":"Use better theme with API docs at Read The Docs","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2024-01-28T10:29:39Z","updated_at":"2024-02-07T11:04:21Z","closed_at":"2024-02-07T11:04:21Z","author_association":"MEMBER","active_lock_reason":null,"body":"Robot API docs are, at least currently, hosted at https://robot-framework.readthedocs.io/. The default theme used there has changed so that the navigation bar on left doesn't show sub modules as earlier. Compare, for example, these:\r\nhttps://robot-framework.readthedocs.io/en/v6.1.1/autodoc/robot.api.html\r\nhttps://robot-framework.readthedocs.io/en/v7.0/autodoc/robot.api.html\r\n\r\nWe already had #5034 about changing the theme to the one that was used earlier, but it had some problem and [building API docs failed](https://readthedocs.org/projects/robot-framework/builds/23257790/).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5039/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5035","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/events","html_url":"https://github.com/robotframework/robotframework/issues/5035","id":2101128355,"node_id":"I_kwDOAUSaQ859PKyj","number":5035,"title":"Unit test fails under Python 3.13","user":{"login":"fedepell","id":19709142,"node_id":"MDQ6VXNlcjE5NzA5MTQy","avatar_url":"https://avatars.githubusercontent.com/u/19709142?v=4","gravatar_id":"","url":"https://api.github.com/users/fedepell","html_url":"https://github.com/fedepell","followers_url":"https://api.github.com/users/fedepell/followers","following_url":"https://api.github.com/users/fedepell/following{/other_user}","gists_url":"https://api.github.com/users/fedepell/gists{/gist_id}","starred_url":"https://api.github.com/users/fedepell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedepell/subscriptions","organizations_url":"https://api.github.com/users/fedepell/orgs","repos_url":"https://api.github.com/users/fedepell/repos","events_url":"https://api.github.com/users/fedepell/events{/privacy}","received_events_url":"https://api.github.com/users/fedepell/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":1,"created_at":"2024-01-25T20:36:06Z","updated_at":"2024-01-28T10:02:56Z","closed_at":"2024-01-28T10:02:56Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"In Fedora we have RobotFramework tests running for upcoming Fedora 41 using Python 3.13.03 in a side tag.\r\nWhile running the unit tests (version 7.0) I have a new failure in utils:\r\n```\r\nFAIL: test_remove_entries_with_lambda_and_multiple_entries\r\n(test_error.TestRemoveRobotEntriesFromTraceback.test_remove_entries_with_lambda_and_multiple_entries)\r\n----------------------------------------------------------------------\r\n======================================================================\r\nFAIL: test_remove_entries_with_lambda_and_multiple_entries (test_error.TestRemoveRobotEntriesFromTraceback.test_remove_entries_with_lambda_and_multiple_entries)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 107, in test_remove_entries_with_lambda_and_multiple_entries\r\n self._verify_traceback(r'''\r\n ~~~~~~~~~~~~~~~~~~~~~~^^^^^\r\n Traceback \\(most recent call last\\):\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n ...<3 lines>...\r\n 1/0\r\n ^^^\r\n '''.strip(), assert_raises, AssertionError, raising_lambda)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 133, in _verify_traceback\r\n raise AssertionError('\\nExpected:\\n%s\\n\\nActual:\\n%s' % (expected, tb))\r\nAssertionError: \r\nExpected:\r\nTraceback \\(most recent call last\\):\r\n File \".*\", line \\d+, in \r\n raising_lambda = lambda: raises\\(\\)\r\n File \".*\", line \\d+, in raises\r\n 1/0\r\n\r\nActual:\r\nTraceback (most recent call last):\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 106, in \r\n raising_lambda = lambda: raises()\r\n ~~~~~~^^\r\n File \"/builddir/build/BUILD/robotframework-7.0/utest/utils/test_error.py\", line 105, in raises\r\n 1/0\r\n ~^~\r\nZeroDivisionError: division by zero\r\n\r\n----------------------------------------------------------------------\r\nRan 635 tests in 0.577s\r\n\r\nFAILED (failures=1)\r\n\r\n```\r\n\r\nLooking at the output and playing a bit around the solution to me looks like changing the test filter (line in test_error.py) from:\r\n```\r\n # Remove lines indicating error location with `^^^^` used by Python 3.11+.\r\n tb = '\\n'.join(line for line in tb.splitlines() if line.strip('^ '))\r\n```\r\nTo:\r\n```\r\n # Remove lines indicating error location with `^^^^` used by Python 3.11+ and `~~~~^` variants in Python 3.13+.\r\n tb = '\\n'.join(line for line in tb.splitlines() if line.strip('^~ '))\r\n```\r\nWhich filters also the error indicators with `~` that seem to be new.\r\n\r\nThis makes the test pass, I hope/believe without breaking in previous versions.\r\n\r\nIf the proposal makes sense I can of course open a MR!\r\n\r\nThanks!\r\nF.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5035/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5032","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/events","html_url":"https://github.com/robotframework/robotframework/issues/5032","id":2093182576,"node_id":"I_kwDOAUSaQ858w25w","number":5032,"title":"Collections: No default value shown in documentation for `Get/Pop From Dictionary`","user":{"login":"A1K2V3","id":140275173,"node_id":"U_kgDOCFxt5Q","avatar_url":"https://avatars.githubusercontent.com/u/140275173?v=4","gravatar_id":"","url":"https://api.github.com/users/A1K2V3","html_url":"https://github.com/A1K2V3","followers_url":"https://api.github.com/users/A1K2V3/followers","following_url":"https://api.github.com/users/A1K2V3/following{/other_user}","gists_url":"https://api.github.com/users/A1K2V3/gists{/gist_id}","starred_url":"https://api.github.com/users/A1K2V3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/A1K2V3/subscriptions","organizations_url":"https://api.github.com/users/A1K2V3/orgs","repos_url":"https://api.github.com/users/A1K2V3/repos","events_url":"https://api.github.com/users/A1K2V3/events{/privacy}","received_events_url":"https://api.github.com/users/A1K2V3/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":3,"created_at":"2024-01-22T06:27:46Z","updated_at":"2024-01-31T15:19:06Z","closed_at":"2024-01-31T15:19:05Z","author_association":"NONE","active_lock_reason":null,"body":"When Checking the Documentation of keywords which uses `NOT_SET` as default , It shows \"mandatory argument missing\" which is wrong.\r\nThough the functionality of the keyword is working fine.\r\n \r\nhttps://robotframework.slack.com/archives/C3C28F9DF/p1705692610282559\r\n\r\n![image](https://github.com/robotframework/robotframework/assets/140275173/2732bbb7-52e6-45ac-8815-d615d42a0984)\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5032/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5031","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/events","html_url":"https://github.com/robotframework/robotframework/issues/5031","id":2092078748,"node_id":"I_kwDOAUSaQ858spac","number":5031,"title":"RF7 regression: Arguments passed to BuildIn.run_keyword are expanded under specific conditions","user":{"login":"robinmackaij","id":45491813,"node_id":"MDQ6VXNlcjQ1NDkxODEz","avatar_url":"https://avatars.githubusercontent.com/u/45491813?v=4","gravatar_id":"","url":"https://api.github.com/users/robinmackaij","html_url":"https://github.com/robinmackaij","followers_url":"https://api.github.com/users/robinmackaij/followers","following_url":"https://api.github.com/users/robinmackaij/following{/other_user}","gists_url":"https://api.github.com/users/robinmackaij/gists{/gist_id}","starred_url":"https://api.github.com/users/robinmackaij/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robinmackaij/subscriptions","organizations_url":"https://api.github.com/users/robinmackaij/orgs","repos_url":"https://api.github.com/users/robinmackaij/repos","events_url":"https://api.github.com/users/robinmackaij/events{/privacy}","received_events_url":"https://api.github.com/users/robinmackaij/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2024-01-20T14:42:26Z","updated_at":"2024-01-31T13:54:36Z","closed_at":null,"author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"When using `BuildIn.run_keyword` the (positional) arguments that follow the target keyword name should be passed to the keyword \"as is\".\r\n\r\nA change in RF7 changed this behavior in a specific situation; if there are (exactly) 2 positional arguments following the keyword name and the first of those arguments is iterable and the second a mapping, the arguments are no longer passed \"as is\" but they are expanded before being passed to the target keyword.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5031/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5023","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/events","html_url":"https://github.com/robotframework/robotframework/issues/5023","id":2083147320,"node_id":"I_kwDOAUSaQ858Kk44","number":5023,"title":"Behavior when `--rerunfailed` and `--include/--exclude/--test` are used together has changed in RF 7.0","user":{"login":"kjkaizens","id":44444882,"node_id":"MDQ6VXNlcjQ0NDQ0ODgy","avatar_url":"https://avatars.githubusercontent.com/u/44444882?v=4","gravatar_id":"","url":"https://api.github.com/users/kjkaizens","html_url":"https://github.com/kjkaizens","followers_url":"https://api.github.com/users/kjkaizens/followers","following_url":"https://api.github.com/users/kjkaizens/following{/other_user}","gists_url":"https://api.github.com/users/kjkaizens/gists{/gist_id}","starred_url":"https://api.github.com/users/kjkaizens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kjkaizens/subscriptions","organizations_url":"https://api.github.com/users/kjkaizens/orgs","repos_url":"https://api.github.com/users/kjkaizens/repos","events_url":"https://api.github.com/users/kjkaizens/events{/privacy}","received_events_url":"https://api.github.com/users/kjkaizens/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":14,"created_at":"2024-01-16T07:06:39Z","updated_at":"2024-03-12T17:30:12Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"\r\n![Uploading Screenshot 2024-01-16 at 9.08.06.png…]()\r\n`robot --rerunfailed output.xml` until robot version 6 picks up tests that had been failed in previous run. However, robot 7 just reruns all suite, both failed and passed tests","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5023/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5017","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/events","html_url":"https://github.com/robotframework/robotframework/issues/5017","id":2080728690,"node_id":"I_kwDOAUSaQ858BWZy","number":5017,"title":"`start/end_body_item` listener v3 methods missing from documentation in User Guide","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":0,"created_at":"2024-01-14T13:26:59Z","updated_at":"2024-01-14T13:26:59Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"These methods are called with keywords and control structures if more specific methods aren't defined. Implementing only them is the same as implementing `start/end_keyword` with listener v2. The differences how control structures are handled in different listener versions should also be documented better.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5017/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5012","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/events","html_url":"https://github.com/robotframework/robotframework/issues/5012","id":2078711897,"node_id":"I_kwDOAUSaQ8575qBZ","number":5012,"title":"`--legacy-output` does not work with Rebot when combining, merging or filtering results","user":{"login":"emakaay","id":72747481,"node_id":"MDQ6VXNlcjcyNzQ3NDgx","avatar_url":"https://avatars.githubusercontent.com/u/72747481?v=4","gravatar_id":"","url":"https://api.github.com/users/emakaay","html_url":"https://github.com/emakaay","followers_url":"https://api.github.com/users/emakaay/followers","following_url":"https://api.github.com/users/emakaay/following{/other_user}","gists_url":"https://api.github.com/users/emakaay/gists{/gist_id}","starred_url":"https://api.github.com/users/emakaay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emakaay/subscriptions","organizations_url":"https://api.github.com/users/emakaay/orgs","repos_url":"https://api.github.com/users/emakaay/repos","events_url":"https://api.github.com/users/emakaay/events{/privacy}","received_events_url":"https://api.github.com/users/emakaay/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":5,"created_at":"2024-01-12T12:10:44Z","updated_at":"2024-02-20T18:04:23Z","closed_at":"2024-01-31T15:19:06Z","author_association":"NONE","active_lock_reason":null,"body":"Because robot scripts are not always stable, due to infrastructural problems, we use a script to perform failing tests with a maximum of 3 times. Until tests are run ok... or eventually fail.\r\n\r\nThis will generate several output.xml which are combined into a single output.xml (report.html and log.html) using rebot.\r\nUntil Robotframework v6.1.1 this was working fine. I started to use version 7.0 and used the option --legacyoutput with both robot and rebot.\r\n\r\nWhen I combine MORE THEN one output,xl, rebot will fail:\r\n`\r\nrebot --legacyoutput --merge --outputdir --output output.xml firstoutput.xml secondoutput.xml\r\n\r\n[ ERROR ] Unexpected error: AttributeError: 'NoneType' object has no attribute 'isoformat'\r\nTraceback (most recent call last):\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\utils\\application.py\", line 81, in _execute\r\n rc = self.main(arguments, **options)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\rebot.py\", line 340, in main\r\n rc = ResultWriter(*datasources).write_results(settings)\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\reporting\\resultwriter.py\", line 57, in write_results\r\n self._write_output(results.result, settings.output, settings.legacy_output)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\reporting\\resultwriter.py\", line 71, in _write_output\r\n self._write('Output', result.save, path, legacy_output)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\reporting\\resultwriter.py\", line 84, in _write\r\n writer(path, *args)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\result\\executionresult.py\", line 154, in save\r\n self.visit(writer(target, rpa=self.rpa))\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\result\\executionresult.py\", line 168, in visit\r\n visitor.visit_result(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\result\\visitor.py\", line 44, in visit_result\r\n result.suite.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 131, in visit_suite\r\n suite.suites.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\itemlist.py\", line 102, in visit\r\n item.visit(visitor) # type: ignore\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 131, in visit_suite\r\n suite.suites.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\itemlist.py\", line 102, in visit\r\n item.visit(visitor) # type: ignore\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 131, in visit_suite\r\n suite.suites.visit(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\itemlist.py\", line 102, in visit\r\n item.visit(visitor) # type: ignore\r\n ^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\testsuite.py\", line 420, in visit\r\n visitor.visit_suite(self)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\model\\visitor.py\", line 135, in visit_suite\r\n self.end_suite(suite)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\output\\xmllogger.py\", line 375, in end_suite\r\n self._write_status(suite)\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\output\\xmllogger.py\", line 444, in _write_status\r\n 'starttime': self._datetime_to_timestamp(item.start_time),\r\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n File \"C:\\Python311\\Lib\\site-packages\\robot\\output\\xmllogger.py\", line 432, in _datetime_to_timestamp\r\n return dt.isoformat(' ', timespec='milliseconds').replace('-', '')\r\n ^^^^^^^^^^^^\r\nAttributeError: 'NoneType' object has no attribute 'isoformat'\r\n`\r\n\r\nIs it something I'm doing wrong ? I found it confusing that the documentation & release notes mention the option \"--legacy-output\", but both robot.exe --help and rebot --help, only have the option \"--legacyoutput\" (without -). ","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5012/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4993","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/events","html_url":"https://github.com/robotframework/robotframework/issues/4993","id":2056488291,"node_id":"I_kwDOAUSaQ856k4Vj","number":4993,"title":"Crash when in Dialogs window is closed","user":{"login":"xRowe","id":33739292,"node_id":"MDQ6VXNlcjMzNzM5Mjky","avatar_url":"https://avatars.githubusercontent.com/u/33739292?v=4","gravatar_id":"","url":"https://api.github.com/users/xRowe","html_url":"https://github.com/xRowe","followers_url":"https://api.github.com/users/xRowe/followers","following_url":"https://api.github.com/users/xRowe/following{/other_user}","gists_url":"https://api.github.com/users/xRowe/gists{/gist_id}","starred_url":"https://api.github.com/users/xRowe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xRowe/subscriptions","organizations_url":"https://api.github.com/users/xRowe/orgs","repos_url":"https://api.github.com/users/xRowe/repos","events_url":"https://api.github.com/users/xRowe/events{/privacy}","received_events_url":"https://api.github.com/users/xRowe/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":5,"created_at":"2023-12-26T15:04:03Z","updated_at":"2024-02-04T14:54:12Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"body":"Dear Developer\r\n\r\nI am setting up a auto/semi-auto test using the RobotFramework, installed by pip along with RIDE\r\n\r\n```\r\nrobot --version\r\nRobot Framework 6.1.1 (Python 3.11.5 on win32)\r\n```\r\n\r\nBut now I am stuck at below warning when I selected \"FAIL\" in Dialogs.Execute Manual Step.\r\n`Tcl_AsyncDelete: async handler deleted by the wrong thread`\r\n\r\n100% Reproduce in specific step.\r\n\"initTransport\" will setup the connection and create/start multi-threads to send/receive cyclic messages. \r\nWhen the press any button to close Dialog windows, it will raise the Tcl_AsyncDelete Error\r\n```\r\nTest_Dialogs\r\n initTransport\r\n Dialogs.Execute Manual Step Check The LIGHT is ON LIGHT OFF\r\n```\r\n\r\nBut 0% reproduce in below steps\r\n```\r\nTest_Dialogs\r\n Dialogs.Execute Manual Step Check The LIGHT is ON LIGHT OFF\r\n```\r\nor\r\n```\r\nTest_Dialogs\r\n ${answer} Dialogs.get value from user Are you OK?\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4993/timeline","performed_via_github_app":null,"state_reason":null,"score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4943","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/events","html_url":"https://github.com/robotframework/robotframework/issues/4943","id":1990505164,"node_id":"I_kwDOAUSaQ852pLLM","number":4943,"title":"Webpage: Add plausible.io back to Library docs and UserGuide","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"open","locked":false,"assignee":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"assignees":[{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/72","html_url":"https://github.com/robotframework/robotframework/milestone/72","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/72/labels","id":10411673,"node_id":"MI_kwDOAUSaQ84Ant6Z","number":72,"title":"v7.0.1","description":"","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2024-01-12T13:38:46Z","updated_at":"2024-03-12T17:30:12Z","due_on":"2024-03-05T08:00:00Z","closed_at":null},"comments":2,"created_at":"2023-11-13T11:57:05Z","updated_at":"2024-02-06T14:56:35Z","closed_at":null,"author_association":"MEMBER","active_lock_reason":null,"body":"plausible.io is our technique to gather some anonymous visitor numbers on our pages.\r\n\r\nWe have had this in BuiltIn and other Libraries.\r\nWe have to implement this into \"Release Pipeline\" so that with every release it is still in.\r\n\r\nI can do this later before RF 7.0 release.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4943/timeline","performed_via_github_app":null,"state_reason":null,"score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z","issues":{"total_count":94,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5005","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/events","html_url":"https://github.com/robotframework/robotframework/issues/5005","id":2067746736,"node_id":"I_kwDOAUSaQ857P0-w","number":5005,"title":"`Log Variables` should not consume iterables","user":{"login":"kstine","id":9166025,"node_id":"MDQ6VXNlcjkxNjYwMjU=","avatar_url":"https://avatars.githubusercontent.com/u/9166025?v=4","gravatar_id":"","url":"https://api.github.com/users/kstine","html_url":"https://github.com/kstine","followers_url":"https://api.github.com/users/kstine/followers","following_url":"https://api.github.com/users/kstine/following{/other_user}","gists_url":"https://api.github.com/users/kstine/gists{/gist_id}","starred_url":"https://api.github.com/users/kstine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kstine/subscriptions","organizations_url":"https://api.github.com/users/kstine/orgs","repos_url":"https://api.github.com/users/kstine/repos","events_url":"https://api.github.com/users/kstine/events{/privacy}","received_events_url":"https://api.github.com/users/kstine/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065702,"node_id":"MDU6TGFiZWw5MTEwNjU3MDI=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%203","name":"rc 3","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2024-01-05T17:27:18Z","updated_at":"2024-01-08T09:36:41Z","closed_at":"2024-01-06T23:42:26Z","author_association":"NONE","active_lock_reason":null,"body":"Found in Robot Framework 6.1.1 and 7.0rc2\r\nPython 3.11\r\n\r\nGiven this example:\r\n```\r\nCycle Test\r\n ${TEST_LIST} Create List beginning 1 2 3 4 end\r\n ${CYCLE_TEST} Evaluate itertools.cycle($TEST_LIST)\r\n Set Test Variable ${CYCLE_TEST}\r\n Log Variables\r\n```\r\nWhen executing this case\r\nThen Robot Framework will pause for a while and eventually throw a Memory Error.\r\n\r\nThis might be an uncommon situation, but would be nice to handle iterable objects.\r\nMy current workaround is to avoid assigning the itertools.cycle() to a RF variable and handle everything within a library.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5005/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5002","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/events","html_url":"https://github.com/robotframework/robotframework/issues/5002","id":2066774133,"node_id":"I_kwDOAUSaQ857MHh1","number":5002,"title":"\"Parsing type failed\"/\"Type name missing\" error message appears on the wrong argument","user":{"login":"DetachHead","id":57028336,"node_id":"MDQ6VXNlcjU3MDI4MzM2","avatar_url":"https://avatars.githubusercontent.com/u/57028336?v=4","gravatar_id":"","url":"https://api.github.com/users/DetachHead","html_url":"https://github.com/DetachHead","followers_url":"https://api.github.com/users/DetachHead/followers","following_url":"https://api.github.com/users/DetachHead/following{/other_user}","gists_url":"https://api.github.com/users/DetachHead/gists{/gist_id}","starred_url":"https://api.github.com/users/DetachHead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DetachHead/subscriptions","organizations_url":"https://api.github.com/users/DetachHead/orgs","repos_url":"https://api.github.com/users/DetachHead/repos","events_url":"https://api.github.com/users/DetachHead/events{/privacy}","received_events_url":"https://api.github.com/users/DetachHead/received_events","type":"User","site_admin":false},"labels":[{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2024-01-05T05:57:17Z","updated_at":"2024-01-06T23:42:25Z","closed_at":"2024-01-06T23:42:25Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"```py\r\n# a.py\r\nfrom __future__ import annotations\r\n\r\nfrom typing import Callable\r\n\r\ndef foo(a: Callable[[], None], b: asdf) -> None: ...\r\n```\r\n```\r\n[ ERROR ] Error in library 'a': Adding keyword 'foo' failed: Parsing type 'Callable[[], None]' failed: Error at index 9: Type name missing.\r\n```\r\n\r\nremoving the invalid `asdf` type annotation fixes the issue, so the error should be complaining about the `b` argument instead of the `a` argument","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5002/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5000","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/events","html_url":"https://github.com/robotframework/robotframework/issues/5000","id":2065729389,"node_id":"I_kwDOAUSaQ857IIdt","number":5000,"title":"Nicer API for setting keyword call arguments programmatically","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":230194665,"node_id":"MDU6TGFiZWwyMzAxOTQ2NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%202","name":"rc 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2024-01-04T14:11:15Z","updated_at":"2024-01-04T14:21:23Z","closed_at":"2024-01-04T14:21:22Z","author_association":"MEMBER","active_lock_reason":null,"body":"`robot.running.Keyword.args` contains arguments used in a keyword call as a list. Arguments originating from normal Robot Framework data are always strings and they are in the exact same format as in the data. This means that arguments can contain variables and escape characters, and that named arguments are represented using the `name=value` syntax.\r\n\r\nIf arguments are modified programmatically, it is possible to use also other objects than strings. This doesn't, however, work with named arguments because in the `name=value` syntax the value is always a string. Automatic argument conversion handles conversion in common cases, but especially with more complex objects being able to use them directly would be convenient. Another pretty common and unexpected annoyance is that arguments that are strings need to follow the same escaping rules as normal data. Most importantly, `\\` needs to be doubled and, because it's an escape character also in Python, we need to use data like `'c:\\\\\\\\temp\\\\\\\\new'` or `r'c:\\\\temp\\\\new'`.\r\n\r\nI propose we enhance setting arguments as follows:\r\n\r\n1. Support specifying named arguments as two-item tuples like `('name', 'value')` to allow using also non-strings as values. To avoid ambiguity with arguments possibly containing a literal `=`, we should also support positional arguments as one-item tuples like `('value',)`. In this usage we should still resolve variables, which requires users handling escaping themselves.\r\n\r\n Example: `[('positional',), ('name', 'value'), ('path', r'c:\\\\temp\\\\new')]`\r\n\r\n We support tuples like this also with the dynamic library API with arguments having default values. The approach thus has precedence and it has worked well.\r\n\r\n2. Support giving arguments directly as a list of positional arguments and a dictionary of named arguments. In this usage we should use arguments directly without handling escapes. That then means that variables aren't resolved either, but automatic argument conversion and validation will still be done.\r\n\r\n Example: `[['positional'], {'name': 'value', 'path': 'c:\\\\temp\\\\new'}]`\r\n\r\nThe above is pretty easy to implement. During execution we just need to handle different ways arguments can be specified when resolving arguments. No code changes are needed with `robot.running.Keyword`, but this new functionality needs to be documented and typing needs to be set accordingly. We also need to enhance `robot.result.Keyword`. With it it's better to always store arguments as strings, which means that we need to convert other arguments when they are set.\r\n\r\nIt's a bit questionable is this a good idea this late in RF 7.0 release cycle, we already have a release candidate out, but this makes some of the usages of the new `start/end_keyword` listener v3 methods (#3296) so much more convenient that we decided to still implement this. Changes are pretty small and ought to be safe, but big enough to warrant a second release candidate. ","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/5000/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4999","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/events","html_url":"https://github.com/robotframework/robotframework/issues/4999","id":2065674668,"node_id":"I_kwDOAUSaQ857H7Gs","number":4999,"title":"XML Library: Double namespace during Element To String","user":{"login":"CosmaCLI","id":114875239,"node_id":"U_kgDOBtjbZw","avatar_url":"https://avatars.githubusercontent.com/u/114875239?v=4","gravatar_id":"","url":"https://api.github.com/users/CosmaCLI","html_url":"https://github.com/CosmaCLI","followers_url":"https://api.github.com/users/CosmaCLI/followers","following_url":"https://api.github.com/users/CosmaCLI/following{/other_user}","gists_url":"https://api.github.com/users/CosmaCLI/gists{/gist_id}","starred_url":"https://api.github.com/users/CosmaCLI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CosmaCLI/subscriptions","organizations_url":"https://api.github.com/users/CosmaCLI/orgs","repos_url":"https://api.github.com/users/CosmaCLI/repos","events_url":"https://api.github.com/users/CosmaCLI/events{/privacy}","received_events_url":"https://api.github.com/users/CosmaCLI/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":911065702,"node_id":"MDU6TGFiZWw5MTEwNjU3MDI=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%203","name":"rc 3","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":3,"created_at":"2024-01-04T13:35:58Z","updated_at":"2024-02-13T07:35:17Z","closed_at":"2024-01-07T21:10:07Z","author_association":"NONE","active_lock_reason":null,"body":"Hi everyone!\r\n\r\nI'm using the XML Lib with lxml\r\n```\r\nLibrary XML use_lxml=True\r\n```\r\nIn my Teststep I'm loading a file and convert it to a XML:\r\n\r\n```\r\n ${my_config_string}= OperatingSystem.Get File\r\n ... path_to_file\r\n ... encoding=UTF-8\r\n ${my_config_xml}= parse xml ${my_config_string}\r\n```\r\nand its working fine - the XML looks like expected.\r\n\r\n```\r\n\r\n \r\n \r\n.... \r\n```\r\nBut as soon as I use the Element To String Keyword the namespaces are doubled.\r\n```\r\n ${my_config_candidate}= Element To String\r\n ... ${my_config_xml}\r\n ... xpath=.\r\n ... encoding=UTF-8\r\n```\r\n\r\nResult:\r\n```\r\n\r\n \r\n \r\n```\r\n\r\nIt's not happening if I load the Library without lxml \r\n\r\nThank you very much\r\nBR\r\nChristina\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4999/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4997","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/events","html_url":"https://github.com/robotframework/robotframework/issues/4997","id":2061617852,"node_id":"I_kwDOAUSaQ8564cq8","number":4997,"title":"Issue with libdoc HTML Generation: Type Errors in libdoc Output (7.0rc1)","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2024-01-01T15:18:43Z","updated_at":"2024-01-02T17:52:30Z","closed_at":"2024-01-02T17:52:29Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Current Behavior:\r\nWhen attempting to generate a libdoc HTML file using the latest 7.0rc1, the resulting file does not display properly, just a white background is shown. This seems to be caused by 'type errors' present in the generated HTML.\r\n\r\nTo Reproduce:\r\n\r\nExecute the command `libdoc BuiltIn BuiltIn.html` in the command line using the latest 7.0rc1.\r\nOpen the generated HTML file in any browser.\r\n\r\nExpected Behavior:\r\nThe generated HTML file should display without any issues.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4997/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4995","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/events","html_url":"https://github.com/robotframework/robotframework/issues/4995","id":2060790707,"node_id":"I_kwDOAUSaQ8561Suz","number":4995,"title":"Empty variable name in VAR crashes execution","user":{"login":"bhirsz","id":8532066,"node_id":"MDQ6VXNlcjg1MzIwNjY=","avatar_url":"https://avatars.githubusercontent.com/u/8532066?v=4","gravatar_id":"","url":"https://api.github.com/users/bhirsz","html_url":"https://github.com/bhirsz","followers_url":"https://api.github.com/users/bhirsz/followers","following_url":"https://api.github.com/users/bhirsz/following{/other_user}","gists_url":"https://api.github.com/users/bhirsz/gists{/gist_id}","starred_url":"https://api.github.com/users/bhirsz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bhirsz/subscriptions","organizations_url":"https://api.github.com/users/bhirsz/orgs","repos_url":"https://api.github.com/users/bhirsz/repos","events_url":"https://api.github.com/users/bhirsz/events{/privacy}","received_events_url":"https://api.github.com/users/bhirsz/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-30T16:22:08Z","updated_at":"2024-01-02T23:48:53Z","closed_at":"2024-01-02T23:48:45Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Following example:\r\n\r\n```\r\n*** Test Cases ***\r\nTest\r\n VAR\r\n ...\r\n\r\n```\r\n\r\nwill stop robot execution and throw:\r\n\r\n```\r\noptions = ['scope', 'separator'] if name.value[0] == '$' else ['scope']\r\nE IndexError: string index out of range\r\n```\r\n\r\ninstead of invalid variable name error (in case variable name is in the same line, ie just ``VAR``","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4995/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4992","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/events","html_url":"https://github.com/robotframework/robotframework/issues/4992","id":2053962454,"node_id":"I_kwDOAUSaQ856bPrW","number":4992,"title":"${OUTPUT DIR} returned as PosixPath type","user":{"login":"oboehmer","id":22439451,"node_id":"MDQ6VXNlcjIyNDM5NDUx","avatar_url":"https://avatars.githubusercontent.com/u/22439451?v=4","gravatar_id":"","url":"https://api.github.com/users/oboehmer","html_url":"https://github.com/oboehmer","followers_url":"https://api.github.com/users/oboehmer/followers","following_url":"https://api.github.com/users/oboehmer/following{/other_user}","gists_url":"https://api.github.com/users/oboehmer/gists{/gist_id}","starred_url":"https://api.github.com/users/oboehmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oboehmer/subscriptions","organizations_url":"https://api.github.com/users/oboehmer/orgs","repos_url":"https://api.github.com/users/oboehmer/repos","events_url":"https://api.github.com/users/oboehmer/events{/privacy}","received_events_url":"https://api.github.com/users/oboehmer/received_events","type":"User","site_admin":false},"labels":[{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-22T13:57:21Z","updated_at":"2024-01-02T23:49:08Z","closed_at":"2024-01-02T23:48:45Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"We noticed that RF 7.0rc1 returns ${OUTPUT_DIR} variable as PosixPath, likely a consequence of https://github.com/robotframework/robotframework/issues/4988.\r\n\r\nI feel this is something we should either change (to return the string representation), or clearly document as backward-incompatible change.\r\n\r\n```\r\n(v) $ cat /tmp/o.robot \r\n*** Test Cases ***\r\nTest Outputdir type\r\n ${outputdir}= Get Variable Value ${OUTPUT_DIR}\r\n ${type}= Evaluate str(type($outputdir))\r\n Should be Equal ${type} \r\n\r\n\r\n(v) $ robot /tmp/o.robot \r\n==============================================================================\r\nO \r\n==============================================================================\r\nTest Outputdir type | FAIL |\r\n != \r\n------------------------------------------------------------------------------\r\nO | FAIL |\r\n1 test, 0 passed, 1 failed\r\n==============================================================================\r\n\r\n```\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4992/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4988","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/events","html_url":"https://github.com/robotframework/robotframework/issues/4988","id":2050891329,"node_id":"I_kwDOAUSaQ856Ph5B","number":4988,"title":"Change paths passed to listener v3 methods to `pathlib.Path` instances","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-12-20T16:22:48Z","updated_at":"2023-12-21T00:05:30Z","closed_at":"2023-12-20T16:27:38Z","author_association":"MEMBER","active_lock_reason":null,"body":"Listeners have methods like `output_file` and `log_file` that are called when result files are ready. At the moment they get the path to the file as a string, but I believe with listener v3 methods we should use [pathlib.Path](https://docs.python.org/3/library/pathlib.html) instead. `Path` instances are more convenient to use and we are now enhancing v3 listeners also otherwise.\r\n\r\nThis change is backwards incompatible, but in most cases `str` and `Path` work the same way, so it's unlikely that the change causes big problems. For example, our acceptance tests passed after I changed the type locally and I needed to add special checks to make sure the received path is actually `Path`.\r\n\r\nAlthough the change is pretty safe, with listener v2 it's anyway safer to keep using `str`. We are also otherwise just using base types with them.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4988/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4983","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/events","html_url":"https://github.com/robotframework/robotframework/issues/4983","id":2046451861,"node_id":"I_kwDOAUSaQ855-mCV","number":4983,"title":"Type conversion: Remove support for deprecated `ByteString`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-18T11:25:42Z","updated_at":"2023-12-20T23:39:02Z","closed_at":"2023-12-18T23:18:25Z","author_association":"MEMBER","active_lock_reason":null,"body":"[collections.abc.ByteString](https://docs.python.org/3/library/collections.abc.html#collections.abc.ByteString) that Robot's argument conversion supports has been deprecated in Python 3.12 and will be removed in Python 3.14. This basically makes the current Robot Framework code incompatible with Python 3.14 that's released already in 2025, and also means that there are deprecation warnings with Python 3.12 already now.\r\n\r\n`ByteString` conversion isn't that useful and I believe the best way to handle these problems is to simply not support it. This is how conversion currently works if you use `arg: ByteString`:\r\n\r\n1. If the given argument is an instance `bytes` or `bytearray` (i.e. is already an insteance of `ByteString`), it is passed to the keyword as-is.\r\n2. Otherwise, it is converted to `bytes` the same way as if the keyword would have used `arg: bytes`.\r\n\r\nI don't consider these semantics too useful. I don't see how often you'd like to have a keyword that gets either `bytes` or `bytearray`, when you could use `arg: bytes` or `arg: bytearray` to get one of them. More importantly, if you have such a need, using `arg: bytes | bytearray` works exactly the same way and makes then intention more clear.\r\n\r\nRemoving the support for `ByteString` conversion is obviously a backwards incompatible change, but I doubt there are many users for it, they can easily use `bytes | bytearray` instead, and they anyway need to do that relatively soon when `ByteString` will be gone. I wish we would have done this earlier in RF 7.0 development cycle, but believe doing it still now before the release candidate is fine.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4983/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4982","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/events","html_url":"https://github.com/robotframework/robotframework/issues/4982","id":2046052749,"node_id":"I_kwDOAUSaQ8559EmN","number":4982,"title":"DateTime: Support `datetime.date` as an input format with date related keywords","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-18T08:43:03Z","updated_at":"2023-12-20T23:39:01Z","closed_at":"2023-12-18T11:54:59Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently the library only accepts `datetime.datetime`, strings (timestamps) and numbers (epoch seconds). Supporting also `datetime.date` would be trivial and it would mean users don't need to convert `datetime.date` objects they get to a supported format themselves. Based on a discussion on our Slack, `datetime.date` objects can be produced at least by FakerLibrary.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4982/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4980","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/events","html_url":"https://github.com/robotframework/robotframework/issues/4980","id":2045996180,"node_id":"I_kwDOAUSaQ85582yU","number":4980,"title":"DateTime library uses deprecated `datetime.utcnow()`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-18T08:21:10Z","updated_at":"2023-12-20T23:39:01Z","closed_at":"2023-12-18T11:54:59Z","author_association":"MEMBER","active_lock_reason":null,"body":"[datetime.datetime.utcnow()](https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow) has been deprecated in Python 3.12 and `datetime.datetime.now(datetime.UTC)` should be used instead. That `datetime.UTC` is new in Python 3.11, so we need to use either version or feature detection to avoid using it with earlier Python versions.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4980/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4979","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/events","html_url":"https://github.com/robotframework/robotframework/issues/4979","id":2045440625,"node_id":"I_kwDOAUSaQ8556vJx","number":4979,"title":"Add `robot.result.TestSuite.to/from_xml` methods","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-12-18T00:10:08Z","updated_at":"2023-12-20T23:39:00Z","closed_at":"2023-12-18T00:27:15Z","author_association":"MEMBER","active_lock_reason":null,"body":"The current API we have for working with output.xml files programmatically requires using the `ExecutionResult` factory method. It returns a `Result` object, that contains a `TestSuite` object in its `suite` attribute. The suite can be inspected and also modified, and the `Result` object has a `save` method for saving results back to XML after possible modifications. This is ok for many usages, but having a more convenient API for working with `TestSuite` objects would be nice.\r\n\r\nThe result model gets `to/from_json` methods in RF 7.0 (#4847) and we could add `to/from_xml` to `TestSuite` as well. Similarly as the JSON counterparts, `to_xml` should return the XML by default, but also support writing it to a file. `from_xml` should work both with files and XML strings as well. We have all needed functionality for reading and writing XML available, so implementing these methods is easy. There are some design decision to be made, though:\r\n\r\n1. Should the `` structure returned by `to_xml` be wrapped with `` the same way as in output.xml? I believe it's not a good idea at least by default. The suite anyway wouldn't have anything to write to `` and although `` could be created, it would feel somewhat strange. Returning just the `` is also consistent with what `to_json` returns. Being able to create a full output.xml with something like `full=True` could be convenient, but it can be added later if needed.\r\n2. Should XML returned by `to_xml` contain the XML prolog (i.e. ``)? I believe it's not a good idea at least as the default behavior. It's optional in XML and could get in the way. Probably should be included if we supported something like `full=True`.\r\n3. Should `from_xml` support both \"full\" output.xml files and files containing only ``? I belive both should be supportred. Not supporting normal output.xml files would be *very* inconvenient and not supporting files generated by `to_xml` would be unacceptable. This is probably easiest to implement so that we in general support output.xml with and without ``.\r\n4. What to do if `from_xml` is used with an output.xml containing ``? Options include ignoring them, reporting them or raising an exception. Because `` doesn't really affect the final execution status, I believe we can ignore them as long as it's mentioned in the documentation. Adding something like ` ignore_errors=True` that can be set to `False` could be considered as well, but probably those who are interested in these errors can just use `ExecutionResult`.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4979/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4976","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/events","html_url":"https://github.com/robotframework/robotframework/issues/4976","id":2041565598,"node_id":"I_kwDOAUSaQ855r9Ge","number":4976,"title":"Support string `SELF` (case-insenstive) when library registers itself as listener","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-12-14T12:08:08Z","updated_at":"2023-12-14T23:55:28Z","closed_at":"2023-12-14T13:04:07Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently if a library registers itself to be a listener, it needs to do it like this:\r\n\r\n```python\r\nclass Library:\r\n\r\n def __init__(self):\r\n self.ROBOT_LIBRARY_LISTENER = self\r\n\r\n def start_test(self, data, result):\r\n ...\r\n```\r\n\r\nThis is somewhat annoying and also makes it impossible to configure the listener using the `@library` decorator. We should allow using string `SELF` in this case. It would allow changing the above to this:\r\n```python\r\nclass Library:\r\n ROBOT_LIBRARY_LISTENER = 'SELF'\r\n\r\n def start_test(self, data, result):\r\n ...\r\n```\r\n\r\nIt would also support even more convenient `@library` usage that would automatically make sure listener methods are not registered as keywords:\r\n```python\r\nfrom robot.api.deco import keyword, library\r\n\r\n\r\n@library(listener='self')\r\nclass Library:\r\n\r\n def start_test(self, data, result):\r\n ...\r\n\r\n @keyword\r\n def example(self):\r\n ...\r\n```\r\n\r\nThis is trivial to implement and fits well with other listener enhancements #3296 and #4910 done in RF 7.0.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4976/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4975","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/events","html_url":"https://github.com/robotframework/robotframework/issues/4975","id":2041183531,"node_id":"I_kwDOAUSaQ855qf0r","number":4975,"title":"Support `times` and `x` suffixes with `WHILE` limit to make it more compatible with `Wait Until Keyword Succeeds`","user":{"login":"vnkarthik87","id":11714466,"node_id":"MDQ6VXNlcjExNzE0NDY2","avatar_url":"https://avatars.githubusercontent.com/u/11714466?v=4","gravatar_id":"","url":"https://api.github.com/users/vnkarthik87","html_url":"https://github.com/vnkarthik87","followers_url":"https://api.github.com/users/vnkarthik87/followers","following_url":"https://api.github.com/users/vnkarthik87/following{/other_user}","gists_url":"https://api.github.com/users/vnkarthik87/gists{/gist_id}","starred_url":"https://api.github.com/users/vnkarthik87/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vnkarthik87/subscriptions","organizations_url":"https://api.github.com/users/vnkarthik87/orgs","repos_url":"https://api.github.com/users/vnkarthik87/repos","events_url":"https://api.github.com/users/vnkarthik87/events{/privacy}","received_events_url":"https://api.github.com/users/vnkarthik87/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-12-14T08:21:45Z","updated_at":"2023-12-14T23:55:28Z","closed_at":"2023-12-14T13:04:06Z","author_association":"NONE","active_lock_reason":null,"body":"**Current Behaviour:**\r\nCurrently, WHILE loop have argument 'limit' which handles both 'timeout' and 'number of times loop to iterate'.\r\nIn most of the Robotframework keywords, timeout functionality supports values without suffix (for example, argument value 300 is equivalent to 300 seconds)\r\n\r\nWhen developers use the limit argument for timeout, they forget the suffix (s, sec, min...), as most of the keywords in RobotFramework supports timeout in seconds without suffix. \r\n\r\nFor example, below keywords in Robot Framework supports without suffix, except WHILE loop\r\n```\r\nSleep 300 # Sleeps for 300 seconds\r\nWait Until Keyword Succeeds 300 30 My Keyword args # Retries My Keyword for 300 second, every 30 seconds\r\nWHILE ${status}==${TRUE} limit=300 # Loops 300 times. This is conflicting with rest other keyword timeout argument values.\r\n```\r\n\r\n**Feature Request (Either of Possibility 1 OR Possibility 2):**\r\n\r\n**Possibility 1:**\r\nCan there be a timeout argument in addition to limit argument to support timeout even without suffix. (supports timestring, number or integer)\r\nThis will avoid additional instructions to RobotFramework Developers, that to be careful when providing 'limit' argument to WHILE loop. Below is the feature request example.\r\n\r\nExample:\r\n\r\n```\r\nWHILE ${status}==${TRUE} limit=5 # Loops 5 times\r\nWHILE ${status}==${TRUE} timeout=300 # Loops only for 5 minutes or 300 seconds\r\n```\r\n\r\n_**OR**_\r\n\r\n**Possibility 2:**\r\nCan there be a suffix added to limit, something like 'x' or 'times' as in 'Wait Until Keyword Succeeds'. Same argument name 'limit' should work for both timeout and number of times. 'timeout' argument name not required in this case.\r\n\r\nExample:\r\n\r\n```\r\nWHILE ${status}==${TRUE} limit=5x # Loops 5 times\r\nWHILE ${status}==${TRUE} limit=10 times # Loops 10 times\r\nWHILE ${status}==${TRUE} limit=300 # Timeout after 5 minutes or 300 seconds of looping\r\nWHILE ${status}==${TRUE} limit=2m # Timeout after 2 minutes of looping\r\n```\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4975/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4967","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/events","html_url":"https://github.com/robotframework/robotframework/issues/4967","id":2026489946,"node_id":"I_kwDOAUSaQ854ycha","number":4967,"title":"Variables are not resolved in keyword name in WUKS error message","user":{"login":"adrszad","id":17517440,"node_id":"MDQ6VXNlcjE3NTE3NDQw","avatar_url":"https://avatars.githubusercontent.com/u/17517440?v=4","gravatar_id":"","url":"https://api.github.com/users/adrszad","html_url":"https://github.com/adrszad","followers_url":"https://api.github.com/users/adrszad/followers","following_url":"https://api.github.com/users/adrszad/following{/other_user}","gists_url":"https://api.github.com/users/adrszad/gists{/gist_id}","starred_url":"https://api.github.com/users/adrszad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adrszad/subscriptions","organizations_url":"https://api.github.com/users/adrszad/orgs","repos_url":"https://api.github.com/users/adrszad/repos","events_url":"https://api.github.com/users/adrszad/events{/privacy}","received_events_url":"https://api.github.com/users/adrszad/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-12-05T15:34:06Z","updated_at":"2023-12-07T00:15:57Z","closed_at":"2023-12-06T23:37:31Z","author_association":"NONE","active_lock_reason":null,"body":"RF version: 6.1.1\r\n```\r\n*** Settings ***\r\nDocumentation scratch\r\n\r\n*** Test Cases ***\r\nTest\r\n KW Fail\r\n\r\n*** Keywords ***\r\nKW\r\n [Arguments] ${name}\r\n Wait Until Keyword Succeeds 3x 1s ${name}\r\n```\r\n![image](https://github.com/robotframework/robotframework/assets/17517440/53bfe22a-c824-4876-9037-acae455590ef)\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4967/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4965","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/events","html_url":"https://github.com/robotframework/robotframework/issues/4965","id":2023429239,"node_id":"I_kwDOAUSaQ854mxR3","number":4965,"title":"RF 7.0a2 fails to import keywords having parameters with Literal type","user":{"login":"jyligehc","id":126325830,"node_id":"U_kgDOB4eURg","avatar_url":"https://avatars.githubusercontent.com/u/126325830?v=4","gravatar_id":"","url":"https://api.github.com/users/jyligehc","html_url":"https://github.com/jyligehc","followers_url":"https://api.github.com/users/jyligehc/followers","following_url":"https://api.github.com/users/jyligehc/following{/other_user}","gists_url":"https://api.github.com/users/jyligehc/gists{/gist_id}","starred_url":"https://api.github.com/users/jyligehc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jyligehc/subscriptions","organizations_url":"https://api.github.com/users/jyligehc/orgs","repos_url":"https://api.github.com/users/jyligehc/repos","events_url":"https://api.github.com/users/jyligehc/events{/privacy}","received_events_url":"https://api.github.com/users/jyligehc/received_events","type":"User","site_admin":false},"labels":[{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-12-04T09:45:43Z","updated_at":"2024-01-11T14:44:32Z","closed_at":"2023-12-06T23:37:41Z","author_association":"NONE","active_lock_reason":null,"body":"Tested with Python 3.10 and RF 7.0a2\r\n\r\n```python\r\nEquipmentSection = Literal[\"csi\", \"rec\", \"other\", \"simulator\"]\r\n\r\n# And keyword later:\r\n @keyword\r\n def fetch_additional_equipment(self, additional: str, key: EquipmentSection = \"other\") -> None:\r\n \r\n\r\n\r\n```\r\nWith RF 7.0a2 it will cause following ERROR:\r\n\r\n```bash\r\nError in library 'tafrf.utils.equipment_logger.EquipmentLogging': Adding keyword 'fetch_additional_equipment' failed: 'Literal' does not accept parameters, 'Literal[csi, rec, other, simulator]' has 4.\r\n```\r\n\r\nAbove will not fail with RF6.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4965/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4964","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/events","html_url":"https://github.com/robotframework/robotframework/issues/4964","id":2020899990,"node_id":"I_kwDOAUSaQ854dHyW","number":4964,"title":"Variables set using `Set Suite Variable` with `children=True` cannot be properly overwritten","user":{"login":"oetzus","id":12053218,"node_id":"MDQ6VXNlcjEyMDUzMjE4","avatar_url":"https://avatars.githubusercontent.com/u/12053218?v=4","gravatar_id":"","url":"https://api.github.com/users/oetzus","html_url":"https://github.com/oetzus","followers_url":"https://api.github.com/users/oetzus/followers","following_url":"https://api.github.com/users/oetzus/following{/other_user}","gists_url":"https://api.github.com/users/oetzus/gists{/gist_id}","starred_url":"https://api.github.com/users/oetzus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oetzus/subscriptions","organizations_url":"https://api.github.com/users/oetzus/orgs","repos_url":"https://api.github.com/users/oetzus/repos","events_url":"https://api.github.com/users/oetzus/events{/privacy}","received_events_url":"https://api.github.com/users/oetzus/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-12-01T13:38:20Z","updated_at":"2023-12-20T23:39:00Z","closed_at":"2023-12-19T14:37:10Z","author_association":"NONE","active_lock_reason":null,"body":"I noticed that when \"Set Suite Variable\" is used with children=${True} in a suite setup and is then overwritten again within the the test case, the variable still has the old value when logged in a separate keyword. To better explain it, here's a simple test case to reproduce the error:\r\n```\r\n*** Settings ***\r\nSuite Setup Test Suite Setup\r\n\r\n*** Test Cases ***\r\nVariable Test\r\n Log ${test_variable}\r\n Set Suite Variable \\${test_variable} test case level content\r\n Log ${test_variable}\r\n Check Variable\r\n\r\n*** Keywords ***\r\nTest Suite Setup\r\n Set Suite Variable \\${test_variable} suite setup level content children=${True}\r\n Log ${test_variable}\r\n Check Variable\r\n\r\nCheck Variable\r\n Log ${test_variable}\r\n```\r\n\r\nIn the suite setup, the suite variable ${test_variable} is set using children=${True}. Logging the variable directly afterwards and additionally in the separate keyword \"Check Variable\" returns the correct value \"suite setup level content\".\r\nThen in the test case, the suite variable is overwritten with \"test case level content\". Logging the variable before that step returns \"suite setup level content\" and after overwriting the variable the logging returns \"test case level content\" as expected.\r\nHowever, when executing \"Check Variable\" again in the test case, the value is again \"suite setup level content\", so the old value instead of the new.\r\n\r\nYou may say now that the \"children\" parameter does not make sense to use on this level, but the same problem also occurs when I set the suite variable on a higher level in the __init__.robot file. Only because of simplicity I did it now in the suite setup of the same robot file. But nonetheless, using it on this level with the \"children\" parameter shouldn't lead to this behavior.\r\n\r\nIn fact, the issue happens even on multiple levels if there are more suite setups on different levels. \r\nThat means, if I set the suite variable in the __init__.robot file to the value \"a\", then execute \"Check Variable\" in the __init__.robot file, the value is \"a\" (as expected). Then in the \"Test Suite Setup\" keyword I set the value to \"b\", but \"Check Variable\" still returns \"a\". Then in the test case, I set the value to \"c\", but \"Check Variable\" returns this time \"b\", so always the value which was set \"one layer above\".","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4964/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4960","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/events","html_url":"https://github.com/robotframework/robotframework/issues/4960","id":2011611926,"node_id":"I_kwDOAUSaQ8535sMW","number":4960,"title":"Support integer conversion with strings representing whole number floats like `'1.0'` and `'2e10'`","user":{"login":"JFoederer","id":32476108,"node_id":"MDQ6VXNlcjMyNDc2MTA4","avatar_url":"https://avatars.githubusercontent.com/u/32476108?v=4","gravatar_id":"","url":"https://api.github.com/users/JFoederer","html_url":"https://github.com/JFoederer","followers_url":"https://api.github.com/users/JFoederer/followers","following_url":"https://api.github.com/users/JFoederer/following{/other_user}","gists_url":"https://api.github.com/users/JFoederer/gists{/gist_id}","starred_url":"https://api.github.com/users/JFoederer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JFoederer/subscriptions","organizations_url":"https://api.github.com/users/JFoederer/orgs","repos_url":"https://api.github.com/users/JFoederer/repos","events_url":"https://api.github.com/users/JFoederer/events{/privacy}","received_events_url":"https://api.github.com/users/JFoederer/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-11-27T06:53:43Z","updated_at":"2023-12-07T00:15:56Z","closed_at":"2023-11-27T20:16:41Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Type conversions are a very convenient feature in Robot framework. To make them that extra bit convenient I propose an enhancement.\r\n\r\nCurrently passing any string representation of a `float` number to a keyword accepting only `int` will fail. In most cases this is justified, but there are situations where floats are convertible to `int` just fine. Examples are `\"1.0\"`, `\"2.00\"` or `\"1e100\"`. Note that these conversions currently are already accepted when passed as type `float` (i.e. `${1.0}` or `${1e100}`. Conversion for numbers for which the decimal part is non-zero should still fail. We are talking about conversion here, not type casting.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4960/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4958","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/events","html_url":"https://github.com/robotframework/robotframework/issues/4958","id":2009359982,"node_id":"I_kwDOAUSaQ853xGZu","number":4958,"title":"Document `robot_running` and `dry_run_active` properties of the BuiltIn library in the User Guide","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-24T09:06:58Z","updated_at":"2023-12-07T00:15:56Z","closed_at":"2023-11-24T16:43:00Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"In issue #4666 we introduced 2 new properties `robot_running` and `dry_run_active` to better support library developers, but these properties were not documented anywhere. \r\n\r\nFor RobotCode I regularly get problems that the libdoc cannot be generated (e.g. #d-biehl/robotcode/issues/180) and there are some suggestions for improvement here as well (e.g. #4906)\r\n\r\nI think we should introduce a small chapter under chapter 4 in the user manual on this topic, with some examples like here https://github.com/d-biehl/robotcode/issues/180#issuecomment-1816141730","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4958/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4957","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/events","html_url":"https://github.com/robotframework/robotframework/issues/4957","id":2009280508,"node_id":"I_kwDOAUSaQ853wy_8","number":4957,"title":"[BUG] new VAR syntax with dynamic variable name throws an error if the variable comes from a lower scope ","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":110430429,"node_id":"MDU6TGFiZWwxMTA0MzA0Mjk=","url":"https://api.github.com/repos/robotframework/robotframework/labels/task","name":"task","color":"ededed","default":false,"description":"Generic task not listed in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-24T08:05:03Z","updated_at":"2024-01-11T14:44:57Z","closed_at":"2023-12-08T14:38:55Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"with RFW v7.0a2\r\n\r\nI'm struggling with the new VAR syntax and the possibility to use dynamic variable names.\r\n\r\n```robot\r\n*** Test Cases ***\r\nfirst\r\n VAR ${basename} var\r\n VAR ${${basename}_1} scope=GLOBAL\r\n\r\n Log ${var_1}\r\n```\r\n\r\nI would assume that the test case creates a new global variable ${var_1}, but I only get the error message from robot:\r\n\r\n`[ FAIL ] Setting variable '${${basename}_1}' failed: Variable '${basename}' not found.`\r\n\r\nThe same bug also occurs if I specify the scope SUITE. Without scope or with LOCAL or TEST works. \r\n\r\nif the scope of the `${basename}` var is higher or equals the scope of the new `${${basename}_1}` it works.\r\n\r\nI would assume that the name of the dynamic variable is resolved in the same scope in which it is written, not in the scope in which it is to be defined.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4957/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4956","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/events","html_url":"https://github.com/robotframework/robotframework/issues/4956","id":2008894473,"node_id":"I_kwDOAUSaQ853vUwJ","number":4956,"title":"DotDict behaves inconsistent on equality checks. `x == y` != `not x != y` and not `x != y` == `not x == y`","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-23T23:41:14Z","updated_at":"2023-12-14T23:57:02Z","closed_at":"2023-11-27T21:26:12Z","author_association":"MEMBER","active_lock_reason":null,"body":"As found in #4955 `==` and `!=` do behave differently on DotDict.\r\n\r\nWhile `==` behaves like `dict` the `!=` does behave like OrderedDict.\r\n\r\nQuote:\r\nThis `not a == b` vs `a != b` was the reason the utest fail in the branch.\r\nAnd i would consider this an actual bug in DotDict implementation?\r\n\r\n\r\n```python\r\nfrom collections import OrderedDict\r\nfrom robot.utils import DotDict\r\n\r\n# Normal dict: the order isn't relevant\r\nnorm_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}\r\nnorm_dict_reverse = {'g': 7, 'f': 6, 'e': 5, 'd': 4, 'c': 3, 'b': 2, 'a': 1}\r\n\r\nnorm_dict == norm_dict_reverse # True\r\nnorm_dict != norm_dict_reverse # False\r\nnot norm_dict == norm_dict_reverse # False\r\nnot norm_dict != norm_dict_reverse # True\r\n\r\n# OrderedDict: the order is important\r\norder_dict = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6), ('g', 7)])\r\norder_dict_reverse = OrderedDict([('g', 7), ('f', 6), ('e', 5), ('d', 4), ('c', 3), ('b', 2), ('a', 1)])\r\n\r\norder_dict == order_dict_reverse # False\r\norder_dict != order_dict_reverse # True\r\nnot order_dict == order_dict_reverse # True\r\nnot order_dict != order_dict_reverse # False\r\n\r\n#DotDict : the order isn't relevant with == but is relevant with !=\r\ndot_dict = DotDict({'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7})\r\ndot_dict_reverse = DotDict({'g': 7, 'f': 6, 'e': 5, 'd': 4, 'c': 3, 'b': 2, 'a': 1})\r\ndot_dict == dot_dict_reverse # True because order is not relevant with ==\r\ndot_dict != dot_dict_reverse # True because order is relevant with !=\r\nnot dot_dict == dot_dict_reverse # False\r\nnot dot_dict != dot_dict_reverse # False\r\n```\r\n\r\nThis also appears in Robot Framework Usage:\r\n\r\nDotDict\r\n![image](https://github.com/robotframework/robotframework/assets/41592183/19adc29d-88ca-4eea-b121-5f08f5e39492)\r\n\r\nOrderedDict\r\n![image](https://github.com/robotframework/robotframework/assets/41592183/e35dce29-5552-4f97-9181-45933f672416)\r\n\r\nNormal python dict\r\n![image](https://github.com/robotframework/robotframework/assets/41592183/5d6444be-10ff-4d2a-a995-a2e9cffa0abc)\r\n\r\n\r\nFix should just be adding this to DotDict:\r\n```python \r\n def __ne__(self, other):\r\n return not self == other\r\n```\r\n\r\nI think it is easiest if you quickly add this and a test for it yourself.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4956/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4954","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/events","html_url":"https://github.com/robotframework/robotframework/issues/4954","id":2006145427,"node_id":"I_kwDOAUSaQ853k1mT","number":4954,"title":"Collections and String: Add `ignore_case` as alias for `case_insensitive`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":121827221,"node_id":"MDU6TGFiZWwxMjE4MjcyMjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/deprecation","name":"deprecation","color":"fef2c0","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-22T11:32:12Z","updated_at":"2023-11-22T19:02:21Z","closed_at":"2023-11-22T13:05:23Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added case-insensitive comparison support to various Collections keywords so that keywords got an optional `ignore_case` argument (#4343). While doing that, we noticed that four Collections keywords already supported case-insensitivity and had `case_insensitive` argument for that purpose. This kind of inconsistency within a library isn't great, so something needs to be done to it.\r\n\r\nAn easy solution would be using `case_insensitive` also with the new keywords. That would make Collections consistent, but because we use `ignore_case` in BuiltIn (#2439), different libraries would be inconsistent. I believe we should aim for consistency with all standard libraries and also believe that that `ignore_case` is a better argument name than `case_insensitive`. It is also consistent with other similar arguments like `ignore_order` and `ignore_keys` in Collections.\r\n\r\nThe plan is to do the following:\r\n- Add `ignore_case` argument to Collections keywords that accept `case_insensitive`. The old argument should be preserved for now, but it should be mentioned in the documentation that the new one is preferred. We shouldn't yet emit deprecation warnings, but we can start doing that in RF 8.0.\r\n- For consistency reasons, add `ignore_whitespace` to these same keywords as an alias for `whitespace_insensitive`. It should be treated the same way a `case_insensitive`.\r\n- For consistency reasons, add `ignore_case` as an alias also for the two String library keywords that accept `case_insensitive`.\r\n\r\nAlthough we won't be emitting deprecation warnings, it's good to mention this under the deprecated features section in the release notes.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4954/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4952","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/events","html_url":"https://github.com/robotframework/robotframework/issues/4952","id":2005409981,"node_id":"I_kwDOAUSaQ853iCC9","number":4952,"title":"Collections: Make `ignore_order` and `ignore_keys` recursive","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-22T01:39:28Z","updated_at":"2023-11-22T19:02:21Z","closed_at":"2023-11-22T13:05:22Z","author_association":"MEMBER","active_lock_reason":null,"body":"`Lists Should Be Equal` accepts `ignore_order` (#2703) and `Dictionaries Should Be Equal` accepts `ignore_keys` (#2717). Currently both of them only work with the list/dict given to them and not recursively. We added recursive `Normalizer` class to support case-insensitive comparisons recursively (#4343), and we can easily extend it to handle also other normalization. Then also they will work recursively which I consider useful.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4952/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4945","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/events","html_url":"https://github.com/robotframework/robotframework/issues/4945","id":1994761082,"node_id":"I_kwDOAUSaQ8525aN6","number":4945,"title":"`TypedDict` with forward references do not work in argument conversion","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-11-15T13:16:23Z","updated_at":"2023-11-22T19:02:20Z","closed_at":"2023-11-15T20:58:32Z","author_association":"MEMBER","active_lock_reason":null,"body":"If we use a `TypedDict` like below as a type hint, type conversion is done for key `x` but not for `y`. \r\n\r\n```python\r\nfrom typing import TypedDict\r\n\r\nclass Example(TypedDict):\r\n x: int\r\n y: 'int'\r\n```\r\n\r\nThis is different compared to functions and methods where argument conversion is done both for `x` and `y` if we have `def example(x: int, y: 'int')`. The reason is that with `TypedDict` the annotation assigned to `y` by Python is `ForwardRef`, while with functions and methods we get the original string. Our conversion logic handles strings as aliases but doesn't know that to do with `ForwardRef`s.\r\n\r\nA simple fix for this issue is using `typing.get_type_hints` for getting types instead of accessing `__annotations__` like we currently do. That has a problem that using something like `x: 'int | float'` will cause an error with Python < 3.10. We just added support for such stringified types in arguments (#4711) and supporting them with `TypedDict` would be good as well. I guess we need to use `get_type_hints` first and then access `__annotations__` as a fall-back. Then we may get `ForwardRef`s and need to handle them as well.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4945/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4942","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/events","html_url":"https://github.com/robotframework/robotframework/issues/4942","id":1989326702,"node_id":"I_kwDOAUSaQ852krdu","number":4942,"title":"Add public argument conversion API for libraries and other tools","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":2,"created_at":"2023-11-12T09:42:57Z","updated_at":"2023-11-22T19:02:19Z","closed_at":"2023-11-16T11:27:16Z","author_association":"MEMBER","active_lock_reason":null,"body":"Hi @pekkaklarck ,\r\n\r\nWe are using `TypeConverter` class in Robot Framework Browser in multiple places, to convert arguments of `*varagrs` when calling internal keywords.\r\nUnfortunately this API is no longer be able to digest real `type` values.\r\n\r\n```python\r\nfrom robot.running.arguments.typeconverters import TypeConverter\r\nTypeConverter.converter_for(int)\r\n```\r\n\r\nWe need “dynamic” type conversion because of many reasons.\r\n\r\nWith dynamic i mean we do Robot type conversion inside Browser lib when Robot is not able to do.\r\n\r\n1. We do have situations where we deprecate positional args in favour of named only ones. In these cases we introduce a `*varags` argument that collects all old positional args and assigns them in the old order to the variables inside. Therefore there is no type hinting in the arguments. but we have a Catalog of the original types which can be used to convert.\r\n2. We do have keywords like `Promise To` and `Wait For Condition` which calls our keywords internally and has `*args` to take the arguments. These two keywords iterate over the called keywords interface and try to convert the arguments according to their type. Also in this case we want/need to support dynamic argument conversion.\r\n\r\nFor us it is not really important, if exactly this function `converter_for()` will stay compatible or if a new function will be implemented to get to get the proper converter for a Python type.\r\nHowever it would be more convenient for our users to stay compatible, so they do not necessarily need to update Browser, when updating RF.\r\n\r\nWe do currently:\r\n```python\r\nconverter = TypeConverter.converter_for(argument_type)\r\n if converter is not None:\r\n params[argument_name] = converter.convert(\r\n argument_name, params.get(argument_name)\r\n )\r\n```\r\n\r\nA Public API for this would be nice too.\r\nOr maybe even just a convenient function for Converting value to type as a static method.\r\nSomething like `TypeConverters.convert_to_type(name: str, value: Any, destination_type: type)` \r\n\r\nCheers","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4942/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4939","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/events","html_url":"https://github.com/robotframework/robotframework/issues/4939","id":1987512274,"node_id":"I_kwDOAUSaQ852dwfS","number":4939,"title":"Parsing model: Rename `Return` to `ReturnSetting` and `ReturnStatement` to `Return`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":178145936,"node_id":"MDU6TGFiZWwxNzgxNDU5MzY=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%202","name":"alpha 2","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-10T12:14:27Z","updated_at":"2023-11-22T19:02:19Z","closed_at":"2023-11-13T12:34:52Z","author_association":"MEMBER","active_lock_reason":null,"body":"The deprecated `[Return]` setting is currently represented in the parsing model using a `Return` class and the `RETURN` statement is represented as `ReturnStatement`. For consistency with other control structures, it's better to change this so that `Return` represents `RETURN` and `[Return]` is represented by `ReturnSetting`. We already added `ReturnSetting` as a forwards compatible alias for `Return` in RF 6.1 (#4656) exactly for this purpose. The `ModelVisitor` base class also support `visit_ReturnSetting` already now.\r\n\r\nIn practice this is what needs to be done:\r\n- Rename `Return` to `ReturnSetting` and remove the current `ReturnSetting` alias.\r\n- Rename `ReturnStatement` to `Return`.\r\n- Add `ReturnStatement` alias for backwards compatibility.\r\n- Add support for `visit_ReturnStatement` to the `ModelVisitor`. It will be called with `Return` nodes if `visit_Return` is missing.\r\n\r\nThis is a backwards incompatible change and tools working with the parsing model need to be updated. When using `ModelVisitor`, the following code ought to work with all versions. If only RF 6.1 or newer needs to be supported, `visit_Return` isn't needed because Robot will automatically call appropriate `visit_ReturnXxx` method.\r\n\r\n```python\r\nfrom robot import __version__ as robot_version\r\nfrom robot.api.parsing import ModelVisitor\r\n\r\n\r\nRF7_OR_NEWER = int(robot_version.split('.')[0]) >= 7\r\n\r\n\r\nclass Example(ModelVisitor):\r\n\r\n def visit_Return(self, node):\r\n if RF7_OR_NEWER:\r\n self.visit_ReturnStatement(node)\r\n else:\r\n self.visit_ReturnSetting(node)\r\n\r\n def visit_ReturnStatement(self, node):\r\n ...\r\n\r\n def visit_ReturnSetting(self, node):\r\n ...\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4939/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4936","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/events","html_url":"https://github.com/robotframework/robotframework/issues/4936","id":1985697739,"node_id":"I_kwDOAUSaQ852W1fL","number":4936,"title":"Remove bytes support from `robot.utils.normalize` function","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-09T14:05:24Z","updated_at":"2023-11-22T19:24:37Z","closed_at":"2023-11-09T15:15:31Z","author_association":"MEMBER","active_lock_reason":null,"body":"Our `normalize` utility is used for normalizing strings, but it also supports bytes. The reason for the bytes support is that in Python 2 `str` actually was bytes and we needed to handle that in addition to `unicode`. In Python 3 strings and bytes are separated properly, and this kind of string manipulation doesn't make sense with bytes. The bytes support makes the code a bit more complicated and removing it will also make the code a tiny bit faster.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4936/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4935","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/events","html_url":"https://github.com/robotframework/robotframework/issues/4935","id":1985689764,"node_id":"I_kwDOAUSaQ852Wzik","number":4935,"title":"Use `casefold`, not `lower`, when comparing strings case-insensitively","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-11-09T14:01:26Z","updated_at":"2023-11-09T15:15:32Z","closed_at":"2023-11-09T15:15:31Z","author_association":"MEMBER","active_lock_reason":null,"body":"We currently use [str.lower()](https://docs.python.org/3/library/stdtypes.html#str.lower). when comparing strings case-insensitively, but it would be better to use [str.casefold()](https://docs.python.org/3/library/stdtypes.html#str.casefold). From the documentation of the latter:\r\n\r\n> Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string. For example, the German lowercase letter 'ß' is equivalent to \"ss\". Since it is already lowercase, [lower()](https://docs.python.org/3/library/stdtypes.html#str.lower) would do nothing to 'ß'; [casefold()](https://docs.python.org/3/library/stdtypes.html#str.casefold) converts it to \"ss\".\r\n\r\nThere aren't too many cases where the difference between `lower` and `casefold` matters, but there's no performance difference between them either and the change is trivial. This change should be done at least to our `normalize()` utility that is used internally in various places both directly and indirectly. Should also change keywords in BuiltIn that support case-insensitivity the same way.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4935/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4934","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/events","html_url":"https://github.com/robotframework/robotframework/issues/4934","id":1981604110,"node_id":"I_kwDOAUSaQ852HOEO","number":4934,"title":"Enhance performance of visiting parsing model","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":1,"created_at":"2023-11-07T15:16:42Z","updated_at":"2023-11-10T13:04:28Z","closed_at":"2023-11-07T15:44:58Z","author_association":"MEMBER","active_lock_reason":null,"body":"When Robot parses data files, it produces a model that both Robot itself and external tools use. Going through the model is easiest by using [visitors](https://robot-framework.readthedocs.io/en/stable/autodoc/robot.parsing.model.html#robot.parsing.model.visitor.ModelVisitor). That is typically pretty fast, but it is possible to enhance the performance, for example, by caching visitor methods. These enhancements are especially important for external tools such as editor plugins that need to process lot of data. \r\n\r\nWe already have PR #4911 by @d-biehl that adds visitor method caching. This issue exists mainly for tracking purposes, but it also covers mentioning caching in visitor documentation. Possible additional performance enhancements can be linked to this same issue as well.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4934/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4933","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/events","html_url":"https://github.com/robotframework/robotframework/issues/4933","id":1981359348,"node_id":"I_kwDOAUSaQ852GST0","number":4933,"title":"Type conversion: Ignore hyphens when matching enum members","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"assignees":[{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/64","html_url":"https://github.com/robotframework/robotframework/milestone/64","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/64/labels","id":7828494,"node_id":"MI_kwDOAUSaQ84Ad3QO","number":64,"title":"v7.0","description":"A major release supporting `start/end_keyword` methods with the listener API v3 (#3296), native `VAR` syntax for creating variables (#3761) and mixing embedded and normal arguments with library keywords (#4710) as well as various other interesting new features. Requires Python 3.8 or newer (#4294).","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":94,"state":"closed","created_at":"2022-04-01T12:32:38Z","updated_at":"2024-01-28T12:52:14Z","due_on":"2024-01-10T08:00:00Z","closed_at":"2024-01-11T22:25:14Z"},"comments":0,"created_at":"2023-11-07T13:26:01Z","updated_at":"2023-11-07T15:44:58Z","closed_at":"2023-11-07T15:44:57Z","author_association":"MEMBER","active_lock_reason":null,"body":"Enum conversion is already now case, space and underscore insensitive (#3611). Ignoring also hyphens would mean that enums like\r\n```python\r\nclass Click(Enum):\r\n left_click = auto()\r\n right_click = auto()\r\n```\r\ncould be used as `left-click` in addition to the exact match `left_click` and other normalized variants like `left click`.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4933/timeline","performed_via_github_app":null,"state_reason":"completed","score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z","issues":{"total_count":77,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4793","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/events","html_url":"https://github.com/robotframework/robotframework/issues/4793","id":1751454828,"node_id":"I_kwDOAUSaQ85oZRRs","number":4793,"title":"Enhance programmatic API to create resource files","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-06-11T14:36:37Z","updated_at":"2023-06-11T16:22:43Z","closed_at":"2023-06-11T16:22:43Z","author_association":"MEMBER","active_lock_reason":null,"body":"The main motivation is making it easier to create resource files so that they can be converted to JSON. JSON support it self is #3902. `ResourceFile` already has `to_json` and `from_json` methods, but two additional things are needed to make it's usage more convenient:\r\n\r\n- It needs to be exposed via `robot.running`.\r\n- It needs `from_file_system`, `from_string` and `from_model` class methods that also `TestSuite` has.\r\n\r\nAfter these enhancement this is possible:\r\n```python\r\nfrom robot.running import ResourceFile\r\n\r\nresource = ResourceFile.from_file_system('example.resource')\r\nresource.to_json('example.rsrc')\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4793/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4792","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/events","html_url":"https://github.com/robotframework/robotframework/issues/4792","id":1749749552,"node_id":"I_kwDOAUSaQ85oSw8w","number":4792,"title":"Add Vietnamese translation ","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-06-09T11:53:31Z","updated_at":"2023-06-13T14:00:42Z","closed_at":"2023-06-09T11:54:49Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added translation infrastructure and as well as translations for various languages in RF 6.0 (#4390). We now have PR #4791 adding Vietnamese translation.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4792/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4781","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/events","html_url":"https://github.com/robotframework/robotframework/issues/4781","id":1737643682,"node_id":"I_kwDOAUSaQ85nklai","number":4781,"title":"Libdoc: Type info for `TypedDict` doesn't list `Mapping` in converted types","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-06-02T07:51:16Z","updated_at":"2023-06-05T08:09:05Z","closed_at":"2023-06-02T08:11:27Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added explicit `TypedDict` conversion in RF 6.0 (#4477) and Libdoc handled them specially already earlier. There's a very small issue that Libdoc only lists `string` as a converted type when we also convert any `Mapping`.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4781/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4780","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/events","html_url":"https://github.com/robotframework/robotframework/issues/4780","id":1737611887,"node_id":"I_kwDOAUSaQ85nkdpv","number":4780,"title":"Libdoc crashes if it does not detect documentation format","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-06-02T07:24:31Z","updated_at":"2023-06-05T08:09:05Z","closed_at":"2023-06-02T08:11:27Z","author_association":"MEMBER","active_lock_reason":null,"body":"If documentation format isn't detected automatically based on the output file extension or given explicitly using `--format`, Libdoc execution fails with `AttributeError`:\r\n```\r\n$ libdoc BuiltIn BuiltIn\r\nUnexpected error: AttributeError: 'NoneType' object has no attribute 'upper'\r\nTraceback (most recent call last):\r\n File \"/home/peke/Devel/robotframework/src/robot/utils/application.py\", line 81, in _execute\r\n rc = self.main(arguments, **options)\r\n File \"src/robot/libdoc.py\", line 197, in main\r\n libdoc.save(output, format, self._validate_theme(theme, format))\r\n File \"/home/peke/Devel/robotframework/src/robot/libdocpkg/model.py\", line 93, in save\r\n with LibdocOutput(output, format) as outfile:\r\n File \"/home/peke/Devel/robotframework/src/robot/libdocpkg/output.py\", line 27, in __init__\r\n self._format = format.upper()\r\nAttributeError: 'NoneType' object has no attribute 'upper'\r\n```\r\n\r\nThis is an error situation, but it should be reported correctly.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4780/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4777","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/events","html_url":"https://github.com/robotframework/robotframework/issues/4777","id":1731173138,"node_id":"I_kwDOAUSaQ85nL5sS","number":4777,"title":"Parse files with `.robot.rst` extension automatically","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-05-29T19:46:43Z","updated_at":"2023-06-05T08:09:04Z","closed_at":"2023-05-29T19:57:44Z","author_association":"MEMBER","active_lock_reason":null,"body":"Robot Framework can parse reStructuredText files having `.rst` or `.rest` extension, but to avoid parsing unrelated reST files that support needs to be enabled separately by using the `--extension` option. To make using reST files more convenient, we could automatically parse files with `.robot.rst` extension.\r\n\r\nThis is easy to implement, because we already support for such multipart extensions with custom parsers (#1283).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4777/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4771","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/events","html_url":"https://github.com/robotframework/robotframework/issues/4771","id":1722483268,"node_id":"I_kwDOAUSaQ85mqwJE","number":4771,"title":"Python 3.12 compatibility","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430421,"node_id":"MDU6TGFiZWwxMTA0MzA0MjE=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20critical","name":"priority: critical","color":"00441b","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":3,"created_at":"2023-05-23T17:11:45Z","updated_at":"2023-12-03T18:43:33Z","closed_at":"2023-05-24T22:36:37Z","author_association":"MEMBER","active_lock_reason":null,"body":"Python 3.12 will be released in October and the first beta is now available. I tested it and noticed that our Python evaluation using the special variable syntax `$var` is broken. This seems to be due to a subtle change in Python's tokenizer (python/cpython#104802). Luckily fixing our code is easy and with the fix all our acceptance tests pass.\r\n\r\nA much smaller issue is that our tests seem have invalid escape sequences like `'\\.'` that are nowadays reported more visibly than earlier. They need be changed to `'\\\\.'` or `r'\\.'`.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4771/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4765","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/events","html_url":"https://github.com/robotframework/robotframework/issues/4765","id":1707618980,"node_id":"I_kwDOAUSaQ85lyDKk","number":4765,"title":"Add forward compatible `start_time`, `end_time` and `elapsed_time` propertys to result objects","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-05-12T13:14:08Z","updated_at":"2023-06-05T08:09:03Z","closed_at":"2023-05-13T13:33:06Z","author_association":"MEMBER","active_lock_reason":null,"body":"The plan is to enhance performance of getting and processing timestamps in RF 7.0 (#4258). Part of that is internally representing start and end times as `datetime` objects and elapsed time as a `timedelta`. The old `starttime`, `endtime` and `elapsed` time attributes will be preserved for backwards compatibility reasons, and new `start_time`, `end_time` and `elapsed_time` attributes added.\r\n\r\nFor forward compatibility reasons we should add `start_time`, `end_time` and `elapsed_time` already in RF 6.1. They can be propetys that get their values from the old attributes. In RF 7 we can then change them to be the \"real\" attributes and make the old ones propertys.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4765/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4756","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/events","html_url":"https://github.com/robotframework/robotframework/issues/4756","id":1695574065,"node_id":"I_kwDOAUSaQ85lEGgx","number":4756,"title":"Failed keywords inside skipped tests are not expanded","user":{"login":"karniemi","id":5871676,"node_id":"MDQ6VXNlcjU4NzE2NzY=","avatar_url":"https://avatars.githubusercontent.com/u/5871676?v=4","gravatar_id":"","url":"https://api.github.com/users/karniemi","html_url":"https://github.com/karniemi","followers_url":"https://api.github.com/users/karniemi/followers","following_url":"https://api.github.com/users/karniemi/following{/other_user}","gists_url":"https://api.github.com/users/karniemi/gists{/gist_id}","starred_url":"https://api.github.com/users/karniemi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karniemi/subscriptions","organizations_url":"https://api.github.com/users/karniemi/orgs","repos_url":"https://api.github.com/users/karniemi/repos","events_url":"https://api.github.com/users/karniemi/events{/privacy}","received_events_url":"https://api.github.com/users/karniemi/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":20,"created_at":"2023-05-04T08:58:14Z","updated_at":"2023-06-05T08:09:02Z","closed_at":"2023-05-17T18:12:20Z","author_association":"NONE","active_lock_reason":null,"body":"We are just upgrading from 3.x to 6.0.2. We are moving our test framework to use the \"skipped\"-concept instead of the deprecated \"critical/non-critical\"-concept. We noticed that in log.html, the failed KWs are not automatically expanded for a test skipped using skipOnFailure.\r\n\r\nReproducing:\r\n- click a failed skipped test in report.html.\r\n- Failed nested KWs are not automatically expanded in log.html\r\n\r\nFor a failed non-skipped test, the failed KWs are automatically recursively expanded. The same happens for failed non-critical test in 3.x. We would expect and like the same behaviour for the failed skipped tests. Especially for nested KWs, it's irritating to manually expand the failed nested KWs to get to the lowest level failed KW. ","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4756/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4754","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/events","html_url":"https://github.com/robotframework/robotframework/issues/4754","id":1695264304,"node_id":"I_kwDOAUSaQ85lC64w","number":4754,"title":"Back navigation does not work properly in HTML outputs (log, report, Libdoc)","user":{"login":"karniemi","id":5871676,"node_id":"MDQ6VXNlcjU4NzE2NzY=","avatar_url":"https://avatars.githubusercontent.com/u/5871676?v=4","gravatar_id":"","url":"https://api.github.com/users/karniemi","html_url":"https://github.com/karniemi","followers_url":"https://api.github.com/users/karniemi/followers","following_url":"https://api.github.com/users/karniemi/following{/other_user}","gists_url":"https://api.github.com/users/karniemi/gists{/gist_id}","starred_url":"https://api.github.com/users/karniemi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karniemi/subscriptions","organizations_url":"https://api.github.com/users/karniemi/orgs","repos_url":"https://api.github.com/users/karniemi/repos","events_url":"https://api.github.com/users/karniemi/events{/privacy}","received_events_url":"https://api.github.com/users/karniemi/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":7,"created_at":"2023-05-04T05:03:59Z","updated_at":"2023-06-05T08:09:02Z","closed_at":"2023-06-02T08:11:26Z","author_association":"NONE","active_lock_reason":null,"body":"We are just Upgrading from 3.x to 6.0.2.\r\n\r\nGetting back to report.html from log.html requires 3 clicks on Back button. This is quite irritating.\r\n\r\nSteps to reproduce:\r\n1) from testreport.html, open a testcase. This takes to log.html, url ends like \"log.html#s1-s2-s29-t6\".\r\n2) click Back. Still in log.html. url ends like \"log.html#\"\r\n3) click Back. Still in log.html. url ends like \"log.html#s1-s2-s29-t6\"\r\n4) click Back. Only now,, we are back in report.html\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4754/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4749","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/events","html_url":"https://github.com/robotframework/robotframework/issues/4749","id":1682001888,"node_id":"I_kwDOAUSaQ85kQU_g","number":4749,"title":"Process: `Split/Join Command Line` do not work properly with `pathlib.Path` objects","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-04-24T20:40:10Z","updated_at":"2023-06-05T14:43:49Z","closed_at":"2023-04-24T20:58:46Z","author_association":"MEMBER","active_lock_reason":null,"body":"Several related problems:\r\n- `Split Command Line` fails if given `pathlib.Path`.\r\n- `Join Command Line` fails as well with Python < 3.8.\r\n- `Join Command Line` could also handle other non-string values.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4749/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4746","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/events","html_url":"https://github.com/robotframework/robotframework/issues/4746","id":1680590119,"node_id":"I_kwDOAUSaQ85kK8Un","number":4746,"title":"Decide and document XDG media type","user":{"login":"Akselmo","id":13801236,"node_id":"MDQ6VXNlcjEzODAxMjM2","avatar_url":"https://avatars.githubusercontent.com/u/13801236?v=4","gravatar_id":"","url":"https://api.github.com/users/Akselmo","html_url":"https://github.com/Akselmo","followers_url":"https://api.github.com/users/Akselmo/followers","following_url":"https://api.github.com/users/Akselmo/following{/other_user}","gists_url":"https://api.github.com/users/Akselmo/gists{/gist_id}","starred_url":"https://api.github.com/users/Akselmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Akselmo/subscriptions","organizations_url":"https://api.github.com/users/Akselmo/orgs","repos_url":"https://api.github.com/users/Akselmo/repos","events_url":"https://api.github.com/users/Akselmo/events{/privacy}","received_events_url":"https://api.github.com/users/Akselmo/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":9,"created_at":"2023-04-24T07:03:22Z","updated_at":"2023-06-11T16:49:06Z","closed_at":"2023-06-11T16:47:56Z","author_association":"NONE","active_lock_reason":null,"body":"I've created an issue to XDG mimetypes repo about adding a mediatype for robot framework\r\nhttps://gitlab.freedesktop.org/xdg/shared-mime-info/-/issues/198\r\n\r\nI think having mediatype `text/robotframework` would be ok. This means any text editor would know it's a text file, and those which have syntax highlight etc. support for Robot files can enable that as well.\r\n\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4746/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4744","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/events","html_url":"https://github.com/robotframework/robotframework/issues/4744","id":1678014037,"node_id":"I_kwDOAUSaQ85kBHZV","number":4744,"title":"WHILE limit doesn't work in teardown","user":{"login":"m1kaj","id":25018297,"node_id":"MDQ6VXNlcjI1MDE4Mjk3","avatar_url":"https://avatars.githubusercontent.com/u/25018297?v=4","gravatar_id":"","url":"https://api.github.com/users/m1kaj","html_url":"https://github.com/m1kaj","followers_url":"https://api.github.com/users/m1kaj/followers","following_url":"https://api.github.com/users/m1kaj/following{/other_user}","gists_url":"https://api.github.com/users/m1kaj/gists{/gist_id}","starred_url":"https://api.github.com/users/m1kaj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m1kaj/subscriptions","organizations_url":"https://api.github.com/users/m1kaj/orgs","repos_url":"https://api.github.com/users/m1kaj/repos","events_url":"https://api.github.com/users/m1kaj/events{/privacy}","received_events_url":"https://api.github.com/users/m1kaj/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-04-21T07:34:16Z","updated_at":"2023-05-04T20:18:37Z","closed_at":"2023-04-25T21:58:41Z","author_association":"NONE","active_lock_reason":null,"body":"### Description\r\nMy original source is test run failure. Tests ran using a docker container and run stopped when container exited with code 137. Trying to simplify the test that lead to the steps given below. I'm seeing execution get stuck in Test Teardown. \r\n\r\n### Steps to reproduce\r\n1. Open terminal and create a test suite file `stuck.robot` with content\r\n```\r\n*** Keywords ***\r\nMy Teardown\r\n WHILE True limit=3\r\n Log To Console Sleep 1 second\r\n Sleep 1\r\n END\r\n\r\n\r\n*** Test Cases ***\r\nMy Test\r\n No Operation\r\n [Teardown] My Teardown\r\n```\r\n2. Run test: `robot stuck.robot`\r\n\r\n### Actual results\r\nRobot output looks normal until while loop limit is reached:\r\n```\r\n==============================================================================\r\nStuck\r\n==============================================================================\r\nMy Test .Sleep 1 second\r\nSleep 1 second\r\nSleep 1 second\r\n```\r\nThen robot appears stuck. Host resource monitor indicates high CPU usage. It is possible to force exit by hitting `CTRL+C` more than once.\r\n\r\n### Reproducibility\r\nReproduced 10 times out of 10 on my local PC (first one in the list below). On other systems, reproduced on first try.\r\n\r\n### Tested versions\r\n* Windows 11 PC running WSL: Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)\r\n * Robot Framework 6.0.2 , Python 3.8.10\r\n * Robot Framework 6.1a1 , Python 3.8.10\r\n* Ubuntu 22.04 LTS system\r\n * _need to collect version info later_\r\n* MacBook Pro\r\n * Robot Framework 6.0.2, Python 3.10.5\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4744/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4740","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/events","html_url":"https://github.com/robotframework/robotframework/issues/4740","id":1671363647,"node_id":"I_kwDOAUSaQ85jnvw_","number":4740,"title":"Add type hints to parsing API","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-04-17T14:48:44Z","updated_at":"2023-05-04T20:18:36Z","closed_at":"2023-05-03T16:31:23Z","author_association":"MEMBER","active_lock_reason":null,"body":"At least `get_tokens`, `get_model`, and their resource and init file variants need to get type hints and adding them is easy. Adding types to the whole parsing module would be good too, but that may be too much work for RF 6.1. If it is, a separate issue about that should be submitted for RF 6.2.\r\n\r\nOne reason to add type hints is that they can enable using [mypyc](https://mypyc.readthedocs.io/en/latest/index.html) for compiling the parsing module into a C extension. That could help making parsing faster as part of execution and, probably more importantly, when used by IDEs or other external tools. Full `mypy` or `mypyc` compatibility isn't in the scope of this issue, but the better the type hints are, the easier it is to continue to that direction in the future.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4740/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4736","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/events","html_url":"https://github.com/robotframework/robotframework/issues/4736","id":1665308172,"node_id":"I_kwDOAUSaQ85jQpYM","number":4736,"title":"Backslash preventing newline in documentation can form escape sequence like `\\n`","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-04-12T21:47:39Z","updated_at":"2023-05-31T20:35:01Z","closed_at":"2023-04-12T21:52:51Z","author_association":"MEMBER","active_lock_reason":null,"body":"When suite, test or keyword documentation is split to multiple rows, rows are automatically joined together with a newline. This isn't always desirable so it's possible to use `\\` at the end of a documentation row to prevent it:\r\n```robotframework\r\n*** Settings ***\r\nDocumentation Backslash avoids automatic \\\r\n... newline.\r\n```\r\n\r\nThe problem is that lines are joined together so that the above looks like `Backslash avoids automatic \\newline` and when it is later evaluated the accidental `\\n` actually creates a newline. This can be fixed so that backslashes used for preventing newlines are removed from the documentation before rows are joined together.\r\n\r\nThis is a pretty annoying bug, but luckily there are very seldom needs to prevent the automatic newline. For example, in the above case the documentation in log and report looks exactly the same when formatted as a HTML paragraph. The main use case for splitting lines without an automatic newline is splitting strings that don't even have spaces in them and such strings are rare in documentation.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4736/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4729","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/events","html_url":"https://github.com/robotframework/robotframework/issues/4729","id":1659823987,"node_id":"I_kwDOAUSaQ85i7udz","number":4729,"title":"Leading and internal spaces should be preserved in documentation","user":{"login":"kerol2r20","id":3398826,"node_id":"MDQ6VXNlcjMzOTg4MjY=","avatar_url":"https://avatars.githubusercontent.com/u/3398826?v=4","gravatar_id":"","url":"https://api.github.com/users/kerol2r20","html_url":"https://github.com/kerol2r20","followers_url":"https://api.github.com/users/kerol2r20/followers","following_url":"https://api.github.com/users/kerol2r20/following{/other_user}","gists_url":"https://api.github.com/users/kerol2r20/gists{/gist_id}","starred_url":"https://api.github.com/users/kerol2r20/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kerol2r20/subscriptions","organizations_url":"https://api.github.com/users/kerol2r20/orgs","repos_url":"https://api.github.com/users/kerol2r20/repos","events_url":"https://api.github.com/users/kerol2r20/events{/privacy}","received_events_url":"https://api.github.com/users/kerol2r20/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":7,"created_at":"2023-04-09T10:12:30Z","updated_at":"2023-05-04T20:18:35Z","closed_at":"2023-04-12T21:53:42Z","author_association":"NONE","active_lock_reason":null,"body":"Hi,\r\nI found that `.. code::robotframework` directives cannot work well in resource file format when I set documen format as reStructuredText format.\r\n\r\n```robot\r\n*** Keywords ***\r\nSimple keyword\r\n [Documentation] \r\n ... .. code:: robotframework\r\n ...\r\n ... *** Test Cases ***\r\n ... Simple test case\r\n ... Simple keyword\r\n```\r\n\r\ndocutils ouput ` :1: (ERROR/3) Content block expected for the \"code\" directive; none found.` error message.\r\n\r\nI had tried to find out why it happen and found that libdoc visit each token and lost white space token. \r\nAfter parse_resource_file function invoked, the doc of keyword remain like the following.\r\nThis is not a valid format for docutils.\r\n\r\n```\r\n.. code:: robotframework\r\n\r\n*** Test Cases ***\r\nSimple test case\r\nSimple keyword\r\n```\r\n\r\nMay it possible to reserve white space when using reStructuredText as document format?","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4729/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4716","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/events","html_url":"https://github.com/robotframework/robotframework/issues/4716","id":1651042071,"node_id":"I_kwDOAUSaQ85iaOcX","number":4716,"title":"Variable nodes with nested variables report a parsing error, but work properly in the runtime","user":{"login":"mnojek","id":7412964,"node_id":"MDQ6VXNlcjc0MTI5NjQ=","avatar_url":"https://avatars.githubusercontent.com/u/7412964?v=4","gravatar_id":"","url":"https://api.github.com/users/mnojek","html_url":"https://github.com/mnojek","followers_url":"https://api.github.com/users/mnojek/followers","following_url":"https://api.github.com/users/mnojek/following{/other_user}","gists_url":"https://api.github.com/users/mnojek/gists{/gist_id}","starred_url":"https://api.github.com/users/mnojek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mnojek/subscriptions","organizations_url":"https://api.github.com/users/mnojek/orgs","repos_url":"https://api.github.com/users/mnojek/repos","events_url":"https://api.github.com/users/mnojek/events{/privacy}","received_events_url":"https://api.github.com/users/mnojek/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-04-02T18:10:39Z","updated_at":"2023-05-04T20:18:35Z","closed_at":"2023-04-05T18:53:07Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"### Context\r\nWe have a rule in Robocop that parses non-local variables and checks if they are written in uppercase. I realized recently (thanks to the https://github.com/MarketSquare/robotframework-robocop/issues/678) that we should exclude nested variables from the check, so that `${VAR${nested}}` would not report a rule violation.\r\n\r\n### The bug\r\nI realized that correct variables are marked with an error by RF Parsing API. For example, this code, run with `robot --variable var1:1 test.robot`:\r\n\r\n```\r\n*** Variables ***\r\n${var${1}} 1\r\n\r\n*** Test Cases ***\r\nMy Test\r\n Log To Console ${var${1}}\r\n```\r\n\r\nexecutes with PASS state.\r\n\r\nBut when parsing the variable node, I see that there is an error there:\r\n\r\n\"Screenshot\r\n\r\nThe bug appears in RF 5 and 6. I haven't tested for earlier versions.\r\n\r\nHere are some more examples that raise the same error for RF Parsing API:\r\n\r\n```\r\n${MY_VAR${var}} 11\r\n${MY VAR${VAR}} 11\r\n${${var}MY VAR${VAR}} 11\r\n${${var${VAR}}MY VAR${VAR}} 11\r\n${@{VAR}[1]MY_VAR&{var.param}} 11\r\n${${var${VAR}}my_var} 11\r\n${${VAR}my_var} 11\r\n${${VAR}my_var${var}} 11\r\n${@{VAR}[1]my_var} 11\r\n${@{VAR}[1]my_var&{var.param}} 11\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4716/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4709","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/events","html_url":"https://github.com/robotframework/robotframework/issues/4709","id":1646754740,"node_id":"I_kwDOAUSaQ85iJ3u0","number":4709,"title":"Add `__repr__()` method to NormalizedDict","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-30T01:13:50Z","updated_at":"2023-05-04T20:18:34Z","closed_at":"2023-03-30T17:47:14Z","author_association":"MEMBER","active_lock_reason":null,"body":"I see the problem, that with the RobotDebug REPL i am updating right now, the NormalizedDict are just shown like this:\r\n\r\n`${SUITE_METADATA} = `\r\n\r\nCould we do it like this?\r\n```python\r\ndef __repr__(self):\r\n return '%s(%s)' % (self.__class__.__name__, str(self))\r\n```\r\nor:\r\n```python\r\ndef __repr__(self):\r\n return f'{self.__class__.__name__}({self.__str__()})'\r\n```\r\nThen it would be :\r\n`${SUITE_METADATA} = NormalizedDict({'Hello': 'World', 'Test': '123'})`\r\n\r\nWe could also write it like this?\r\n`robot.utils.NormalizedDict({'Hello': 'World', 'Test': '123'})`\r\n\r\nBut i think the former version would be good enough \r\n\r\nWhat do you think?\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4709/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4705","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/events","html_url":"https://github.com/robotframework/robotframework/issues/4705","id":1643455775,"node_id":"I_kwDOAUSaQ85h9SUf","number":4705,"title":"Items are not converted when using generics like `list[int]` and passing object, not string","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-28T08:28:56Z","updated_at":"2023-05-05T14:07:33Z","closed_at":"2023-03-28T13:55:55Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added support for converting items with generics like `list[int]` and `dict[str, int]` in RF 6.0 (#4433). There unfortunately is a bug that it only works when passing values as string literals, not as actual object. For example, using this example from our Slack:\r\n```python\r\ndef sum_values(values_dict: dict[str, int]) -> int:\r\n values_sum: int = 0\r\n for _, value in values_dict.items():\r\n values_sum += value\r\n return values_sum\r\n```\r\nlike:\r\n```\r\n&{dict} = Create Dictionary spam 11 eggs 22\r\n${sum} = Sum Values ${dict}\r\n```\r\nfails with:\r\n> TypeError: unsupported operand type(s) for +=: 'int' and 'str'`.\r\n\r\nUsing the example with a dictionary literal works fine:\r\n```\r\n${sum} = Sum Values {'spam': '11', 'eggs': '22'}\r\n```","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/reactions","total_count":1,"+1":1,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4705/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4695","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/events","html_url":"https://github.com/robotframework/robotframework/issues/4695","id":1630819433,"node_id":"I_kwDOAUSaQ85hNFRp","number":4695,"title":"Accessing `id` property of model objects may cause `ValueError`","user":{"login":"oboehmer","id":22439451,"node_id":"MDQ6VXNlcjIyNDM5NDUx","avatar_url":"https://avatars.githubusercontent.com/u/22439451?v=4","gravatar_id":"","url":"https://api.github.com/users/oboehmer","html_url":"https://github.com/oboehmer","followers_url":"https://api.github.com/users/oboehmer/followers","following_url":"https://api.github.com/users/oboehmer/following{/other_user}","gists_url":"https://api.github.com/users/oboehmer/gists{/gist_id}","starred_url":"https://api.github.com/users/oboehmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oboehmer/subscriptions","organizations_url":"https://api.github.com/users/oboehmer/orgs","repos_url":"https://api.github.com/users/oboehmer/repos","events_url":"https://api.github.com/users/oboehmer/events{/privacy}","received_events_url":"https://api.github.com/users/oboehmer/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":6,"created_at":"2023-03-19T07:39:05Z","updated_at":"2023-05-04T20:18:33Z","closed_at":"2023-03-29T06:51:07Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"With 6.1a1 (not seen with 6.0.1), the following construct no longer works to retrieve the currently executed keyword's ID from the stack IF the keyword is executed via `Run Keyword ...` variants:\r\n\r\n```\r\n for stack in inspect.stack():\r\n frame = inspect.getargvalues(stack[0])\r\n if getattr(frame, 'locals', None) and frame.locals.get('step'):\r\n return frame.locals['step'].id\r\n```\r\n\r\n\r\nThis can easily be reproduced using the following test suite and custom library:\r\n\r\n```\r\n*** Settings ***\r\nLibrary testlib.py\r\n\r\n*** Test Cases ***\r\n# the first test passes, the two remaining fail\r\nTest KW \r\n Test Keyword\r\n\r\nTest Run KW \r\n Run Keyword Test Keyword\r\n\r\nTest Run KW and expect error\r\n Run Keyword and Expect Error you told me to fail Test Keyword ${TRUE}\r\n```\r\n\r\ntestlib.py:\r\n```\r\nimport inspect\r\nfrom robot.api import logger\r\n\r\n\r\ndef _get_current_keyword_id():\r\n \"\"\"\r\n Traverses the stack to find the current keyword and returns its id.\r\n \"\"\"\r\n for stack in inspect.stack():\r\n frame = inspect.getargvalues(stack[0])\r\n if getattr(frame, 'locals', None) and frame.locals.get('step'):\r\n return frame.locals['step'].id\r\n\r\n\r\ndef test_keyword(fail=False):\r\n logger.info(_get_current_keyword_id())\r\n assert not fail, 'you told me to fail'\r\n```\r\n\r\nexecution with 6.1a1:\r\n\r\n```\r\nroot@36c9fa153edc:workspace# robot -L TRACE keyword-id.robot \r\n==============================================================================\r\nKeyword-Id \r\n==============================================================================\r\nTest KW | PASS |\r\n------------------------------------------------------------------------------\r\nTest Run KW | FAIL |\r\nValueError: robot.running.Keyword(name='Test Keyword', args=[], assign=()) is not in list\r\n------------------------------------------------------------------------------\r\nTest Run KW and expect error | FAIL |\r\nExpected error 'you told me to fail' but got 'ValueError: robot.running.Keyword(name='Test Keyword', args=['${TRUE}'], assign=()) is not in list'.\r\n------------------------------------------------------------------------------\r\nKeyword-Id | FAIL |\r\n3 tests, 1 passed, 2 failed\r\n==============================================================================\r\n```\r\n\r\nstack trace shown in log:\r\n```\r\nTraceback (most recent call last):\r\n File \"/home/cisco/cxta/workspace/testlib.py\", line 16, in test_keyword\r\n logger.info(_get_current_keyword_id())\r\n File \"/home/cisco/cxta/workspace/testlib.py\", line 12, in _get_current_keyword_id\r\n return frame.locals['step'].id\r\n File \"/venv/lib/python3.9/site-packages/robot/model/body.py\", line 58, in id\r\n return self._get_id(self.parent)\r\n File \"/venv/lib/python3.9/site-packages/robot/model/body.py\", line 69, in _get_id\r\n my_id = steps.index(self) + 1\r\nValueError: robot.running.Keyword(name='Test Keyword', args=[], assign=()) is not in list\r\n```\r\n\r\nexecution with 6.0.1 passes.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4695/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4692","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/events","html_url":"https://github.com/robotframework/robotframework/issues/4692","id":1625036987,"node_id":"I_kwDOAUSaQ85g3Bi7","number":4692,"title":"`ELSE IF` condition not passed to listeners","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-03-15T08:49:27Z","updated_at":"2023-03-15T12:50:35Z","closed_at":"2023-03-15T09:34:19Z","author_association":"MEMBER","active_lock_reason":null,"body":"RF 6.0 enhanced listeners so that more info about control structures is passed to them (#4335). Due to a bug in the code, a missing comma in a single item tuple, `ELSE IF` condition is missing. Easy to fix and need to add tests as well.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4692/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4689","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/events","html_url":"https://github.com/robotframework/robotframework/issues/4689","id":1623949169,"node_id":"I_kwDOAUSaQ85gy39x","number":4689,"title":"Invalid sections are not represented properly in parsing model","user":{"login":"yanne","id":159146,"node_id":"MDQ6VXNlcjE1OTE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/159146?v=4","gravatar_id":"","url":"https://api.github.com/users/yanne","html_url":"https://github.com/yanne","followers_url":"https://api.github.com/users/yanne/followers","following_url":"https://api.github.com/users/yanne/following{/other_user}","gists_url":"https://api.github.com/users/yanne/gists{/gist_id}","starred_url":"https://api.github.com/users/yanne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanne/subscriptions","organizations_url":"https://api.github.com/users/yanne/orgs","repos_url":"https://api.github.com/users/yanne/repos","events_url":"https://api.github.com/users/yanne/events{/privacy}","received_events_url":"https://api.github.com/users/yanne/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-14T17:10:30Z","updated_at":"2023-03-16T20:38:45Z","closed_at":"2023-03-16T14:53:08Z","author_association":"MEMBER","active_lock_reason":null,"body":"Consider the following test suite:\r\n\r\n```\r\n*** Test cases ***\r\nTest \r\n Log 1\r\n\r\n*** invalid section ***\r\nSomething\r\n```\r\n\r\nThis will produce following AST:\r\n\r\n```\r\nFile(\r\n source='/Users/jth/Code/robotframework/tmp/foo.robot',\r\n languages=(),\r\n lineno=1,\r\n col_offset=0,\r\n end_lineno=5,\r\n end_col_offset=23,\r\n errors=(),\r\n sections=[\r\n TestCaseSection(\r\n lineno=1,\r\n col_offset=0,\r\n end_lineno=5,\r\n end_col_offset=23,\r\n errors=(),\r\n header=SectionHeader(lineno=1, col_offset=0, end_lineno=1, end_col_offset=18, errors=(), type='TESTCASE HEADER', tokens=(Token(TESTCASE_HEADER, '*** Test Cases ***', 1, 0),)),\r\n body=[\r\n TestCase(\r\n lineno=2,\r\n col_offset=0,\r\n end_lineno=3,\r\n end_col_offset=11,\r\n errors=(),\r\n header=TestCaseName(lineno=2, col_offset=0, end_lineno=2, end_col_offset=4, errors=(), type='TESTCASE NAME', tokens=(Token(TESTCASE_NAME, 'Test', 2, 0),)),\r\n body=[KeywordCall(lineno=3, col_offset=3, end_lineno=3, end_col_offset=11, errors=(), type='KEYWORD', tokens=(Token(KEYWORD, 'Log', 3, 3), Token(ARGUMENT, '1', 3, 10)))],\r\n ),\r\n Error(lineno=5, col_offset=0, end_lineno=5, end_col_offset=23, errors=(\"Unrecognized section header '*** invalid section ***'. Valid sections: 'Settings', 'Variables', 'Test Cases', 'Tasks', 'Keywords' and 'Comments'.\",), type='ERROR', tokens=(Token(ERROR, '*** invalid section ***', 5, 0, \"Unrecognized section header '*** invalid section ***'. Valid sections: 'Settings', 'Variables', 'Test Cases', 'Tasks', 'Keywords' and 'Comments'.\"),)),\r\n ],\r\n ),\r\n ],\r\n)\r\n```\r\n\r\nIn the AST, their erroneous header is put inside the TestCase body, which is a bit weird from the AST perspective. \r\nIt would be better to create a separate AST node, InvalidSection, which would contain the data of the invalid section.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4689/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4688","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/events","html_url":"https://github.com/robotframework/robotframework/issues/4688","id":1623508631,"node_id":"I_kwDOAUSaQ85gxMaX","number":4688,"title":"Do not exclude files during parsing if using `--suite` option","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-14T13:42:47Z","updated_at":"2023-06-09T22:54:34Z","closed_at":"2023-05-23T12:55:48Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently when the `--suite` option is used, files not matching the specified suite aren't parsed at all. This is a useful performance optimization, but it doesn't work well with the new `Name` setting (#4583) that allows configuring the suite name in the parsed file itself. In addition to that, suites not being parsed and not thus not being available for pre-run modifiers can cause surprises. To avoid all these issues, it is better to not use `--suite` for limiting what files are parsed at all.\r\n\r\nThis change isn't functionally backwards incompatible, but it obviously affects those who `--suite` to make parsing faster. A precondition to such a change is having an explicit way to limit what files are parsed (#4687).","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4688/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4687","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/events","html_url":"https://github.com/robotframework/robotframework/issues/4687","id":1623494967,"node_id":"I_kwDOAUSaQ85gxJE3","number":4687,"title":"Add explicit command line option to limit which files are parsed","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":229188865,"node_id":"MDU6TGFiZWwyMjkxODg4NjU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/rc%201","name":"rc 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":20,"created_at":"2023-03-14T13:34:52Z","updated_at":"2023-06-05T08:09:00Z","closed_at":"2023-05-29T22:03:06Z","author_association":"MEMBER","active_lock_reason":null,"body":"When execution just some tests from a big directory structure, parsing only relevant files instead of the whole structure makes parsing faster. We don't currently have any explicit option for limiting parsing like that, but when the `--suite` option is used files not matching the specified suite are ignored. This functionality won't work too well in the future, though, if we make it possible to change the suite name using the `Name` setting (#4583). It's also likely that not too many users know about this functionality and the underlying logic to convert file and directory names to suite names for matching purposes is also rather complicated.\r\n\r\nA good way to solve all the above problems is adding a separate command line option or options for controlling what files to parse. Once we have such functionality, we can remove the current performance optimization from `--suite`, a separate option makes the feature easier to discover, and also the code gets simpler. There are some design decisions to be made, though:\r\n\r\n- What should the option be named? I was thinking `--includefiles`, but it has the same prefix as `--include` which would mean that shortened usages like `--incl` that used to be unique wouldn't work anymore. Perhaps `--parsefiles` or just `--files` would be better.\r\n- Should the value be a literal value or should we accept glob patterns? I believe supporting patterns is a good idea.\r\n- Should the value be just a file name or a relative or absolute path to it? I see benefits with both so possibly we could support both usages.\r\n- Should the value include file extension? I believe it should be allowed but preferably not required. If that gets too complicated, always requiring it is probably better.\r\n- Should there be separate option for excluding files? It would make some use cases easier, but I'm not sure is that worth the added complexity.\r\n- Should this option affect only files or also directories? If the option would match a directory, we could automatically include all files under it, recursively. On the other hand, just matching files would be easier to implement and explain.\r\n- Should we have separate options for matching files and directories? That's probably too much, especially if we'd have separate options for including and excluding. If directories are considered important, probably better to implement this so that the same option work with both files and directories.\r\n\r\nThis feature should be implemented before RF 7 where we'd like to change `--suite` so that it doesn't affect parsing. That would give users who need the performance optimization time to update their scripts.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4687/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4684","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/events","html_url":"https://github.com/robotframework/robotframework/issues/4684","id":1621310061,"node_id":"I_kwDOAUSaQ85gozpt","number":4684,"title":"Handle start index with `FOR IN ENUMERATE` loops already in parser","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":0,"created_at":"2023-03-13T11:37:11Z","updated_at":"2023-03-15T12:50:34Z","closed_at":"2023-03-13T15:17:42Z","author_association":"MEMBER","active_lock_reason":null,"body":"We added support for the optional start index in RF 4.0 (#3781). It was implemented so that only the runner object detected that the last iterated value has `start=` prefix and the parser doesn't know anything about it. When similar configuration was added to `WHILE` (`limit`) and `EXCEPT` (`type`), they were already recognized by the parser making the behavior with `start` inconsistent. This should be changed and `start` with `FOR IN ENUMERATE` loops handled by the parser as well.\r\n\r\nHandling `start` in the parser means that the `For` model object in the `TestSuite` structure needs `start` attribute as well. The same `For` is used with all `FOR` loop types and it getting an attribute that only affects one of them is a bit questionable, but I don't consider it too big a problem. We could consider adding separate `ForInEnumerate`, `ForInRange` and `ForInZip` model object, but I consider that too much work compared to benefits at least right now. We also need to add `start` as an attribute to `output.xml`. Changing it always has backwards incompatibility concerns, but tools processing XML files shouldn't be bothered by new attributes so I consider this safe.\r\n\r\nOne reason to do this is that we plan to make `FOR IN ZIP` configurable as well. It's configuration options should definitely be handled by the parser and in that case `FOR IN ENUMERATE` behaving differently would be really weird.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4684/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4683","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/events","html_url":"https://github.com/robotframework/robotframework/issues/4683","id":1621271832,"node_id":"I_kwDOAUSaQ85goqUY","number":4683,"title":"Report syntax errors better in log file","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":113657783,"node_id":"MDU6TGFiZWwxMTM2NTc3ODM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/backwards%20incompatible","name":"backwards incompatible","color":"fbca04","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":{"login":"yanne","id":159146,"node_id":"MDQ6VXNlcjE1OTE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/159146?v=4","gravatar_id":"","url":"https://api.github.com/users/yanne","html_url":"https://github.com/yanne","followers_url":"https://api.github.com/users/yanne/followers","following_url":"https://api.github.com/users/yanne/following{/other_user}","gists_url":"https://api.github.com/users/yanne/gists{/gist_id}","starred_url":"https://api.github.com/users/yanne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanne/subscriptions","organizations_url":"https://api.github.com/users/yanne/orgs","repos_url":"https://api.github.com/users/yanne/repos","events_url":"https://api.github.com/users/yanne/events{/privacy}","received_events_url":"https://api.github.com/users/yanne/received_events","type":"User","site_admin":false},"assignees":[{"login":"yanne","id":159146,"node_id":"MDQ6VXNlcjE1OTE0Ng==","avatar_url":"https://avatars.githubusercontent.com/u/159146?v=4","gravatar_id":"","url":"https://api.github.com/users/yanne","html_url":"https://github.com/yanne","followers_url":"https://api.github.com/users/yanne/followers","following_url":"https://api.github.com/users/yanne/following{/other_user}","gists_url":"https://api.github.com/users/yanne/gists{/gist_id}","starred_url":"https://api.github.com/users/yanne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanne/subscriptions","organizations_url":"https://api.github.com/users/yanne/orgs","repos_url":"https://api.github.com/users/yanne/repos","events_url":"https://api.github.com/users/yanne/events{/privacy}","received_events_url":"https://api.github.com/users/yanne/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":1,"created_at":"2023-03-13T11:12:08Z","updated_at":"2023-03-15T12:50:34Z","closed_at":"2023-03-14T17:01:01Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently when you have an invalid setting like `[Setpu]` in a test (or keyword, or task), error is reported on the console, but the test is nevertheless executed and in the log file the invalid setting isn't visible under the test at all. This isn't great. It would be better if the invalid setting would be visible under the test in the log file and it should also fail the test.\r\n\r\nA similar situation occurs with invalid syntax like `END` or `ELSE` without an opening `IF`. At the moment such invalid syntax is considered to be a keyword. We have `Reserved` library that contains matching keywords, so when these \"keywords\" are run they fail. Invalid syntax reported as failing keywords is odd and the resulting error messages aren't great either. A part of #4210 is detecting this kind of invalid syntax already at the parsing time, but we need to also show them in the log file somehow.\r\n\r\nA solution to both of these error reporting issues is adding new `Error` object to our `TestSuite` structure. When the parser detects invalid syntax, it can create such objects, and when they are run they can simply fail. These errors should create new `` elements to output.xml and they obviously need to be show in log.html as well.\r\n\r\nA problem with this enhancement is that it's not fully backwards compatible:\r\n- Invalid settings like `[Setpu]` don't currently affect test status, but in the future they will fail the test. An obvious solution for this kind of problem is not having such invalid settings in tests in the first place.\r\n- External tools parsing output.xml need to take `` elements into account. In general such tools should ignore elements they don't recognize, but there certainly can be tools that don't behave like that.\r\n- Tools working with the `TestSuite` model need to take new `Error` objects into account.\r\n\r\nInvalid syntax failing a test isn't a big concern for me, but this change possibly breaking external tools is a lot bigger problem. I don't see any other ways this could be handed, though. Doing the change in a non-major version is a bit questionable, but I don't think postponing this change to RF 7 (or changing RF 6.1 to RF 7) is a good idea either. We just need to inform external tool developers about this change in release notes and possibly also otherwise.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4683/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4682","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/events","html_url":"https://github.com/robotframework/robotframework/issues/4682","id":1620330369,"node_id":"I_kwDOAUSaQ85glEeB","number":4682,"title":"Make `FOR IN ZIP` loop behavior if lists have different lengths configurable","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-03-12T11:33:21Z","updated_at":"2023-03-15T12:50:33Z","closed_at":"2023-03-13T23:34:12Z","author_association":"MEMBER","active_lock_reason":null,"body":"Robot `FOR IN ZIP` loop behaves like Python's [zip](https://docs.python.org/3/library/functions.html#zip) so that if lists lengths aren't the same, items from the longest one are ignored. For example, the following loop would be executed only twice:\r\n\r\n```robotframework\r\n*** Variables ***\r\n@{ANIMALS} dog cat horse cow elephant\r\n@{ELÄIMET} koira kissa\r\n\r\n*** Test Cases ***\r\nExample\r\n FOR ${en} ${fi} IN ZIP ${ANIMALS} ${ELÄIMET}\r\n Log ${en} is ${fi} in Finnish\r\n END\r\n```\r\n\r\nThis behavior can cause problems when iterating over items received from the automated system. For example, the following test would pass regardless how many things `Get something` returns as long as the returned items match the expected values. The example even succeeds if `Get something` nothing.\r\n\r\n```robotframework\r\n*** Test Cases ***\r\nExample\r\n Validate something expected 1 expected 2 expected 3\r\n\r\n*** Keywords ****\r\nValidate something\r\n [Arguments] @{expected}\r\n @{actual} = Get something\r\n FOR ${act} ${exp} IN ZIP ${actual} ${expected}\r\n Validate one thing ${act} ${exp}\r\n END\r\n```\r\n\r\nTo avoid the above example failing if `Get something` returns more or less values than expected, a separate check needs to be added. Because there's no ready-made keyword for checking are list lengths equal (`Lists should be equal` keyword doesn't work here), the validation needs to use something bit more complicated like this:\r\n```\r\n Should be equal ${{len($actual)}} ${{len($expected)}}\r\n```\r\nFor a real life example see [this example](https://github.com/robotframework/robotframework/blob/f7ee913622e60c0cf630e1580c2bb58c57100187/atest/robot/running/if/invalid_if.robot#L119) from out acceptance tests. Tests also contain various `FOR IN ZIP` usages where this particular issue could cause problems.\r\n\r\nThis same underlying issues has caused problems with Python's `zip` as well. Starting from Python 3.10 (see [PEP 619](https://peps.python.org/pep-0618/) `zip` has new `strict` parameter that can be used like `zip(actual, expected, strict=True)`. It causes a `ValueError` to be raised if iterated lists have different lengths. Related to this, Python also has separate [itertools.zip_longest](https://docs.python.org/3/library/itertools.html#itertools.zip_longest) that goes through all items in all lists so that if certain list has less value than others, value specified with the `fillvalue` argument is used instead.\r\n\r\nMy proposal is that we add new `mode` configuration option to `FOR IN ZIP` loops. The motivation is that we could have three values `shortest`, `strict` and `longest` emulating Python's behavior with `zip(...)`, `zip(..., strict=True=`), and `zip_longest(...)`, respectively. This was also [considered with Python](https://peps.python.org/pep-0618/#add-several-modes-to-switch-between), but they decided to go with a Boolean option `strict` partly because they already have a separate `zip_longest`.\r\n\r\nAnother reason `mode` wasn't used with Python is that to properly support the `longest` case, it would require adding `fillvalue` that doesn't make sense with other modes. That's a valid concern in our case as well, but I don't consider it too big a problem. We don't at the moment support the `longest` case at all, so this would instead be a nice enhancement and a lot better syntax than separate `FOR IN ZIP LONGEST` would be.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4682/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4680","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/events","html_url":"https://github.com/robotframework/robotframework/issues/4680","id":1620223756,"node_id":"I_kwDOAUSaQ85gkqcM","number":4680,"title":"User Guide generation broken on Windows","user":{"login":"sunday2","id":20227068,"node_id":"MDQ6VXNlcjIwMjI3MDY4","avatar_url":"https://avatars.githubusercontent.com/u/20227068?v=4","gravatar_id":"","url":"https://api.github.com/users/sunday2","html_url":"https://github.com/sunday2","followers_url":"https://api.github.com/users/sunday2/followers","following_url":"https://api.github.com/users/sunday2/following{/other_user}","gists_url":"https://api.github.com/users/sunday2/gists{/gist_id}","starred_url":"https://api.github.com/users/sunday2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sunday2/subscriptions","organizations_url":"https://api.github.com/users/sunday2/orgs","repos_url":"https://api.github.com/users/sunday2/repos","events_url":"https://api.github.com/users/sunday2/events{/privacy}","received_events_url":"https://api.github.com/users/sunday2/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":911065884,"node_id":"MDU6TGFiZWw5MTEwNjU4ODQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/acknowledge","name":"acknowledge","color":"bc82e0","default":false,"description":"To be acknowledged in release notes"},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-03-12T03:46:47Z","updated_at":"2023-03-20T12:36:05Z","closed_at":"2023-03-14T00:28:23Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"env: \r\nplatform: Windows 10 Pro\r\npython: 3.7\r\nRF: master branch\r\n\r\nproblem: when calling the script ug2html.py to generate the RF user guide, encoutered the following encoding issue, \r\n![image](https://user-images.githubusercontent.com/20227068/224522445-08e798de-37ba-4279-8e0f-3cfa74b00e0e.png)\r\nthis may due to this function:\r\n\r\n`doc.userguide.translations.update`\r\n```python\r\ndef update(path: Path, content):\r\n source = path.read_text(encoding='UTF-8').splitlines()\r\n with open(path, 'w') as file:\r\n write(source, file, end_marker='.. START GENERATED CONTENT')\r\n file.write('.. Generated by translations.py used by ug2html.py.\\n')\r\n write(content, file)\r\n write(source, file, start_marker='.. END GENERATED CONTENT')\r\n```\r\nwhen calling the open function, does not specify the encoding, the default encoding will be platform dependent. In my case, the encoding cp1252 will be used, this issue happened when write the content that was Bg language and other languages will also meet this issue if cp1252 not support them.\r\n\r\npossible solution: \r\nspecify the encoding to be 'utf-8' when open the file.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4680/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4676","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/events","html_url":"https://github.com/robotframework/robotframework/issues/4676","id":1613777283,"node_id":"I_kwDOAUSaQ85gMEmD","number":4676,"title":"Propose using `$var` syntax if evaluation IF or WHILE condition using `${var}` fails","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972223712,"node_id":"LA_kwDOAUSaQ88AAAABKF4c4A","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20medium","name":"effort: medium","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-03-07T16:18:50Z","updated_at":"2023-03-15T12:50:32Z","closed_at":"2023-03-10T20:45:44Z","author_association":"MEMBER","active_lock_reason":null,"body":"A common error when evaluating expressions with IF or otherwise is using something like\r\n```\r\nIF ${x} == 'expected'\r\n Keyword\r\nEND\r\n```\r\nwhen the variable `${x}` contains a string. Normal variables are resolved _before_ evaluating the expression, so if `${x}` contains a string `value`, the evaluated expression will be `value == 'expected'`. Evaluating it fails because `value` isn't quoted, it's thus considered a variable in Python, and no such variable exists. The resulting error is this:\r\n\r\n> Evaluating IF condition failed: Evaluating expression 'value == 'expected'' failed: NameError: name 'value' is not defined nor importable as module\r\n\r\nOne solution to this problem is quoting the variable like `'${x}' == 'expected'`, but that doesn't work if the variable value contains quotes or newlines. A better solution is using the special `$var` syntax like `$x == 'value'` that makes the variable available in the Python evaluation namespace (#2040). All this is explained in the [User Guide](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#evaluating-expressions), but there are many users who don't know about this and struggle with the syntax.\r\n\r\nBecause this is a such a common error, we should make the error more informative if the expression contains \"normal\" variables. We could, for example, show also the original expression and recommend quoting or using the \"special\" variable syntax. Possibly it could look like this:\r\n\r\n> Evaluating IF condition failed: Evaluating expression 'value == 'expected'' failed: NameError: name 'value' is not defined nor importable as module\r\n> The original expression was '${x} == 'expected''. Try using the '$var' syntax like '$x == 'expected'' to avoid resolving variables before the expression is evaluated. See the Evaluating expression appendix in the User Guide for more details.\r\n\r\nThere are few problems implementing this:\r\n1. Variables are solved before the [evaluate_expression](https://github.com/robotframework/robotframework/blob/master/src/robot/variables/evaluation.py#L31) is called so this function doesn't know the original expression nor did it contain variables. This information needs to be passed to it, but in same cases (at least with inline Python evaluation) it isn't that easy.\r\n2. It's not easy to detect when exactly this extra information should be included into the error. Including it always when evaluating the expression fails can add confusion when the error isn't related to variables. It would probably better to include it only if evaluation fails for a NameError, but also in that case you could have an expression like `'${x}' == value` where the variable likely isn't a problem. We could try some heuristics to see what causes the error, but that's probably too much work compared to including the extra info in some cases where it's not needed.\r\n3. Coming up with a good but somewhat short error message isn't easy. I'm not totally happy with the above, but I guess it would be better than nothing.\r\n\r\nBecause this extra info is added only if evaluation fails, this should be a totally backwards compatible change. It would be nice to include it already into RF 6.1, but that release is already about to be late and this isn't that easy to implement, so RF 6.2 is probably a better target. If someone is interested to look at this, including it already into RF 6.1 ought to be possible.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4676/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4670","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/events","html_url":"https://github.com/robotframework/robotframework/issues/4670","id":1609324383,"node_id":"I_kwDOAUSaQ85f7Fdf","number":4670,"title":"Parsing model: `Documentation.from_params(...).value` doesn't work","user":{"login":"d-biehl","id":7069968,"node_id":"MDQ6VXNlcjcwNjk5Njg=","avatar_url":"https://avatars.githubusercontent.com/u/7069968?v=4","gravatar_id":"","url":"https://api.github.com/users/d-biehl","html_url":"https://github.com/d-biehl","followers_url":"https://api.github.com/users/d-biehl/followers","following_url":"https://api.github.com/users/d-biehl/following{/other_user}","gists_url":"https://api.github.com/users/d-biehl/gists{/gist_id}","starred_url":"https://api.github.com/users/d-biehl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-biehl/subscriptions","organizations_url":"https://api.github.com/users/d-biehl/orgs","repos_url":"https://api.github.com/users/d-biehl/repos","events_url":"https://api.github.com/users/d-biehl/events{/privacy}","received_events_url":"https://api.github.com/users/d-biehl/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":219378453,"node_id":"MDU6TGFiZWwyMTkzNzg0NTM=","url":"https://api.github.com/repos/robotframework/robotframework/labels/beta%201","name":"beta 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":10,"created_at":"2023-03-03T22:17:29Z","updated_at":"2023-05-05T13:54:00Z","closed_at":"2023-03-21T09:02:42Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Documentation.from_params(...) has problems with multiline values and empty lines.\r\n\r\nMust be investigated more closely and there must be more tests about this.\r\n\r\nhttps://github.com/robotframework/robotframework/blob/c80464b98f1efff1d966865eddec6120cf95ad18/src/robot/parsing/model/statements.py#L166\r\n\r\nRevert this commit 0c5d7f1fcac4ef9bd0178df27528e985af7dafb6 from \"custom parsers\" #4614 because it should be fixed independently.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4670/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4666","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/events","html_url":"https://github.com/robotframework/robotframework/issues/4666","id":1599753572,"node_id":"I_kwDOAUSaQ85fWk1k","number":4666,"title":"Add public API to query is Robot running and is dry-run active","user":{"login":"Snooz82","id":41592183,"node_id":"MDQ6VXNlcjQxNTkyMTgz","avatar_url":"https://avatars.githubusercontent.com/u/41592183?v=4","gravatar_id":"","url":"https://api.github.com/users/Snooz82","html_url":"https://github.com/Snooz82","followers_url":"https://api.github.com/users/Snooz82/followers","following_url":"https://api.github.com/users/Snooz82/following{/other_user}","gists_url":"https://api.github.com/users/Snooz82/gists{/gist_id}","starred_url":"https://api.github.com/users/Snooz82/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Snooz82/subscriptions","organizations_url":"https://api.github.com/users/Snooz82/orgs","repos_url":"https://api.github.com/users/Snooz82/repos","events_url":"https://api.github.com/users/Snooz82/events{/privacy}","received_events_url":"https://api.github.com/users/Snooz82/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""},{"id":175630288,"node_id":"MDU6TGFiZWwxNzU2MzAyODg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/alpha%201","name":"alpha 1","color":"ffffff","default":false,"description":""},{"id":4972220183,"node_id":"LA_kwDOAUSaQ88AAAABKF4PFw","url":"https://api.github.com/repos/robotframework/robotframework/labels/effort:%20small","name":"effort: small","color":"5319E7","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/65","html_url":"https://github.com/robotframework/robotframework/milestone/65","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/65/labels","id":8098814,"node_id":"MI_kwDOAUSaQ84Ae5P-","number":65,"title":"v6.1","description":"Feature release adding JSON serialization support for the execution model (#3902), mixing embedded arguments with normal arguments (#4234), making it possible to use custom parsers (#1283), and many other nice new features.\r\n\r\nCritical and high priority issues, as well as the deadline, have been approved by Robot Framework Foundation board on January 16, 2023.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":77,"state":"closed","created_at":"2022-06-20T15:09:49Z","updated_at":"2023-06-12T09:40:06Z","due_on":"2023-06-12T07:00:00Z","closed_at":"2023-06-12T09:40:06Z"},"comments":2,"created_at":"2023-02-25T16:09:46Z","updated_at":"2023-03-15T12:50:31Z","closed_at":"2023-02-28T16:40:33Z","author_association":"MEMBER","active_lock_reason":null,"body":"For libraries it would be helpful to know if RF is running, or if a library is just imported as python package or by libdoc, which also would be the case when language servers would analyze them.\n\nhttps://robotframework.slack.com/archives/C0K0240NL/p1677318363986369\n\nProposal would be two boolean properties either in BuiltIn or robot.api?!\n\n`robot_running` or `robot_is_running` would be True if there is an execution context.\n`dry_run_active` or `dryrun_is_active` would be True if there is a running context and the dryrun is ongoing.\n\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4666/timeline","performed_via_github_app":{"id":7100,"slug":"slack","node_id":"MDM6QXBwNzEwMA==","owner":{"login":"github","id":9919,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk5MTk=","avatar_url":"https://avatars.githubusercontent.com/u/9919?v=4","gravatar_id":"","url":"https://api.github.com/users/github","html_url":"https://github.com/github","followers_url":"https://api.github.com/users/github/followers","following_url":"https://api.github.com/users/github/following{/other_user}","gists_url":"https://api.github.com/users/github/gists{/gist_id}","starred_url":"https://api.github.com/users/github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/github/subscriptions","organizations_url":"https://api.github.com/users/github/orgs","repos_url":"https://api.github.com/users/github/repos","events_url":"https://api.github.com/users/github/events{/privacy}","received_events_url":"https://api.github.com/users/github/received_events","type":"Organization","site_admin":false},"name":"Slack","description":"Connect your code to your conversations; stay updated on projects, fix bugs, and move more work forward—without leaving Slack.\r\n\r\n[Learn more and get started](https://slack.github.com/)\r\n\r\nBy installing or using the app, you agree to the [Terms and Conditions](https://github.com/integrations/slack/blob/master/docs/terms-and-conditions.md).","external_url":"https://slack.github.com/","html_url":"https://github.com/apps/slack","created_at":"2017-11-30T02:22:47Z","updated_at":"2022-12-05T10:09:47Z","permissions":{"actions":"write","checks":"read","contents":"read","deployments":"write","discussions":"read","issues":"write","metadata":"read","pull_requests":"write","repository_projects":"read","statuses":"read"},"events":["check_run","check_suite","commit_comment","create","delete","deployment","deployment_review","deployment_status","discussion","discussion_comment","issues","issue_comment","public","pull_request","pull_request_review","pull_request_review_comment","push","release","reminder","repository","repository_dispatch","status","watch","workflow_job","workflow_run"]},"state_reason":"completed","score":1}]}},{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z","issues":{"total_count":7,"incomplete_results":false,"items":[{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4525","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/events","html_url":"https://github.com/robotframework/robotframework/issues/4525","id":1429929274,"node_id":"I_kwDOAUSaQ85VOv06","number":4525,"title":"Wrong version numbers used in the User Guide and in a deprecation warning","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-31T14:20:19Z","updated_at":"2022-10-31T14:24:24Z","closed_at":"2022-10-31T14:24:24Z","author_association":"MEMBER","active_lock_reason":null,"body":"We decided to change version number of RF 5.1 to RF 6.0 pretty close to the final release. I tried to update docs and code so that they'd use correct version numbers, but missed few places:\r\n\r\n- The User Guide talks about deprecating Force Tags and Default Tags in RF 6.0 when in fact that will happen (earliest) in RF 7.0.\r\n- The User Guide explains that `-tag` syntax can be used for removing tags in RF 5.2 but that's going to happen in RF 6.1.\r\n- A deprecation warning about using `-tag` syntax also says that behavior will be changed in RF 5.2.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4525/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4523","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/events","html_url":"https://github.com/robotframework/robotframework/issues/4523","id":1428745818,"node_id":"I_kwDOAUSaQ85VKO5a","number":4523,"title":"Unit test `test_parse_time_with_now_and_utc` fails around DST change","user":{"login":"fedepell","id":19709142,"node_id":"MDQ6VXNlcjE5NzA5MTQy","avatar_url":"https://avatars.githubusercontent.com/u/19709142?v=4","gravatar_id":"","url":"https://api.github.com/users/fedepell","html_url":"https://github.com/fedepell","followers_url":"https://api.github.com/users/fedepell/followers","following_url":"https://api.github.com/users/fedepell/following{/other_user}","gists_url":"https://api.github.com/users/fedepell/gists{/gist_id}","starred_url":"https://api.github.com/users/fedepell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fedepell/subscriptions","organizations_url":"https://api.github.com/users/fedepell/orgs","repos_url":"https://api.github.com/users/fedepell/repos","events_url":"https://api.github.com/users/fedepell/events{/privacy}","received_events_url":"https://api.github.com/users/fedepell/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430514,"node_id":"MDU6TGFiZWwxMTA0MzA1MTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20low","name":"priority: low","color":"41ae76","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":1,"created_at":"2022-10-30T11:37:08Z","updated_at":"2022-10-30T18:36:13Z","closed_at":"2022-10-30T18:35:22Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"Very minor but reporting as it was creating me headaches, running tests just exactly _today_.\r\n\r\nIt seems to me that the `test_parse_time_with_now_and_utc` test will fail if run just on the day of DST change (ie. **today**) or the day before as they are doing comparisons with +/- 1 day and a hardcoded seconds difference value, which is incorrect if the DST happens between the two cases compared.\r\n\r\nSpecifically today (last night DST changed here) I see failing those tests:\r\n```\r\n ('now - 1 day 100 seconds',-86500),\r\n ('NOW - 1D 10H 1MIN 10S', -122470)]:\r\n``` \r\nProbably yesterday (so just before DST change) would be the ones with `+`.\r\n\r\nAs written above I'm not sure this is worth investigating and fixing, but just wanted to report as it gave me by chance some worries while rebuilding and retesting the new version of Robotframework. I will just redo the tests tomorrow ;-)\r\n\r\n\r\n**Version Information:**\r\nTried with both 6.0 and 5.0.1\r\n\r\n**Steps to reproduce:**\r\nRun the unit tests, specifically on the day immediately before or after DST change.\r\n\r\n**Error message and traceback:**\r\n```\r\n======================================================================\r\nFAIL: test_parse_time_with_now_and_utc (test_robottime.TestTime)\r\n----------------------------------------------------------------------\r\nTraceback (most recent call last):\r\n File \"/home/foo/rpmbuild/BUILD/robotframework-6.0/utest/utils/test_robottime.py\", line 341, in test_parse_time_with_now_and_utc\r\n assert_true(expected <= parsed <= expected + 1),\r\n File \"/home/foo/rpmbuild/BUILD/robotframework-6.0/utest/../src/robot/utils/asserts.py\", line 115, in assert_true\r\n _report_failure(msg)\r\n File \"/home/foo/rpmbuild/BUILD/robotframework-6.0/utest/../src/robot/utils/asserts.py\", line 218, in _report_failure\r\n raise AssertionError()\r\nAssertionError\r\n\r\n----------------------------------------------------------------------\r\n``` \r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4523/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4521","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/events","html_url":"https://github.com/robotframework/robotframework/issues/4521","id":1427104832,"node_id":"I_kwDOAUSaQ85VD-RA","number":4521,"title":"Enhance `robot.utils.timestr_to_secs` so that it works with `timedelta` objects","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-28T11:15:48Z","updated_at":"2022-10-28T11:41:05Z","closed_at":"2022-10-28T11:41:05Z","author_association":"MEMBER","active_lock_reason":null,"body":"This would have avoided MarketSquare/robotframework-browser#2402.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4521/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4520","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/events","html_url":"https://github.com/robotframework/robotframework/issues/4520","id":1427066989,"node_id":"I_kwDOAUSaQ85VD1Bt","number":4520,"title":"Document Libdoc's public API better","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013647,"node_id":"MDU6TGFiZWwxMTAwMTM2NDc=","url":"https://api.github.com/repos/robotframework/robotframework/labels/enhancement","name":"enhancement","color":"a2eeef","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-28T10:43:06Z","updated_at":"2022-10-28T11:13:28Z","closed_at":"2022-10-28T11:02:49Z","author_association":"MEMBER","active_lock_reason":null,"body":"Currently `robot.libdoc` API docs mention that `libdoc` and `libdoc_cli` functions are public and that everything else is private. `robot.libdocpkg` just tells that the whole package is private. We also have `LibradyDocumentation` factory method that external tools can use but it's not declared public. Enhancements to be done:\r\n\r\n- Document that `LibradyDocumentation` is part of the public API.\r\n- Recommend importing it via `robot.libdoc`. This also needs a test.\r\n- Add documentation to `LibradyDocumentation`. Needs an example and reference to the returned `LibraryDoc` class.\r\n- Add at least some documentation to `LibraryDoc` and `KeywordDoc`.\r\n- Document that related `DocumentationBuilder` (see also #4519) is not part of the public API.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4520/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4519","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/events","html_url":"https://github.com/robotframework/robotframework/issues/4519","id":1427059550,"node_id":"I_kwDOAUSaQ85VDzNe","number":4519,"title":"Libdoc's `DocumentationBuilder` doesn't anymore work with resource files with `.robot` extension","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430378,"node_id":"MDU6TGFiZWwxMTA0MzAzNzg=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20medium","name":"priority: medium","color":"238b45","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":0,"created_at":"2022-10-28T10:36:45Z","updated_at":"2022-10-28T11:02:50Z","closed_at":"2022-10-28T11:02:50Z","author_association":"MEMBER","active_lock_reason":null,"body":"When support for generating documentation for suite files was added (#4493), the `DocumentationBuilder` factory method was changed so that it returns a `SuiteDocBuilder` with all files having a `.robot` extension. This builder only works with suite files and not with resource files. The `LibraryDocumentation` factory method that uses `DocumentationBuilder` handles this problem internally similarly as it handles `DocumentationBuilder` not supporting resource files in PYTHONPATH so this doesn't affect Libdoc itself. It does, however, affect direct usage of `DocumentationBuilder`.\r\n\r\nChanges like this are always annoying, but in this case this isn't too severe because `DocumentationBuilder` isn't really part of the public API and `LibraryDocumentation` should be used instead of it. Alternatively, it's possible to use `ResourceDocBuilder` explicitly when working with resource files. The initial plan was to just document this behavior (#4517), but it is actually easy to fix this by making `DocumentationBuilder` a class instead of a factory method.\r\n\r\nA related problem is that Libdoc's public API isn't properly defined. A separate issue needs to be submitted about that. We can then explicitly recommend `LibraryDocumentation`.\r\n","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4519/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4516","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/events","html_url":"https://github.com/robotframework/robotframework/issues/4516","id":1424167138,"node_id":"I_kwDOAUSaQ85U4xDi","number":4516,"title":"`Set Library Search Order` doesn't work if there are two matches and one is from standard libraries","user":{"login":"jaasal","id":39295284,"node_id":"MDQ6VXNlcjM5Mjk1Mjg0","avatar_url":"https://avatars.githubusercontent.com/u/39295284?v=4","gravatar_id":"","url":"https://api.github.com/users/jaasal","html_url":"https://github.com/jaasal","followers_url":"https://api.github.com/users/jaasal/followers","following_url":"https://api.github.com/users/jaasal/following{/other_user}","gists_url":"https://api.github.com/users/jaasal/gists{/gist_id}","starred_url":"https://api.github.com/users/jaasal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaasal/subscriptions","organizations_url":"https://api.github.com/users/jaasal/orgs","repos_url":"https://api.github.com/users/jaasal/repos","events_url":"https://api.github.com/users/jaasal/events{/privacy}","received_events_url":"https://api.github.com/users/jaasal/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":4,"created_at":"2022-10-26T14:40:56Z","updated_at":"2022-10-27T18:07:42Z","closed_at":"2022-10-27T18:05:35Z","author_association":"NONE","active_lock_reason":null,"body":"Versions: Robot Framework 6.0, Python 3.8.10, Windows 10\r\nPrerequisites: robotframework-sshlibrary installed\r\n\r\nExecute the following test:\r\n```\r\n*** Settings ***\r\nLibrary SSHLibrary\r\nLibrary OperatingSystem\r\n\r\n*** Test Cases ***\r\nTest Library Search Order\r\n Set Library Search Order OperatingSystem SSHLibrary \r\n Get File ./foo.txt\r\n```\r\n\r\nExpected: Get File -keyword from OperatingSystem is executed\r\nActual: Warning about duplicate keywords is shown, Get File -keyword from SSHLibrary is executed","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/reactions","total_count":1,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":1},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4516/timeline","performed_via_github_app":null,"state_reason":"completed","score":1},{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4515","repository_url":"https://api.github.com/repos/robotframework/robotframework","labels_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/labels{/name}","comments_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/comments","events_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/events","html_url":"https://github.com/robotframework/robotframework/issues/4515","id":1416952503,"node_id":"I_kwDOAUSaQ85UdPq3","number":4515,"title":"Localized BDD prefixes consisting of more than one word don't work","user":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"labels":[{"id":110013645,"node_id":"MDU6TGFiZWwxMTAwMTM2NDU=","url":"https://api.github.com/repos/robotframework/robotframework/labels/bug","name":"bug","color":"d73a4a","default":true,"description":""},{"id":110430354,"node_id":"MDU6TGFiZWwxMTA0MzAzNTQ=","url":"https://api.github.com/repos/robotframework/robotframework/labels/priority:%20high","name":"priority: high","color":"006d2c","default":false,"description":""}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/robotframework/robotframework/milestones/66","html_url":"https://github.com/robotframework/robotframework/milestone/66","labels_url":"https://api.github.com/repos/robotframework/robotframework/milestones/66/labels","id":8563398,"node_id":"MI_kwDOAUSaQ84AgqrG","number":66,"title":"v6.0.1","description":"First RF 6.0.x series bug fix release.","creator":{"login":"pekkaklarck","id":114985,"node_id":"MDQ6VXNlcjExNDk4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/114985?v=4","gravatar_id":"","url":"https://api.github.com/users/pekkaklarck","html_url":"https://github.com/pekkaklarck","followers_url":"https://api.github.com/users/pekkaklarck/followers","following_url":"https://api.github.com/users/pekkaklarck/following{/other_user}","gists_url":"https://api.github.com/users/pekkaklarck/gists{/gist_id}","starred_url":"https://api.github.com/users/pekkaklarck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pekkaklarck/subscriptions","organizations_url":"https://api.github.com/users/pekkaklarck/orgs","repos_url":"https://api.github.com/users/pekkaklarck/repos","events_url":"https://api.github.com/users/pekkaklarck/events{/privacy}","received_events_url":"https://api.github.com/users/pekkaklarck/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":7,"state":"closed","created_at":"2022-10-20T16:46:25Z","updated_at":"2022-11-03T16:42:33Z","due_on":"2022-11-02T07:00:00Z","closed_at":"2022-11-03T16:42:33Z"},"comments":2,"created_at":"2022-10-20T16:50:46Z","updated_at":"2022-11-03T16:00:50Z","closed_at":"2022-10-28T11:42:45Z","author_association":"MEMBER","active_lock_reason":null,"body":"RF 6.0 added support for localizing Given/When/Then prefixes (#519). The implementation has a bug and prefixes consisting of more than one word like `Étant donné` in French don't work. Other affected languages are Polish, Turkish, Bulgarian and Romanian.\r\n\r\nThis is severe enough to warrant a bug fix release bug not so critical that such a release would be needed immediately.","reactions":{"url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/robotframework/robotframework/issues/4515/timeline","performed_via_github_app":null,"state_reason":"completed","score":1}]}}] \ No newline at end of file diff --git a/livedata/stars.js b/livedata/stars.js index b1283483..f3f47e68 100644 --- a/livedata/stars.js +++ b/livedata/stars.js @@ -1 +1 @@ -[{"name":"serhatbolsu/robotframework-appiumlibrary","stars":376},{"name":"MarketSquare/robotframework-archivelibrary","stars":22},{"name":"nokia/robotframework-autoitlibrary","stars":34},{"name":"sebastianciupinski/robotframework-autorecorder","stars":7},{"name":"MarketSquare/robotframework-browser","stars":473},{"name":"eficode/robotframework-cnclibrary","stars":12},{"name":"robooo/robotframework-ConfluentKafkaLibrary","stars":29},{"name":"Openwide-Ingenierie/robotframework-can-uds-library","stars":33},{"name":"MarketSquare/robotframework-dblibrary","stars":12},{"name":"MarketSquare/Robotframework-Database-Library","stars":146},{"name":"Snooz82/robotframework-datadriver","stars":121},{"name":"xyb/robotframework-debuglibrary","stars":101},{"name":"mentalisttraceur/robotframework-dependencylibrary","stars":14},{"name":"MarketSquare/robotframework-difflibrary","stars":23},{"name":"kitconcept/robotframework-djangolibrary","stars":38},{"name":"manykarim/robotframework-doctestlibrary","stars":41},{"name":"sebastianciupinski/robotframework-doesislibrary","stars":1},{"name":"lcarbonn/robotframework-eclipselibrary","stars":8},{"name":"kowalpy/Robot-Framework-FTP-Library","stars":7},{"name":"MarketSquare/robotframework-requests","stars":469},{"name":"MarketSquare/robotframework-httprequestlibrary","stars":21},{"name":"eficode/robotframework-imagehorizonlibrary","stars":73},{"name":"eficode/JavaFXLibrary","stars":21},{"name":"madworx/robotframework-kicadlibrary","stars":7},{"name":"sebastianciupinski/robotframework-listenerlibrary","stars":3},{"name":"Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library","stars":39},{"name":"randomsync/robotframework-mqttlibrary","stars":23},{"name":"adeliogullari/robotframework-oracledb-library","stars":9},{"name":"qahive/robotframework-puppeteer","stars":55},{"name":"qentinelqi/qweb","stars":36},{"name":"robotframework/Rammbock","stars":62},{"name":"robotframework/remoteswinglibrary","stars":31},{"name":"asyrjasalo/RESTinstance","stars":198},{"name":"MarketSquare/robotframework-faker","stars":62},{"name":"GDATASoftwareAG/robotframework-flaui","stars":49},{"name":"noubar/RobotFramework-MailClientLibrary","stars":1},{"name":"frankvanderkuur/robotframework-sapguilibrary","stars":47},{"name":"imbus/robotframework-robosapiens","stars":5},{"name":"rticau/ScreenCapLibrary","stars":37},{"name":"MarketSquare/robotframework-seleniumscreenshots","stars":11},{"name":"robotframework/SeleniumLibrary","stars":1333},{"name":"MarketSquare/robotframework-seleniumlibrary-java","stars":23},{"name":"rainmanwy/robotframework-SikuliLibrary","stars":142},{"name":"Altran-PT-GDC/Robot-Framework-SOAP-Library","stars":18},{"name":"robotframework/SSHLibrary","stars":146},{"name":"robotframework/SwingLibrary","stars":110},{"name":"Altran-PT-GDC/Robot-Framework-Test-FX-Library","stars":19},{"name":"kowalpy/Robot-Framework-TFTP-Library","stars":3},{"name":"Adwisit/WADLibrary","stars":18},{"name":"Accruent/robotframework-zoomba","stars":137},{"name":"robotframework/PythonLibCore","stars":56},{"name":"robotframework/JavalibCore","stars":42},{"name":"robotframework/RemoteApplications","stars":12},{"name":"plone/plone.app.robotframework","stars":11},{"name":"Tesena-smart-testing/WatchUI","stars":53},{"name":"robotframework/RIDE","stars":931},{"name":"wingyplus/language-robot-framework","stars":26},{"name":"boakley/brackets-robotframework","stars":20},{"name":"d-biehl/robotcode","stars":157},{"name":"sakari/robot-mode","stars":30},{"name":"vkosuri/gedit-robot","stars":0},{"name":"vkosuri/npp-robot","stars":31},{"name":"andriyko/sublime-robot-framework-assistant","stars":110},{"name":"shellderp/sublime-robot-plugin","stars":26},{"name":"mfukar/robotframework-vim","stars":90},{"name":"jenkinsci/robot-plugin","stars":61},{"name":"robotframework/MavenPlugin","stars":24},{"name":"lcarbonn/robotframework-ant","stars":3},{"name":"robotframework/DbBot","stars":59},{"name":"rajeevnaikte/distbot","stars":21},{"name":"robotframework/mabot","stars":12},{"name":"eficode/robotframework-oxygen","stars":25},{"name":"mkorpela/pabot","stars":456},{"name":"robocorp/rcc","stars":410},{"name":"robotframework/rfdoc","stars":15},{"name":"damies13/rfswarm","stars":101},{"name":"sohwendy/Robotcorder","stars":85},{"name":"boakley/robotframework-hub","stars":169},{"name":"MarketSquare/robotframework-robocop","stars":167},{"name":"elabit/robotmk","stars":51},{"name":"robotframework/statuschecker","stars":26},{"name":"jg8481/leon","stars":2},{"name":"damies13/TestDataTable","stars":9}] \ No newline at end of file +[{"name":"serhatbolsu/robotframework-appiumlibrary","stars":376},{"name":"MarketSquare/robotframework-archivelibrary","stars":22},{"name":"nokia/robotframework-autoitlibrary","stars":34},{"name":"sebastianciupinski/robotframework-autorecorder","stars":7},{"name":"MarketSquare/robotframework-browser","stars":474},{"name":"eficode/robotframework-cnclibrary","stars":12},{"name":"robooo/robotframework-ConfluentKafkaLibrary","stars":29},{"name":"Openwide-Ingenierie/robotframework-can-uds-library","stars":33},{"name":"MarketSquare/robotframework-dblibrary","stars":12},{"name":"MarketSquare/Robotframework-Database-Library","stars":146},{"name":"Snooz82/robotframework-datadriver","stars":121},{"name":"xyb/robotframework-debuglibrary","stars":101},{"name":"mentalisttraceur/robotframework-dependencylibrary","stars":14},{"name":"MarketSquare/robotframework-difflibrary","stars":23},{"name":"kitconcept/robotframework-djangolibrary","stars":38},{"name":"manykarim/robotframework-doctestlibrary","stars":41},{"name":"sebastianciupinski/robotframework-doesislibrary","stars":1},{"name":"lcarbonn/robotframework-eclipselibrary","stars":8},{"name":"kowalpy/Robot-Framework-FTP-Library","stars":7},{"name":"MarketSquare/robotframework-requests","stars":469},{"name":"MarketSquare/robotframework-httprequestlibrary","stars":21},{"name":"eficode/robotframework-imagehorizonlibrary","stars":73},{"name":"eficode/JavaFXLibrary","stars":21},{"name":"madworx/robotframework-kicadlibrary","stars":7},{"name":"sebastianciupinski/robotframework-listenerlibrary","stars":3},{"name":"Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library","stars":39},{"name":"randomsync/robotframework-mqttlibrary","stars":23},{"name":"adeliogullari/robotframework-oracledb-library","stars":9},{"name":"qahive/robotframework-puppeteer","stars":55},{"name":"qentinelqi/qweb","stars":36},{"name":"robotframework/Rammbock","stars":62},{"name":"robotframework/remoteswinglibrary","stars":31},{"name":"asyrjasalo/RESTinstance","stars":198},{"name":"MarketSquare/robotframework-faker","stars":62},{"name":"GDATASoftwareAG/robotframework-flaui","stars":49},{"name":"noubar/RobotFramework-MailClientLibrary","stars":1},{"name":"frankvanderkuur/robotframework-sapguilibrary","stars":47},{"name":"imbus/robotframework-robosapiens","stars":5},{"name":"rticau/ScreenCapLibrary","stars":37},{"name":"MarketSquare/robotframework-seleniumscreenshots","stars":11},{"name":"robotframework/SeleniumLibrary","stars":1334},{"name":"MarketSquare/robotframework-seleniumlibrary-java","stars":23},{"name":"rainmanwy/robotframework-SikuliLibrary","stars":142},{"name":"Altran-PT-GDC/Robot-Framework-SOAP-Library","stars":18},{"name":"robotframework/SSHLibrary","stars":146},{"name":"robotframework/SwingLibrary","stars":110},{"name":"Altran-PT-GDC/Robot-Framework-Test-FX-Library","stars":19},{"name":"kowalpy/Robot-Framework-TFTP-Library","stars":3},{"name":"Adwisit/WADLibrary","stars":18},{"name":"Accruent/robotframework-zoomba","stars":137},{"name":"robotframework/PythonLibCore","stars":56},{"name":"robotframework/JavalibCore","stars":42},{"name":"robotframework/RemoteApplications","stars":12},{"name":"plone/plone.app.robotframework","stars":11},{"name":"Tesena-smart-testing/WatchUI","stars":53},{"name":"robotframework/RIDE","stars":931},{"name":"wingyplus/language-robot-framework","stars":26},{"name":"boakley/brackets-robotframework","stars":20},{"name":"d-biehl/robotcode","stars":157},{"name":"sakari/robot-mode","stars":30},{"name":"vkosuri/gedit-robot","stars":0},{"name":"vkosuri/npp-robot","stars":31},{"name":"andriyko/sublime-robot-framework-assistant","stars":110},{"name":"shellderp/sublime-robot-plugin","stars":26},{"name":"mfukar/robotframework-vim","stars":90},{"name":"jenkinsci/robot-plugin","stars":61},{"name":"robotframework/MavenPlugin","stars":24},{"name":"lcarbonn/robotframework-ant","stars":3},{"name":"robotframework/DbBot","stars":59},{"name":"rajeevnaikte/distbot","stars":21},{"name":"robotframework/mabot","stars":12},{"name":"eficode/robotframework-oxygen","stars":25},{"name":"mkorpela/pabot","stars":456},{"name":"robocorp/rcc","stars":410},{"name":"robotframework/rfdoc","stars":15},{"name":"damies13/rfswarm","stars":101},{"name":"sohwendy/Robotcorder","stars":85},{"name":"boakley/robotframework-hub","stars":169},{"name":"MarketSquare/robotframework-robocop","stars":167},{"name":"elabit/robotmk","stars":51},{"name":"robotframework/statuschecker","stars":26},{"name":"jg8481/leon","stars":2},{"name":"damies13/TestDataTable","stars":9}] \ No newline at end of file