Skip to content

Commit 979c5f9

Browse files
Develop (#2979)
* Improve docinfo (#2972) * Change some imports to use installed robot * Use installed Robot Framework libraries in libdoc import modules * Add attributes and is_private for UserKeywords * Show private keyword setting in ItemInfo Details * Sort list of suggestions, fix left, right arrows. WIP use Tab to select and edit. DEBUG * ENTER fills cell with selection. Tab to select and keep edit working, WIP * Fixed list selection in Cell Editor. Values in Grid not saved to model WIP * Update documentation * DEBUG test_namespace * DEBUG XML SPEC Import * Skip some XML SPEC Import unit tests * Condition utests on Windows * Correct colorization for private kws from different files. Need to condition by Keywords table. * Fix unit tests * conditions different file and Keywords. WIP * Complete solution for private keywords. Need to fix indication of modified items * Update CHANGELOG * Add CodeBoarding Action (#2975) * Add action.yml from CodeBoarding * Update release notes 2.1.5 * Development version and CodeBoarding Generate action * Fix Settings editor in Wndows 11 and Python 3.13.2 * Update codeboarding_generate.yml output dir * Version 2.1.5.1 * Fix fom Snyk recommendation. * Important restore of code to solve missing save content from kweditor to texteditor * Comment unused code in texteditor * Comment debug print * Version 2.1.5.2
1 parent ecf1230 commit 979c5f9

File tree

12 files changed

+292
-124
lines changed

12 files changed

+292
-124
lines changed

CHANGELOG.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ 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.1.5.2.rst[2.1.5.2] - 2025-07-30
12+
13+
=== Fixed
14+
- Restored init and main scripts and texteditor, because some changes in Grid Editor were not being saved in Text
15+
Editor and would be lost.
16+
1117
== https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.1.5.1.rst[2.1.5.1] - 2025-07-26
1218

1319
=== Fixed

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,21 @@ You can use the tag *robotframework-ide* to search and ask on [StackOverflow](ht
2121

2222
## **Welcome to RIDE - next major release will be version 2.2**
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.1](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.1.5.2](https://github.com/robotframework/RIDE/tree/release/2.1.5.1)**
2525

2626
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
2727

2828
**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**
2929

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

32-
33-
**The current development version is based on 2.1.5.1, supports Python from 3.8 up to 3.14 (26th July 2025).**
32+
**The current development version is based on 2.1.5.2, supports Python from 3.8 up to 3.14 (30th July 2025).**
3433

3534
Currently, the unit tests are tested on Python 3.10, 3.11 and 3.13 (3.13 is the recommended version).
3635
We now have an experimental workflow on Fedora Linux 41, with wxPython 4.2.3 and Python 3.14.b2.
3736
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.
3837

39-
(3.8 <= python <= 3.14) Install current released version (*2.1.5.1*) with:
38+
(3.8 <= python <= 3.14) Install current released version (*2.1.5.2*) with:
4039

4140
`pip install -U robotframework-ride`
4241

doc/releasenotes/ride-2.1.5.2.rst

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
.. container:: document
2+
3+
`RIDE (Robot Framework
4+
IDE) <https://github.com/robotframework/RIDE/>`__ v2.1.5.2 is a new
5+
release with some enhancements and bug fixes. The reference for valid
6+
arguments is `Robot Framework <https://robotframework.org/>`__
7+
current version, 7.3.2. However, internal library code is originally
8+
based on version 3.1.2, but adapted for new versions.
9+
10+
- This version supports Python 3.8 up to 3.13 (and also tested on
11+
3.14.b2 with wxPython 4.2.3).
12+
- There are some changes, or known issues:
13+
14+
- 🐞 - Rename Keywords, Find Usages/Find where used are not
15+
finding all occurrences. Please, double-check findings and
16+
changes.
17+
- 🐞 - Some argument types detection (and colorization) is not
18+
correct in Grid Editor.
19+
- 🐞 - In Grid Editor, private keywords defined in test suites
20+
with **Name** setting, will show with error color even if used
21+
correctly in another local keyword.
22+
- 🐞 - RIDE **DOES NOT KEEP** Test Suites formatting or
23+
structure, causing differences in files when used on other IDE
24+
or Editors. The option to not reformat the file is not working.
25+
- 🐞 - In Grid Editor, when showing settings, scrolling down with
26+
mouse or using down is not working. You can change to Text
27+
Editor and back to Grid Editor, to restore normal behavior.
28+
29+
**New Features and Fixes Highlights**
30+
31+
- Restored init and main scripts and texteditor, because some
32+
changes in Grid Editor were not being saved in Text Editor and
33+
would be lost.
34+
- Fix faulty cell editor in settings of Grid Editor which would
35+
prevent to change to Text Editor and Run tabs.
36+
- Added indication of **private** keywords in Grid Editor, keywords
37+
will show in *Italic*, and with error background, when they are
38+
used outside of Keywords section, or from different files.
39+
- Added indication of **private** keywords in Details pop-up for
40+
keywords with tag **robot:private** or name starting with
41+
underscore, **'\_'** in Grid Editor.
42+
- Modified the action of key TAB when selecting from
43+
auto-suggestions list in Grid Editor. Pressing TAB, selects the
44+
item and continues in cell editor.
45+
- Fix cursor position when editing cells in Grid Editor.
46+
- Added parsing of option **--name** or **-N** and **Name** setting,
47+
to allow running tests with them set.
48+
49+
**The minimal wxPython version is, 4.0.7, and RIDE supports the
50+
current version, 4.2.3, which we recommend.**
51+
52+
*Linux users are advised to install first wxPython from .whl package
53+
at*
54+
`wxPython.org <https://extras.wxpython.org/wxPython4/extras/linux/gtk3/>`__,
55+
or by using the system package manager.
56+
57+
The
58+
`CHANGELOG.adoc <https://github.com/robotframework/RIDE/blob/master/CHANGELOG.adoc>`__
59+
lists the changes done on the different versions.
60+
61+
All issues targeted for RIDE v2.2 can be found from the `issue
62+
tracker
63+
milestone <https://github.com/robotframework/RIDE/issues?q=milestone%3Av2.2>`__.
64+
65+
Questions and comments related to the release can be sent to the
66+
`robotframework-users <https://groups.google.com/group/robotframework-users>`__
67+
mailing list or to the channel #ride on `Robot Framework
68+
Slack <https://robotframework-slack-invite.herokuapp.com>`__, and
69+
possible bugs submitted to the `issue
70+
tracker <https://github.com/robotframework/RIDE/issues>`__. You
71+
should see `Robot Framework
72+
Forum <https://forum.robotframework.org/c/tools/ride/>`__ if your
73+
problem is already known.
74+
75+
To install the latest release with
76+
`pip <https://pypi.org/project/pip/>`__ installed, just run
77+
78+
.. code:: literal-block
79+
80+
pip install --upgrade robotframework-ride==2.1.5.2
81+
82+
to install exactly the specified release, which is the same as using
83+
84+
.. code:: literal-block
85+
86+
pip install --upgrade robotframework-ride
87+
88+
Alternatively you can download the source distribution from
89+
`PyPI <https://pypi.python.org/pypi/robotframework-ride>`__ and
90+
install it manually. For more details and other installation
91+
approaches, see the `installation
92+
instructions <https://github.com/robotframework/RIDE/wiki/Installation-Instructions>`__.
93+
If you want to help in the development of RIDE, by reporting issues
94+
in current development version, you can install with:
95+
96+
.. code:: literal-block
97+
98+
pip install -U https://github.com/robotframework/RIDE/archive/develop.zip
99+
100+
Important document for helping with development is the
101+
`CONTRIBUTING.adoc <https://github.com/robotframework/RIDE/blob/develop/CONTRIBUTING.adoc>`__.
102+
103+
To start RIDE from a command window, shell or terminal, just enter:
104+
105+
::
106+
107+
ride
108+
109+
You can also pass some arguments, like a path for a test suite file
110+
or directory.
111+
112+
::
113+
114+
ride example.robot
115+
116+
Another possible way to start RIDE is:
117+
118+
.. code:: literal-block
119+
120+
python -m robotide
121+
122+
You can then go to Tools>Create RIDE Desktop Shortcut, or run the
123+
shortcut creation script with:
124+
125+
.. code:: literal-block
126+
127+
python -m robotide.postinstall -install
128+
129+
or
130+
131+
.. code:: literal-block
132+
133+
ride_postinstall.py -install
134+
135+
RIDE v2.1.5.2 was released on 30/July/2025.

src/robotide/__init__.py

Lines changed: 61 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -13,51 +13,41 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
import argparse
16+
"""RIDE -- Robot Framework test data editor
17+
18+
Usage: ride.py [--noupdatecheck] [--debugconsole] [--settingspath <full path|settings filename>] [--version] [inpath]
19+
20+
RIDE can be started either without any arguments or by giving a path to a test
21+
data file or directory to be opened.
22+
23+
To disable update checker use --noupdatecheck.
24+
25+
To start debug console for RIDE problem debugging use --debugconsole option.
26+
27+
To use different settings use the option --settingspath followed by the path to the settings file or file name.
28+
29+
To see RIDE's version use --version.
30+
31+
RIDE's API is still evolving while the project is moving towards the 1.0
32+
release. The most stable, and best documented, module is `robotide.pluginapi`.
33+
"""
34+
1735
import os
1836
import sys
37+
from string import Template
1938

20-
try:
21-
from robotide import version
22-
except ImportError:
23-
print("Error getting RIDE version!")
24-
sys.exit(1)
25-
26-
errorMessage = """wxPython not found.\n
27-
RIDE depends on wx (wxPython). Known versions for Python3 are: 4.0.7.post2, 4.1.1 and 4.2.3.\
39+
errorMessageTemplate = Template("""$reason
40+
RIDE depends on wx (wxPython). Known versions for Python3 are: 4.0.7.post2, 4.1.1 and 4.2.1.\
2841
At the time of this release the current wxPython version is 4.2.3.\
2942
You can install with 'pip install wxPython' on most operating systems, or find the \
30-
the download link from https://wxPython.org/"""
31-
32-
if __name__ == '__main__' and 'robotide' not in sys.modules:
33-
from pathlib import Path
34-
robotide_dir = Path(__file__).absolute().parent # zipsafe
35-
sys.path = [str(robotide_dir.parent)] + [p for p in sys.path if Path(p) != robotide_dir]
36-
37-
parser = argparse.ArgumentParser(prog='ride', description='RIDE is an IDE for Robot Framework test cases and tasks.',
38-
epilog='See information about Robot Framework ecosystem at https://robotframewok.org/',
39-
add_help=False)
40-
parser.add_argument('inpath', nargs='?', help='Path to a test data file or'
41-
' directory to be opened.')
42-
parser.add_argument('-n', '--noupdatecheck', action='store_true', help='To disable update check.')
43-
parser.add_argument('-d', '--debugconsole', action='store_true',
44-
help='To start debug console for RIDE problem debugging, and wxPython inspection tool.')
45-
parser.add_argument('-s', '--settingspath', default=None, help='<full path|settings filename>\n'
46-
'To use different settings use the option --settingspath followed by'
47-
' the path to the settings file or file name.')
48-
parser.add_argument('-v', '--version', action='version', version=f'{version.VERSION}',
49-
help='To see RIDE\'s version.')
50-
parser.add_argument('-h', '--help', action='help', help='RIDE can be started either without any '
51-
'arguments or by giving a path to a test data file or'
52-
' directory to be opened.')
53-
# arguments = parser.parse_args()
43+
the download link from https://wxPython.org/""")
5444

5545
try:
5646
import wx
5747
import wx.lib.inspection
58-
from wx import Colour, Size
48+
from wx import Colour
5949
except ModuleNotFoundError:
60-
print(errorMessage)
50+
print(errorMessageTemplate.substitute(reason="wxPython not found."))
6151
sys.exit(1)
6252

6353
# Insert bundled robot to path before anything else
@@ -67,20 +57,47 @@
6757

6858
def main(*args):
6959
_replace_std_for_win()
70-
arguments = parser.parse_args()
71-
noupdatecheck = arguments.noupdatecheck
72-
debugconsole = arguments.debugconsole
73-
settingspath = arguments.settingspath
74-
inpath = arguments.inpath # _parse_args(*args)
75-
# print(f"DEBUG: main.py {noupdatecheck=} {debugconsole=} {settingspath=} {inpath=}")
60+
if '--version' in args:
61+
try:
62+
from . import version
63+
except ImportError:
64+
print("Error getting RIDE version!")
65+
sys.exit(1)
66+
print(version.VERSION)
67+
sys.exit(0)
68+
noupdatecheck, debug_console, settings_path, inpath = _parse_args(args)
69+
if len(args) > 3 or '--help' in args:
70+
print(__doc__)
71+
sys.exit()
7672
try:
77-
_run(inpath, not noupdatecheck, debugconsole, settingspath=settingspath)
73+
_run(inpath, not noupdatecheck, debug_console, settingspath=settings_path)
7874
except Exception: # DEBUG
7975
import traceback
8076
traceback.print_exception(*sys.exc_info())
8177
sys.stderr.write('\n\nUse --help to get usage information.\n')
8278

8379

80+
def _parse_args(args):
81+
if not args:
82+
return False, False, None, None
83+
arguments = list(args)
84+
noupdatecheck = '--noupdatecheck' in arguments
85+
if noupdatecheck:
86+
arguments.remove('--noupdatecheck')
87+
debug_console = '--debugconsole' in arguments
88+
if debug_console:
89+
arguments.remove('--debugconsole')
90+
settings_path = None
91+
if '--settingspath' in arguments:
92+
arguments.remove('--settingspath')
93+
if len(arguments) > 0:
94+
settings_path = arguments.pop(0)
95+
else:
96+
settings_path = None
97+
inpath = arguments[0] if arguments else None
98+
return noupdatecheck, debug_console, settings_path, inpath
99+
100+
84101
def _run(inpath=None, updatecheck=True, debug_console=False, settingspath=None):
85102
# print(f"DEBUG: ENTER _run {inpath=}, {updatecheck=}, {debug_console=}")
86103
try:
@@ -135,13 +152,13 @@ def _show_old_wxpython_warning_if_needed(parent=None):
135152
message = ("RIDE needs a newer wxPython version. Your current "
136153
"version is %s."
137154
"\n"
138-
"At the time of this release the current wxPython version is 4.2.1. See "
155+
"At the time of this release the current wxPython version is 4.2.3. See "
139156
"https://wxPython.org/ for downloads and instructions."
140157
% wx.VERSION_STRING)
141158
style = wx.ICON_EXCLAMATION
142159
if not parent:
143160
_ = wx.App()
144-
parent = wx.Frame(None, size=Size(0, 0))
161+
parent = wx.Frame(None, size=(0, 0))
145162
sys.stderr.write("{0}\n{1}\n".format(title, message))
146163
dlg = wx.MessageDialog(parent, message=message, caption=title, style=style)
147164
dlg.ShowModal()

src/robotide/__main__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717

18+
import sys
19+
20+
if __name__ == '__main__' and 'robotide' not in sys.modules:
21+
from pathlib import Path
22+
robotide_dir = Path(__file__).absolute().parent # zipsafe
23+
sys.path = [str(robotide_dir.parent)] + [p for p in sys.path if Path(p) != robotide_dir]
24+
1825
from robotide import main
1926

20-
main()
27+
main(*sys.argv[1:])

0 commit comments

Comments
 (0)