Skip to content

Commit 8f56a74

Browse files
Fix repeated resource (#2988)
* Fix duplicated resources in Tree * Prepare release 2.2
1 parent 3effd5f commit 8f56a74

File tree

6 files changed

+119
-22
lines changed

6 files changed

+119
-22
lines changed

CHANGELOG.adoc

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,84 @@ and this project adheres to http://semver.org/spec/v2.0.0.html[Semantic Versioni
88

99
// == https://github.com/robotframework/RIDE[Unreleased]
1010

11+
== https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.2.rst[2.2] - 2025-10-05
12+
13+
=== Added
14+
(2.2rc1 - 2025-09-25)
15+
- Added Project Settings concept. The Project Settings is a file named ``ride_settings.cfg`` inside a directory named ``.robot`` located in the Test Suite directory. The search for this directory, is done upwards from the Test Suite directory. You can create an empty directory, ``.robot`` located in the Test Suite directory or any parent directory, and RIDE will create and use the ``ride_settings.cfg``. This way you can have different settings, like: colors, UI language, and Plugins settings. The most relevant example is the creation of different Run Profiles or Arguments, in Test Runner. When you open a Test Suite outside one with Project Settings, you will see a dialog to restart RIDE, to use the ``Global Settings``.
16+
(2.1.5 - 2025-07-25)
17+
- Added parsing of option *--name* or *-N* and *Name* setting, to allow running test suites with them set.
18+
- Added indication of *private* keywords in Grid Editor, keywords will show in _Italic_, and with error
19+
background, when they are used outside of Keywords section, or from different files.
20+
- Added indication of *private* keywords in Details pop-up for keywords with tag *robot:private* or name starting with underscore, *'_'* in Grid Editor.
21+
(2.1.4 - 2025-06-20)
22+
- Added Tools->Library Finder... to install libraries and Help->Open Library Documentation... . They share the same dialog, and definitions are recorded in ``settings.cfg``.
23+
- Added context menu to install libraries and to open documentation in Grid Editor Import section. Same as above description.
24+
- Added keyboard shortcuts ``Ctrl-Shift-Up`` and ``Ctrl-Shift-Down`` as alternatives to ``Alt-Up`` and ``Alt-Down`` to move rows in Grid and Text Editors.
25+
- Added Settings Editor button to Preferences dialog, to edit settings.cfg.
26+
- Created backup of settings.cfg to allow recovering some settings when broken upgrades.
27+
- Added current executing keyword and other statuses to TestRunner status bar.
28+
- Added Config Panel button to supported installed Plugins next to their name in Plugin Manager dialog.
29+
- Added Config Panel button to Plugins, working examples in Text Editor and Test Runner.
30+
- Added divided Status Bar. Left side for main window, right side for Plugins. Working example in Text Editor,
31+
when selecting in Tree shows the filename in StatusBar.
32+
(2.1.3 - 2025-03-24)
33+
- Added syntax colorization for the ``GROUP`` marker.
34+
- Added on Text Editor, tab indentation markers and ``tab markers`` boolean setting with default ``True``.
35+
- Added on Text Editor, folding margin with markers style configurable with ``fold symbols`` in settings.cfg.
36+
37+
=== Fixed
38+
(2.2 - 2025-10-05)
39+
- Fixed duplicated resources in Tree (Project Explorer).
40+
(2.2rc1 - 2025-09-25)
41+
- Fixed crash when renaming test cases names on Tree (Project Explorer), by cancelling with Escape or by adding a Space in the end.
42+
- Fixed missing text colorization in suites and test settings on Grid Editor.
43+
(2.1.5.2 - 2025-07-30)
44+
- Restored init and main scripts and texteditor, because some changes in Grid Editor were not being saved in Text
45+
Editor and would be lost.
46+
(2.1.5.1 - 2025-07-26)
47+
- Fix faulty cell editor in settings of Grid Editor which would prevent to change to Text Editor and Run tabs.
48+
(2.1.5 - 2025-07-25)
49+
- Fix cursor position when editing cells in Grid Editor.
50+
(2.1.4.1 - 2025-06-24)
51+
- Fix broken installation of RIDE v2.1.4 by adding missing dependencies.
52+
(2.1.4 - 2025-06-20)
53+
- Fixed Create Desktop Shortcut by pointing executable to ``python -m robotide``.
54+
- On Windows ignore false modification on files when opening Test Suites, causing confirmation dialog.
55+
(2.1.3 - 2025-03-24)
56+
- Fixed white blocks on Tree due to failed animation when test execution is too rapid, causing crash on Windows.
57+
- Fixed not set text color on row labels in Grid Editor. Now the General ``secondary foreground`` is applied.
58+
- Fixed multiple scroll bars in Grid Editor when editing Test Cases or Keywords. This caused bad navigation on cells.
59+
- Regression fix from v2.1b1 - Fix wrong item selection, like Test Suite, when doing right-click actions in Project Explorer.
60+
When right clicking over Tree elements, to, for example expand or select tests, we want to keep the Editor in the same file or position.
61+
(2.1.2 - 2025-01-28)
62+
- Partial fix of no update of renaming resource prefixed keywords. Issue #1230 from 29 Jan 2013.
63+
- Fixed no recognition of keywords with embedded arguments and full name. Issue #1106 from 12 Sep 2012.
64+
(2.1.1 - 2024-11-14)
65+
- Fixed broken go to definition after editing content in resource files.
66+
- Fixed long arguments in fixtures appearing splitted in Grid Editor. Still, arguments info will not be correct at calling step.
67+
68+
=== Changed
69+
(2.1.5 - 2025-07-25)
70+
- Modified the action of key TAB when selecting from auto-suggestions list in Grid Editor. Pressing TAB, selects the item and continues in cell editor.
71+
(2.1.4 - 2025-06-20)
72+
- Improved vertical scroll in Grid Editor, by having main scroll bars out of cells
73+
- Changed arguments parser to allow ``--version`` and ``--help`` functional in Windows
74+
- Improved auto-complete in Grid Editor, to allow several matches
75+
- Changed some informative dialogs and JSON Editor to use the customized colors.
76+
- Modified import statements to allow running RIDE without Robot Framework installed or versions older than 6.0.
77+
(2.1.3 - 2025-03-24)
78+
- Better Search element in Text Editor which allows to be cleared.
79+
- When saving in Text Editor, the cursor remains at position, instead of jumping to Tree selection.
80+
- Improved autocompletion lists, by using existing words in Test Suite file (still needs more improvements).
81+
- Create directories when needed in New Project dialog.
82+
- Improved the recognition of BDD/Gherkin prefixes when localized in autocomplete on Grid Editor.
83+
- Improved colorization for multiple Gherkin words, for example in the French language.
84+
(2.1.1 - 2024-11-14)
85+
- Changed the workflow for the development versions of RIDE. Now, development versions are taken from the ``develop`` branch, and the ``master`` will stay with released version.
86+
- Changed the way ``configobj`` code is imported. Now is a submodule obtained from https://github.com/DiffSK/configobj.
87+
88+
1189
== https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.2rc1.rst[2.2rc1] - 2025-09-25
1290

1391
=== Added

README.adoc

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,37 @@ We have a RIDE section topic in https://forum.robotframework.org/c/tools/ride/21
2323

2424
You can use the tag *robotframework-ide* to search and ask on https://stackoverflow.com/questions/tagged/robotframework-ide[StackOverflow].
2525

26-
== **Welcome to the development version of RIDE - next major release will be version 2.2**
26+
== **Welcome to the development version of RIDE - next major release will be version 2.3**
2727

28-
If you are looking for the latest released version, you can get the source code from **https://github.com/robotframework/RIDE/releases[releases]** or from branch **https://github.com/robotframework/RIDE/tree/release/2.1.5.2[release/2.1.5.2]**
28+
If you are looking for the latest released version, you can get the source code from **https://github.com/robotframework/RIDE/releases[releases]** or from branch **https://github.com/robotframework/RIDE/tree/release/2.2[release/2.2]**
2929

30-
See the https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.1.5.2.rst[release notes] for latest release version 2.1.5.2
30+
See the https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.2.rst[release notes] for latest release version 2.2
31+
32+
**Version https://github.com/robotframework/RIDE/tree/release/2.2[2.2] was the last release supporting Python 3.8**
3133

3234
**Version https://github.com/robotframework/RIDE/tree/release/2.0.8.1[2.0.8.1] was the last release supporting Python 3.6 and 3.7**
3335

3436
**Version https://github.com/robotframework/RIDE/tree/release/1.7.4.2[1.7.4.2] was the last release supporting Python 2.7**
3537

3638

37-
**The current development version is based on 2.1.5.2, supports Python from 3.8 up to 3.14 (30th July 2025).**
39+
**The current development version is based on 2.2, supports Python from 3.8 up to 3.14 (05th October 2025).**
3840

3941
Currently, the unit tests are tested on Python 3.10, 3.11 and 3.13 (3.13 is the recommended version).
40-
We now have an experimental workflow on Fedora Linux 41, with wxPython 4.2.3 and Python 3.14.b2.
42+
We now have an experimental workflow on Fedora Linux 41, with wxPython 4.2.3 and Python 3.14.rc3.
4143
Likewise, the current version of wxPython, is 4.2.3, but RIDE is known to work with 4.0.7, 4.1.1 and 4.2.2 versions.
4244

43-
(3.8 <= python <= 3.14) Install current released version (*2.1.5.2*) with:
45+
(3.8 <= python <= 3.14) Install current released version (*2.2*) with:
4446

4547
`pip install -U robotframework-ride`
4648

47-
(3.8 <= python <= 3.14) Install current development version (**2.2rc1**) with:
49+
(3.8 <= python <= 3.14) Install current development version (**2.2**) with:
4850

4951
`pip install -U https://github.com/robotframework/RIDE/archive/develop.zip`
5052

51-
(3.8 <= python <= 3.14) Install current Release Candidate version (2.2rc1) with:
53+
//(3.8 <= python <= 3.14) Install current Release Candidate version (2.2rc1) with:
54+
55+
//`pip install -U --pre robotframework-ride`
5256

53-
`pip install -U --pre robotframework-ride`
5457

5558
**See the https://github.com/robotframework/RIDE/wiki/F%2eA%2eQ%2e[FAQ] at https://github.com/robotframework/RIDE/wiki[Wiki]**
5659

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,34 +19,38 @@ We have a RIDE section topic in [Tools>RIDE](https://forum.robotframework.org/c/
1919

2020
You can use the tag *robotframework-ide* to search and ask on [StackOverflow](https://stackoverflow.com/questions/tagged/robotframework-ide).
2121

22-
## **Welcome to RIDE - next major release will be version 2.2**
22+
## **Welcome to RIDE - next major release will be version 2.3**
2323

24-
If you are looking for the latest released version, you can get the source code from **[releases](https://github.com/robotframework/RIDE/releases)** or from branch **[release/2.1.5.2](https://github.com/robotframework/RIDE/tree/release/2.1.5.1)**
24+
If you are looking for the latest released version, you can get the source code from **[releases](https://github.com/robotframework/RIDE/releases)** or from branch **[release/2.2](https://github.com/robotframework/RIDE/tree/release/2.2)**
2525

26-
See the [release notes](https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.1.5.1.rst) for latest release version 2.1.5.1
26+
See the [release notes](https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.2.rst) for latest release version 2.2
27+
28+
**Version [2.2](https://github.com/robotframework/RIDE/tree/release/2.2) was the last release supporting Python 3.8**
2729

2830
**Version [2.0.8.1](https://github.com/robotframework/RIDE/tree/release/2.0.8.1) was the last release supporting Python 3.6 and 3.7**
2931

3032
**Version [1.7.4.2](https://github.com/robotframework/RIDE/tree/release/1.7.4.2) was the last release supporting Python 2.7**
3133

3234

33-
**The current development version is based on 2.1.5.2, supports Python from 3.8 up to 3.14 (30th July 2025).**
35+
**The current development version is based on 2.2, supports Python from 3.9 up to 3.14 (05th October 2025).**
3436

3537
Currently, the unit tests are tested on Python 3.10, 3.11 and 3.13 (3.13 is the recommended version).
36-
We now have an experimental workflow on Fedora Linux 41, with wxPython 4.2.3 and Python 3.14.b2.
38+
We now have an experimental workflow on Fedora Linux 41, with wxPython 4.2.3 and Python 3.14.rc3.
3739
Likewise, the current version of wxPython, is 4.2.3, but RIDE is known to work with 4.0.7, 4.1.1 and 4.2.2 versions.
3840

39-
(3.8 <= python <= 3.14) Install current released version (*2.1.5.2*) with:
41+
(3.8 <= python <= 3.14) Install current released version (*2.2*) with:
4042

4143
`pip install -U robotframework-ride`
4244

4345
(3.8 <= python <= 3.14) Install current development version with:
4446

4547
`pip install -U https://github.com/robotframework/RIDE/archive/develop.zip`
4648

49+
<!--
4750
(3.8 &lt;= python &lt;= 3.14) Install current Release Candidate version (*2.2rc1*) with:
4851
4952
`pip install -U --pre robotframework-ride`
53+
-->
5054

5155
**See the [FAQ](https://github.com/robotframework/RIDE/wiki/F%2eA%2eQ%2e) at [Wiki](https://github.com/robotframework/RIDE/wiki)**
5256

src/robotide/application/releasenotes.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ def set_content(self, html_win, content):
153153
<a class="reference external" href="https://robotframework.org/">Robot Framework</a> current version, 7.3.2. However,
154154
internal library code is originally based on version 3.1.2, but adapted for new versions.</p>
155155
<ul class="simple">
156-
<li>This version supports Python 3.8 up to 3.13 (and also tested on 3.14.b2 with wxPython 4.2.3).</li>
156+
<li>This version supports Python 3.8 up to 3.13 (and also tested on 3.14.rc3 with wxPython 4.2.3).</li>
157157
<li>There are some changes, or known issues:<ul>
158158
<!--
159159
<li>🐞 - When upgrading RIDE and activate Restart, some errors are visible about missing /language file, and behaviour
@@ -175,6 +175,7 @@ def set_content(self, html_win, content):
175175
</ul>
176176
<p><strong>New Features and Fixes Highlights</strong></p>
177177
<ul class="simple">
178+
<li>Fixed duplicated resources in Tree (Project Explorer).</li>
178179
<li>Added Project Settings concept. The Project Settings is a file named <b>ride_settings.cfg</b> inside a directory
179180
named <b>.robot</b> located in the Test Suite directory.</li>
180181
<li>Fixed crash when renaming test cases names on Tree (Project Explorer), by cancelling with Escape or by adding a Space
@@ -214,7 +215,7 @@ def set_content(self, html_win, content):
214215
Forum</a> if your problem is already known.</p>
215216
<p>To install the latest release with <a class="reference external" href="https://pypi.org/project/pip/">pip</a> installed, just run</p>
216217
<pre class="literal-block">
217-
pip install --upgrade robotframework-ride==2.1.5.2
218+
pip install --upgrade robotframework-ride==2.2
218219
</pre>
219220
<p>to install exactly the specified release, which is the same as using</p>
220221
<pre class="literal-block">
@@ -245,7 +246,12 @@ def set_content(self, html_win, content):
245246
<pre class="literal-block">python -m robotide.postinstall -install</pre>
246247
<p>or</p>
247248
<pre class="literal-block">ride_postinstall.py -install</pre>
248-
<p>RIDE {VERSION} was released on 24/September/2025.</p>
249+
<p>RIDE {VERSION} was released on 05/October/2025.</p>
250+
251+
<br/>
252+
<h3>Celebrate the bank holiday, 5th October, Implantation of the Republic in Portugal</h3>
253+
<h4>Happy 115th bithday! Long live the Republic!</h4>
254+
<h3 align='center'>🇵🇹</h3>
249255
<!-- <br/>
250256
<h3>May The Fourth Be With You!</h3>
251257
<h3>Celebrate the bank holiday, 10th June, Day of Portugal, Portuguese Communities and Camões!!</h3>

src/robotide/ui/treeplugin.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ def __init__(self, parent, action_registerer, settings=None):
248248
self._clear_tree_data()
249249
self._editor = None
250250
self._execution_results = None
251-
self._resources = []
251+
self._resources = set()
252252
self._right_click = False
253253
self.dirty = False
254254
# DEBUG: This menu is not working because is being attached to main frame
@@ -480,7 +480,7 @@ def _clear_tree_data(self):
480480
self.root = self.AddRoot('')
481481
self._resource_root = self._create_resource_root()
482482
self.datafile_nodes = []
483-
self._resources = []
483+
self._resources = set()
484484
self.controller.clear_history()
485485

486486
def _create_resource_root(self):
@@ -544,13 +544,19 @@ def _render_datafile(self, parent_node, controller, index=None):
544544
node = self._create_node_with_handler(parent_node, controller, index)
545545
if not node:
546546
return None
547+
# avoid repeated resources
548+
if hasattr(controller, 'source') and os.path.isfile(self._normalize(controller.source)):
549+
if not self._normalize(controller.source) in self._resources:
550+
self._resources.add(self._normalize(controller.source))
551+
547552
if controller.dirty:
548553
self.controller.mark_node_dirty(node)
549554
self.datafile_nodes.append(node)
550555
self.SetItemHasChildren(node, True)
551556

552557
for child in controller.children:
553-
self._render_datafile(node, child)
558+
if not self._normalize(child.source) in self._resources:
559+
self._render_datafile(node, child)
554560
return node
555561

556562
@staticmethod

src/robotide/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@
1515
#
1616
# Automatically generated by `tasks.py`.
1717

18-
VERSION = 'v2.2.1dev1'
18+
VERSION = 'v2.2'

0 commit comments

Comments
 (0)