Skip to content
Merged

Develop #2979

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ and this project adheres to http://semver.org/spec/v2.0.0.html[Semantic Versioni

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

== https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.1.5.2.rst[2.1.5.2] - 2025-07-30

=== Fixed
- Restored init and main scripts and texteditor, because some changes in Grid Editor were not being saved in Text
Editor and would be lost.

== https://github.com/robotframework/RIDE/blob/master/doc/releasenotes/ride-2.1.5.1.rst[2.1.5.1] - 2025-07-26

=== Fixed
Expand Down
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,21 @@ You can use the tag *robotframework-ide* to search and ask on [StackOverflow](ht

## **Welcome to RIDE - next major release will be version 2.2**

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)**
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)**

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

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

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


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

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

(3.8 <= python <= 3.14) Install current released version (*2.1.5.1*) with:
(3.8 <= python <= 3.14) Install current released version (*2.1.5.2*) with:

`pip install -U robotframework-ride`

Expand Down
135 changes: 135 additions & 0 deletions doc/releasenotes/ride-2.1.5.2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
.. container:: document

`RIDE (Robot Framework
IDE) <https://github.com/robotframework/RIDE/>`__ v2.1.5.2 is a new
release with some enhancements and bug fixes. The reference for valid
arguments is `Robot Framework <https://robotframework.org/>`__
current version, 7.3.2. However, internal library code is originally
based on version 3.1.2, but adapted for new versions.

- This version supports Python 3.8 up to 3.13 (and also tested on
3.14.b2 with wxPython 4.2.3).
- There are some changes, or known issues:

- 🐞 - Rename Keywords, Find Usages/Find where used are not
finding all occurrences. Please, double-check findings and
changes.
- 🐞 - Some argument types detection (and colorization) is not
correct in Grid Editor.
- 🐞 - In Grid Editor, private keywords defined in test suites
with **Name** setting, will show with error color even if used
correctly in another local keyword.
- 🐞 - RIDE **DOES NOT KEEP** Test Suites formatting or
structure, causing differences in files when used on other IDE
or Editors. The option to not reformat the file is not working.
- 🐞 - In Grid Editor, when showing settings, scrolling down with
mouse or using down is not working. You can change to Text
Editor and back to Grid Editor, to restore normal behavior.

**New Features and Fixes Highlights**

- Restored init and main scripts and texteditor, because some
changes in Grid Editor were not being saved in Text Editor and
would be lost.
- Fix faulty cell editor in settings of Grid Editor which would
prevent to change to Text Editor and Run tabs.
- Added indication of **private** keywords in Grid Editor, keywords
will show in *Italic*, and with error background, when they are
used outside of Keywords section, or from different files.
- Added indication of **private** keywords in Details pop-up for
keywords with tag **robot:private** or name starting with
underscore, **'\_'** in Grid Editor.
- 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.
- Fix cursor position when editing cells in Grid Editor.
- Added parsing of option **--name** or **-N** and **Name** setting,
to allow running tests with them set.

**The minimal wxPython version is, 4.0.7, and RIDE supports the
current version, 4.2.3, which we recommend.**

*Linux users are advised to install first wxPython from .whl package
at*
`wxPython.org <https://extras.wxpython.org/wxPython4/extras/linux/gtk3/>`__,
or by using the system package manager.

The
`CHANGELOG.adoc <https://github.com/robotframework/RIDE/blob/master/CHANGELOG.adoc>`__
lists the changes done on the different versions.

All issues targeted for RIDE v2.2 can be found from the `issue
tracker
milestone <https://github.com/robotframework/RIDE/issues?q=milestone%3Av2.2>`__.

Questions and comments related to the release can be sent to the
`robotframework-users <https://groups.google.com/group/robotframework-users>`__
mailing list or to the channel #ride on `Robot Framework
Slack <https://robotframework-slack-invite.herokuapp.com>`__, and
possible bugs submitted to the `issue
tracker <https://github.com/robotframework/RIDE/issues>`__. You
should see `Robot Framework
Forum <https://forum.robotframework.org/c/tools/ride/>`__ if your
problem is already known.

To install the latest release with
`pip <https://pypi.org/project/pip/>`__ installed, just run

.. code:: literal-block

pip install --upgrade robotframework-ride==2.1.5.2

to install exactly the specified release, which is the same as using

.. code:: literal-block

pip install --upgrade robotframework-ride

Alternatively you can download the source distribution from
`PyPI <https://pypi.python.org/pypi/robotframework-ride>`__ and
install it manually. For more details and other installation
approaches, see the `installation
instructions <https://github.com/robotframework/RIDE/wiki/Installation-Instructions>`__.
If you want to help in the development of RIDE, by reporting issues
in current development version, you can install with:

.. code:: literal-block

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

Important document for helping with development is the
`CONTRIBUTING.adoc <https://github.com/robotframework/RIDE/blob/develop/CONTRIBUTING.adoc>`__.

To start RIDE from a command window, shell or terminal, just enter:

::

ride

You can also pass some arguments, like a path for a test suite file
or directory.

::

ride example.robot

Another possible way to start RIDE is:

.. code:: literal-block

python -m robotide

You can then go to Tools>Create RIDE Desktop Shortcut, or run the
shortcut creation script with:

.. code:: literal-block

python -m robotide.postinstall -install

or

.. code:: literal-block

ride_postinstall.py -install

RIDE v2.1.5.2 was released on 30/July/2025.
105 changes: 61 additions & 44 deletions src/robotide/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,51 +13,41 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse
"""RIDE -- Robot Framework test data editor

Usage: ride.py [--noupdatecheck] [--debugconsole] [--settingspath <full path|settings filename>] [--version] [inpath]

RIDE can be started either without any arguments or by giving a path to a test
data file or directory to be opened.

To disable update checker use --noupdatecheck.

To start debug console for RIDE problem debugging use --debugconsole option.

To use different settings use the option --settingspath followed by the path to the settings file or file name.

To see RIDE's version use --version.

RIDE's API is still evolving while the project is moving towards the 1.0
release. The most stable, and best documented, module is `robotide.pluginapi`.
"""

import os
import sys
from string import Template

try:
from robotide import version
except ImportError:
print("Error getting RIDE version!")
sys.exit(1)

errorMessage = """wxPython not found.\n
RIDE depends on wx (wxPython). Known versions for Python3 are: 4.0.7.post2, 4.1.1 and 4.2.3.\
errorMessageTemplate = Template("""$reason
RIDE depends on wx (wxPython). Known versions for Python3 are: 4.0.7.post2, 4.1.1 and 4.2.1.\
At the time of this release the current wxPython version is 4.2.3.\
You can install with 'pip install wxPython' on most operating systems, or find the \
the download link from https://wxPython.org/"""

if __name__ == '__main__' and 'robotide' not in sys.modules:
from pathlib import Path
robotide_dir = Path(__file__).absolute().parent # zipsafe
sys.path = [str(robotide_dir.parent)] + [p for p in sys.path if Path(p) != robotide_dir]

parser = argparse.ArgumentParser(prog='ride', description='RIDE is an IDE for Robot Framework test cases and tasks.',
epilog='See information about Robot Framework ecosystem at https://robotframewok.org/',
add_help=False)
parser.add_argument('inpath', nargs='?', help='Path to a test data file or'
' directory to be opened.')
parser.add_argument('-n', '--noupdatecheck', action='store_true', help='To disable update check.')
parser.add_argument('-d', '--debugconsole', action='store_true',
help='To start debug console for RIDE problem debugging, and wxPython inspection tool.')
parser.add_argument('-s', '--settingspath', default=None, help='<full path|settings filename>\n'
'To use different settings use the option --settingspath followed by'
' the path to the settings file or file name.')
parser.add_argument('-v', '--version', action='version', version=f'{version.VERSION}',
help='To see RIDE\'s version.')
parser.add_argument('-h', '--help', action='help', help='RIDE can be started either without any '
'arguments or by giving a path to a test data file or'
' directory to be opened.')
# arguments = parser.parse_args()
the download link from https://wxPython.org/""")

try:
import wx
import wx.lib.inspection
from wx import Colour, Size
from wx import Colour
except ModuleNotFoundError:
print(errorMessage)
print(errorMessageTemplate.substitute(reason="wxPython not found."))
sys.exit(1)

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

def main(*args):
_replace_std_for_win()
arguments = parser.parse_args()
noupdatecheck = arguments.noupdatecheck
debugconsole = arguments.debugconsole
settingspath = arguments.settingspath
inpath = arguments.inpath # _parse_args(*args)
# print(f"DEBUG: main.py {noupdatecheck=} {debugconsole=} {settingspath=} {inpath=}")
if '--version' in args:
try:
from . import version
except ImportError:
print("Error getting RIDE version!")
sys.exit(1)
print(version.VERSION)
sys.exit(0)
noupdatecheck, debug_console, settings_path, inpath = _parse_args(args)
if len(args) > 3 or '--help' in args:
print(__doc__)
sys.exit()
try:
_run(inpath, not noupdatecheck, debugconsole, settingspath=settingspath)
_run(inpath, not noupdatecheck, debug_console, settingspath=settings_path)
except Exception: # DEBUG
import traceback
traceback.print_exception(*sys.exc_info())
sys.stderr.write('\n\nUse --help to get usage information.\n')


def _parse_args(args):
if not args:
return False, False, None, None
arguments = list(args)
noupdatecheck = '--noupdatecheck' in arguments
if noupdatecheck:
arguments.remove('--noupdatecheck')
debug_console = '--debugconsole' in arguments
if debug_console:
arguments.remove('--debugconsole')
settings_path = None
if '--settingspath' in arguments:
arguments.remove('--settingspath')
if len(arguments) > 0:
settings_path = arguments.pop(0)
else:
settings_path = None
inpath = arguments[0] if arguments else None
return noupdatecheck, debug_console, settings_path, inpath


def _run(inpath=None, updatecheck=True, debug_console=False, settingspath=None):
# print(f"DEBUG: ENTER _run {inpath=}, {updatecheck=}, {debug_console=}")
try:
Expand Down Expand Up @@ -135,13 +152,13 @@ def _show_old_wxpython_warning_if_needed(parent=None):
message = ("RIDE needs a newer wxPython version. Your current "
"version is %s."
"\n"
"At the time of this release the current wxPython version is 4.2.1. See "
"At the time of this release the current wxPython version is 4.2.3. See "
"https://wxPython.org/ for downloads and instructions."
% wx.VERSION_STRING)
style = wx.ICON_EXCLAMATION
if not parent:
_ = wx.App()
parent = wx.Frame(None, size=Size(0, 0))
parent = wx.Frame(None, size=(0, 0))
sys.stderr.write("{0}\n{1}\n".format(title, message))
dlg = wx.MessageDialog(parent, message=message, caption=title, style=style)
dlg.ShowModal()
Expand Down
9 changes: 8 additions & 1 deletion src/robotide/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import sys

if __name__ == '__main__' and 'robotide' not in sys.modules:
from pathlib import Path
robotide_dir = Path(__file__).absolute().parent # zipsafe
sys.path = [str(robotide_dir.parent)] + [p for p in sys.path if Path(p) != robotide_dir]

from robotide import main

main()
main(*sys.argv[1:])
Loading
Loading