Skip to content
Merged
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
92 changes: 56 additions & 36 deletions Announcements.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,60 +165,80 @@ scientific computing and software development.

# Alpha/beta/rc release

**Subject**: [ANN] Spyder 6.0 rc2 is released!
**Subject**: [ANN] Spyder 6.1.0a2 is released!


Hi all,

On the behalf of the [Spyder Project Contributors](https://github.com/spyder-ide/spyder/graphs/contributors),
I'm pleased to announce the second beta of our next major version: Spyder **6.0**.
I'm pleased to announce the second alpha of our next minor version: Spyder **6.1**.

We've been working on this version for more than one year now and it's working
We've been working on this version for around half a year now and it's working
relatively well. We encourage all people who like the bleeding edge to give it a try.

Spyder 6.0 comes with the following interesting new features and fixes:
Spyder 6.1 comes with the following interesting new features and fixes:

- New features
* New installers for Windows, Linux and macOS based on Conda and Conda-forge.
* Add a Debugger pane to explore the stack frame of the current debugging
session.
* Add a button to the Debugger pane to pause the current code execution and
enter the debugger afterwards.
* Add submenu to the `Consoles` menu to start a new console for a specific
Conda or Pyenv environment.
* Add ability to refresh the open Variable Explorer viewers to reflect the current
variable state.
* Show plots generated in the Variable Explorer or its viewers in the Plots pane.
* Show Matplotlib backend state in status bar.
* Make kernel restarts be much faster for the current interpreter.
* Turn `runfile`, `debugfile`, `runcell` and related commands into IPython magics.
* Add a new way to manage and establish connections with remote servers/kernels
* Add support to work with multiple cursors to the Editor. Options to configure them are available in `Preferences > Editor > Advanced settings`.
* Add a graphical interface to the update process of our standalone installers.
* Paths can be added to the front of `sys.path` in the Pythonpath manager.
* Copy/cut the current line if nothing is selected in the Editor with `Ctrl+C`/`Ctrl+V`, respectively.
* Add option to show/hide the Editor's file name toolbar to `Preferences > Editor > Interface`.
* Select full floating point numbers by double-clicking them on the Editor and the IPython console.

- Important fixes
* Environment variables declared in `~/.bashrc` or `~/.zhrc` are detected and
passed to the IPython console.
* Support all real number dtypes in the dataframe viewer.
* Restore ability to load Hdf5 and Dicom files through the Variable Explorer
(this was working in Spyder 4 and before).

- New API features
* `SpyderPluginV2.get_description` must be a static method now and
`SpyderPluginV2.get_icon` a class or static method. This is necessary to
display the list of available plugins in Preferences in a more user-friendly
way (see PR spyder-ide/spyder#21101).
* Generalize the Run plugin to support generic inputs and executors. This allows
plugins to declare what kind of inputs (i.e. file, cell or selection) they
can execute and how they will display the result.
* Add a new plugin called Switcher for the files and symbols switcher.
* Declare a proper API for the Projects plugin.
* Remove the Breakpoints plugin and add its functionality to the Debugger one.
* Much better support for PyQt6 and PySide6.

- UX/UI improvements
* Add option to hide all messages displayed in panes that are empty to `Preferences > Application > Interface`.

- API changes
- Editor
* **Breaking** - The `NewFile`, `OpenFile`, `OpenLastClosed`, `MaxRecentFiles`, `ClearRecentFiles`, `SaveFile`, `SaveAll`, `SaveAs`, `SaveCopyAs`, `RevertFile`, `CloseFile` and `CloseAll` actions were moved to the `ApplicationActions` class in the `Application` plugin.
* **Breaking** - The shortcuts "new file", "open file", "open last closed", "save file", "save all", "save as", "close file 1", "close file 2" and "close all" were moved to the "main" section.
* Add `open_last_closed`, `current_file_is_temporary`, `save_all`, `save_as`, `save_copy_as` and `revert_file` methods.
- IPython console
* **Breaking** - Remove `set_working_directory` method. You can use `set_current_client_working_directory` instead, which does the same.
* **Breaking** - The `save_working_directory` method was made private because it's only used internally.
* Add `sender_plugin` kwarg to the `set_current_client_working_directory` method.

- Working Directory
* **Breaking** - The `sig_current_directory_changed` signal now emits two strings instead of a single one.
* **Breaking** - The `sender_plugin` kwarg of the `chdir` method now expects a string instead of a `SpyderPluginV2` object.
- Remote Client
* **Breaking** - The `create_ipyclient_for_server` and `get_kernels` methods were removed.
* Add `sig_server_changed` signal to report when a server was added or removed.
* Add `get_server_name` method to get a server name given its id.
* Add `register_api` and `get_api` methods in order to get and register new rest API modules for the remote client.
* Add `get_jupyter_api` method to get the Jupyter API to interact with a remote Jupyter server.
* Add `get_file_api` method to get the `SpyderRemoteFileServicesAPI` rest API module to manage remote file systems.
- Pythonpath manager
* **Breaking** - The `sig_pythonpath_changed` signal now emits a list of strings and a bool, instead of two dictionaries.
- Application plugin
* Add `create_new_file`, `open_file_using_dialog`, `open_file_in_plugin`, `open_last_closed_file`, `add_recent_file`, `save_file`, `save_file_as`, `save_copy_as`, `revert_file`, `close_file`, `close_all` and `enable_file_action` methods to perform file operations in the appropriate plugin.
* Add `focused_plugin` attribute.
- SpyderPluginV2
* Add `CAN_HANDLE_FILE_ACTIONS` and `FILE_EXTENSIONS` attributes and `create_new_file`, `open_file`, `get_current_filename`, `current_file_is_temporary`, `open_last_closed_file`, `save_file`, `save_all`, `save_file_as`, `save_copy_as`, `revert_file`, `close_file` and `close all` methods to allow other plugins to hook into file actions.
* Add `sig_focused_plugin_changed` signal to signal that the plugin with focus has changed.
- PluginMainWidget
* Add `SHOW_MESSAGE_WHEN_EMPTY`, `MESSAGE_WHEN_EMPTY`, `IMAGE_WHEN_EMPTY`, `DESCRIPTION_WHEN_EMPTY` and `SET_LAYOUT_WHEN_EMPTY` class attributes,
and `set_content_widget`, `show_content_widget` and `show_empty_message` methods to display a message when it's empty (like the one shown in
the Variable Explorer).
- Shellconnect
* **Breaking** - Rename `is_current_widget_empty` to `is_current_widget_error_message` in `ShellConnectMainWidget`.
* Add `switch_empty_message` to `ShellConnectMainWidget` to switch between the empty message widget and the one with content.
* Add `ShellConnectWidgetForStackMixin` class for widgets that will be added to the stacked widget part of `ShellConnectMainWidget`.
- AsyncDispatcher
* **Breaking** - Remove `dispatch` method to use it directly as decorator.
* Add class `DispatcherFuture` to `spyder.api.asyncdispatcher` and `QtSlot` method to `AsyncDispatcher` so that connected methods can be run inside the main Qt event loop.
* Add `early_return` and `return_awaitable` kwargs its constructor.

For a more complete list of changes, please see our
[changelog](https://github.com/spyder-ide/spyder/blob/master/changelogs/Spyder-6.md)

You can easily install this release candidate if you use conda by running:

conda install -c conda-forge/label/spyder_dev -c conda-forge/label/spyder_kernels_rc -c conda-forge spyder=6.0.0rc2
conda install -c conda-forge/label/spyder_dev -c conda-forge/label/spyder_kernels_rc -c conda-forge spyder=6.1.0a2

Or you can use pip with this command:

Expand Down
36 changes: 36 additions & 0 deletions changelogs/Spyder-6.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,42 @@

----

## Version 6.1.0a2 (2025/04/22)

### Issues Closed

* [Issue 23951](https://github.com/spyder-ide/spyder/issues/23951) - Multi-Cursor editing uses non-standard mouse shortcuts which cannot be configured ([PR 23463](https://github.com/spyder-ide/spyder/pull/23463) by [@athompson673](https://github.com/athompson673))
* [Issue 23691](https://github.com/spyder-ide/spyder/issues/23691) - Multi-Cursor paste does not paste entire clipboard, or pastes nothing for some cursors ([PR 24223](https://github.com/spyder-ide/spyder/pull/24223) by [@athompson673](https://github.com/athompson673))
* [Issue 23607](https://github.com/spyder-ide/spyder/issues/23607) - Remove Editor top bar showing file path ([PR 24194](https://github.com/spyder-ide/spyder/pull/24194) by [@jsbautista](https://github.com/jsbautista))
* [Issue 22354](https://github.com/spyder-ide/spyder/issues/22354) - Provide custom editor widget for given file extension via plugin ([PR 22564](https://github.com/spyder-ide/spyder/pull/22564) by [@jitseniesen](https://github.com/jitseniesen))
* [Issue 21197](https://github.com/spyder-ide/spyder/issues/21197) - Minimum size of empty pane is fairly big ([PR 24181](https://github.com/spyder-ide/spyder/pull/24181) by [@ccordoba12](https://github.com/ccordoba12))
* [Issue 7794](https://github.com/spyder-ide/spyder/issues/7794) - Allow plugins to hook into File > Open ([PR 22564](https://github.com/spyder-ide/spyder/pull/22564) by [@jitseniesen](https://github.com/jitseniesen))

In this release 6 issues were closed.

### Pull Requests Merged

* [PR 24276](https://github.com/spyder-ide/spyder/pull/24276) - PR: Add new features and improvements for 6.1.0 to our Changelog, by [@ccordoba12](https://github.com/ccordoba12)
* [PR 24257](https://github.com/spyder-ide/spyder/pull/24257) - PR: Follow-up to removing `CONF` from `mouse_shortcuts` (Editor), by [@athompson673](https://github.com/athompson673)
* [PR 24250](https://github.com/spyder-ide/spyder/pull/24250) - PR: Remove `CONF` usage in `MouseShortcutEditor` (Editor), by [@ccordoba12](https://github.com/ccordoba12)
* [PR 24223](https://github.com/spyder-ide/spyder/pull/24223) - PR: Add multicursor paste behavior configuration to Preferences (Editor), by [@athompson673](https://github.com/athompson673) ([23691](https://github.com/spyder-ide/spyder/issues/23691))
* [PR 24213](https://github.com/spyder-ide/spyder/pull/24213) - PR: Update `python-lsp-server` and `qtconsole` subrepos, by [@mrclary](https://github.com/mrclary)
* [PR 24204](https://github.com/spyder-ide/spyder/pull/24204) - PR: Fix several issues in the Layout plugin, by [@ccordoba12](https://github.com/ccordoba12)
* [PR 24194](https://github.com/spyder-ide/spyder/pull/24194) - PR: Add option to show/hide file name toolbar (Editor), by [@jsbautista](https://github.com/jsbautista) ([23607](https://github.com/spyder-ide/spyder/issues/23607))
* [PR 24181](https://github.com/spyder-ide/spyder/pull/24181) - PR: Add API to display an empty message in any dockable plugin (API), by [@ccordoba12](https://github.com/ccordoba12) ([21197](https://github.com/spyder-ide/spyder/issues/21197))
* [PR 24144](https://github.com/spyder-ide/spyder/pull/24144) - PR: Use `spyder-updater` to handle updates (Installers), by [@mrclary](https://github.com/mrclary)
* [PR 24131](https://github.com/spyder-ide/spyder/pull/24131) - PR: Use checksum to verify downloaded asset for updating Spyder (Update manager), by [@mrclary](https://github.com/mrclary)
* [PR 24014](https://github.com/spyder-ide/spyder/pull/24014) - PR: Return an iterable from `ls` method of `SpyderRemoteFileServicesAPI` (Remote client), by [@hlouzada](https://github.com/hlouzada)
* [PR 23732](https://github.com/spyder-ide/spyder/pull/23732) - PR: Fixes to make the app work with PySide6, by [@ccordoba12](https://github.com/ccordoba12)
* [PR 23720](https://github.com/spyder-ide/spyder/pull/23720) - PR: Refactor Remote Client kernel management, by [@hlouzada](https://github.com/hlouzada)
* [PR 23463](https://github.com/spyder-ide/spyder/pull/23463) - PR: Make `CodeEditor` mouse shortcuts configurable (Editor), by [@athompson673](https://github.com/athompson673) ([23951](https://github.com/spyder-ide/spyder/issues/23951))
* [PR 23287](https://github.com/spyder-ide/spyder/pull/23287) - PR: Refactor how the installers are built, by [@mrclary](https://github.com/mrclary)
* [PR 22564](https://github.com/spyder-ide/spyder/pull/22564) - PR: Allow plugins to hook into file actions (API), by [@jitseniesen](https://github.com/jitseniesen) ([7794](https://github.com/spyder-ide/spyder/issues/7794), [22354](https://github.com/spyder-ide/spyder/issues/22354))

In this release 16 pull requests were closed.

----

## Version 6.1.0a1 (2025/03/13)

### Issues Closed
Expand Down