From f5371eb9fa2243b455ce4df9808f83abf382b9a7 Mon Sep 17 00:00:00 2001 From: Stefano Simonelli <16114781+s-simoncelli@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:17:52 +0000 Subject: [PATCH 1/2] Updated changelog file for new release 2.1.1 --- CHANGELOG.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bee218..42c312d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,25 @@ # Changelog All notable changes to this project will be documented in this file. -All issue numbers are relative to https://github.com/pywr-editor/editor +All issue numbers are relative to +## v2.1.1 - 2025-12-16 + +### Fixed + +- Added more plain node colours ([#228](https://github.com/pywr-editor/editor/issues/228)) +- Fixed detection of some node styles ([PR#230](https://github.com/pywr-editor/editor/pull/230)) +- Freeze multiprocessing on Windows to prevent infinite loop bug in some scenarios. The timer checking for file changes was also fixed when the model is modified before the window loads ([PR#237](https://github.com/pywr-editor/editor/pull/237)) + +### Changed + +- Added toggle to enable file synchronisation ([PR#232](https://github.com/pywr-editor/editor/pull/232)) +- Do not close the dialog if the form validation fails ([PR#231](https://github.com/pywr-editor/editor/pull/231)) ## v2.1 - 2024-02-18 + ### Fixed + - Disable action buttons (move and delete) after adding a new control curve. This prevents the editor from crashing when no item is selected in the widget ([#202](https://github.com/pywr-editor/editor/issues/202)) - If the model has changes and is reloaded, two save prompts used to be displayed ([#212](https://github.com/pywr-editor/editor/issues/212)) @@ -13,83 +27,101 @@ crashing when no item is selected in the widget ([#202](https://github.com/pywr- - Scroll with the mouse wheel was too slow in the panel used to add new nodes and shapes ([#216](https://github.com/pywr-editor/editor/issues/216)) ### Changed + - Updated dependencies ([#197](https://github.com/pywr-editor/editor/issues/197)) - The list of model parameters are now alphabetically sorted in the UI dropdown menus ([#205](https://github.com/pywr-editor/editor/issues/204)) - To improve user experience dialogs are automatically closed after a form is saved ([#208](https://github.com/pywr-editor/editor/issues/208)) ### Added + - Added ability to clone a node from the schematic. By right-clicking on a node and pressing "Clone" the node and its model is configuration are cloned. The new node is assigned a random name ([#205](https://github.com/pywr-editor/editor/issues/204)) -- Updated support for pywr to 1.23. The `loss_factor `in `LossLink `can now be provided as a parameter ([#210](https://github.com/pywr-editor/editor/issues/210)) +- Updated support for pywr to 1.23. The `loss_factor`in `LossLink`can now be provided as a parameter ([#210](https://github.com/pywr-editor/editor/issues/210)) - Users can now double click on a schematic item (node or shape) to edit it ([#214](https://github.com/pywr-editor/editor/issues/214)) - When selecting a named parameter or recorder from a dropdown, display its configuration in a tooltip ([#220](https://github.com/pywr-editor/editor/issues/220)) - Double click on a model component (recorder or parameter) to edit it in a list or table widget ([#222](https://github.com/pywr-editor/editor/issues/222)) - Listen for changes to the JSON file made externally (for example using a text editor). If there are any, the editor will be reloaded to include the new changes ([#224](https://github.com/pywr-editor/editor/issues/224)) - ## v2.0.3 - 2023-08-19 + ### Fixed + - Negative costs could not be input for a `ControlCurvePiecewiseInterpolatedParameter`([#191](https://github.com/pywr-editor/editor/issues/191)) - Allow floats in the RBF bounds in the optimisation section ([#193](https://github.com/pywr-editor/editor/issues/193)) - When pywr is running and the inspector tree is open, the editor crashed due to a wrong function signature ([#195](https://github.com/pywr-editor/editor/issues/195)) ### Changed -- Distributed application will now contain `pywr-1.21.0` and `Qt-6.5.2` ([#197](https://github.com/pywr-editor/editor/issues/197)) +- Distributed application will now contain `pywr-1.21.0` and `Qt-6.5.2` ([#197](https://github.com/pywr-editor/editor/issues/197)) ## v2.0.2 - 2023-07-29 + ### Fixed + - Fixed import of `tables` module in the GitHub pipeline ([#186](https://github.com/pywr-editor/editor/issues/186)) - Some dictionary keys of a nested `ConstantParameter` were dropped when the parameter configuration was saved ([#188](https://github.com/pywr-editor/editor/issues/188)) - The editor version in the Windows installer setup is updated during a release ## v2.0.1 - 2023-05-31 + ### Fixed + - The frozen application and installer did not include some imports needed by pywr ([#183](https://github.com/pywr-editor/editor/issues/183)). ## v2.0.0 - 2023-05-29 + ### Added + - Pywr is now bundled with the editor, and you can run and debug your model using the new Toolbar `Run` tab. You can also change the start, end date, timestep as well as run and pause the model to a specific date ([#122](https://github.com/pywr-editor/editor/issues/122)) ### Changed + - The code of some classes have been improved ([PR #176](https://github.com/pywr-editor/editor/pull/176), [PR #177](https://github.com/pywr-editor/editor/pull/177), [PR #181](https://github.com/pywr-editor/editor/pull/181)) - Qt 6.5 is now required ([PR #175](https://github.com/pywr-editor/editor/pull/175)) ### Fixed + - When values in `ControlCurvePiecewiseInterpolatedParameter` were provided as nested lists, the values were not transposed and were assigned to the wrong control curve. The parameter form now also shows a new column in the control curve and value fields to easily map and assign the values to each area defined by the control curves ([#173](https://github.com/pywr-editor/editor/issues/173)). - If one or more nodes did not have the `position` attribute, the editor showed a warning message every time the schematic was reloaded. The message is now shown only when the schematic is first initialised. ([#178](https://github.com/pywr-editor/editor/issues/178)). - ## v1.6.0 - 2023-04-02 + ### Added + - Added support to multi-line comments ([#146](https://github.com/pywr-editor/editor/issues/146)). - Add icons to contextual menu actions and fixed menu style on right-click menu on form inputs ([#159](https://github.com/pywr-editor/editor/issues/159)). - Added node icons in contextual menu. When you right-click on a node to change an edge, the contextual menu now shows the node icons to easily identify the node to connect or disconnect ([#166](https://github.com/pywr-editor/editor/issues/166)). ### Changed + - The window title now shows the model name first ([#170](https://github.com/pywr-editor/editor/issues/170)). - Open the start screen when user click on the "Open model file" button in the toolbar ([#153](https://github.com/pywr-editor/editor/issues/153)). - The message box, after a validation tool is run, displays a different icon if the model validation is successful ([#155](https://github.com/pywr-editor/editor/issues/155)). - The fields to select multiple nodes and parameters are now disabled if there are no nodes or parameters in the model ([#163](https://github.com/pywr-editor/editor/issues/163)). ### Fixed + - Fixed an exception when a H5 file has columns cast as integers ([#157](https://github.com/pywr-editor/editor/issues/157)). - Fixed exception file logging when the exception hook creates a string instead of an Exception object ([#165](https://github.com/pywr-editor/editor/issues/165)). - The metadata field in the table recorder is now optional ([#160](https://github.com/pywr-editor/editor/issues/160)). ## v1.5.1 - 2023-03-29 + ### Added + - A new reload button was added to the toolbar to reload the JSON file in case it was externally edited ([#148](https://github.com/pywr-editor/editor/issues/148)). - Added comment field in the form of RBF parameter ([#126](https://github.com/pywr-editor/editor/issues/126)). ### Changed + - The width of form widgets handling float numbers have been shrank. Some fields also now restrict the value to a specific range (for ex `initial_volume_pc` is now constrained between 0 and 1) ([#144](https://github.com/pywr-editor/editor/issues/144)). - When cloning a recorder or parameter, the latest saved configuration is now used ([#138](https://github.com/pywr-editor/editor/issues/138)). - Integers are now allowed in the upper and lower bounds of a RBF parameter. Previously only a list of integers was allowed ([#136](https://github.com/pywr-editor/editor/issues/136)). - Increased the minimum width of the parameter dialog to hide the horizontal scrollbar in the scrollable area of the form. Some forms are too large to properly fit into the child widget. ([#127](https://github.com/pywr-editor/editor/issues/127)). ### Fixed + - When a parameter or recorder, sharing the same name of a node, was renamed, the node name was being replaced in the `edges` as well ([#142](https://github.com/pywr-editor/editor/issues/142)). - To prevent duplicated entries, the paths in the recent projects are now normalised ([#140](https://github.com/pywr-editor/editor/issues/140)). @@ -98,7 +130,9 @@ its model is configuration are cloned. The new node is assigned a random name ([ - Fixed validation of RBF parameter when the day field is empty or invalid. The form used to throw a TypeError exception ([#128](https://github.com/pywr-editor/editor/issues/128)). ## v1.5 - 2023-03-27 + ### Added + - The configuration of a selected recorder or parameter can now be copied as a new recorder or parameter by using the "Clone" button in the dialogs ([#115](https://github.com/pywr-editor/editor/issues/115)). - New icons (QtAwesome) have been added to all buttons to improve design and UI accessibility @@ -108,7 +142,9 @@ its model is configuration are cloned. The new node is assigned a random name ([ by clicking on the "Search" button in the toolbar or pressing `CTRL+F` ([#123](https://github.com/pywr-editor/editor/issues/123)). ## v1.4.3 - 2023-03-25 + ### Changed + - Parameter, recorder, scenarios and tables are now sorted by name in the setting dialogs The components can now be easily identified in the left-hand side widget in the modal dialogs. ([#107](https://github.com/pywr-editor/editor/issues/107)). @@ -118,11 +154,14 @@ its model is configuration are cloned. The new node is assigned a random name ([ ([#111](https://github.com/pywr-editor/editor/issues/111)). ### Fixed + - Fixed the form attribute name identifying the storage node in `MinimumVolumeStorageRecorder`. The recorder uses `node` instead of `storage` ([#105](https://github.com/pywr-editor/editor/issues/105)). ## v1.4.2 - 2023-03-20 + ### Changed + - Recent projects in the start screen are now sorted by date ([#89](https://github.com/pywr-editor/editor/issues/89)). - Node names are now sorted alphabetically in any drop-down menus ([#90](https://github.com/pywr-editor/editor/issues/90)). - The `mrf`, `mrf_cost` and `cost` attributes of a`RiverGauge` node are now optional @@ -133,6 +172,7 @@ its model is configuration are cloned. The new node is assigned a random name ([ ([#102](https://github.com/pywr-editor/editor/issues/102)). ### Fixed + - `NodesAndFactorsTableWidget` was not loading correctly when the flow factor list was empty or did not save the form data for certain node types ([#93](https://github.com/pywr-editor/editor/issues/93)). @@ -140,17 +180,21 @@ its model is configuration are cloned. The new node is assigned a random name ([ instead of strings ([#98](https://github.com/pywr-editor/editor/issues/98)). ## v1.4.1 - 2023-03-18 + ### Added + - A red, purple or pink circle can now be set to customise the appearance of a schematic node ([#86](https://github.com/pywr-editor/editor/issues/86)). ### Changed + - Improved label and description of relative storage field in nodes. The editor now checks that the provided storage is between 0 and 1 ([#77](https://github.com/pywr-editor/editor/issues/77)). - If the model title is changed, the window title is now updated to use the new model name ([#83](https://github.com/pywr-editor/editor/issues/83)). ### Fixed + - Fixed `TableValuesWidget` initialisation when widget uses multiple variables and the provided value is `None` ([#79](https://github.com/pywr-editor/editor/issues/79)). - When a node, with an already-set edge colour, is connected, the edge color is set to gray instead of the @@ -158,16 +202,20 @@ its model is configuration are cloned. The new node is assigned a random name ([ - Fixed Inno Setup installation script ## v1.4.0 - 2023-03-11 + ### Added + - Custom shapes can now be added onto the schematic (text, arrow and rectangle) using the node panel in the toolbar. Their appearance can also be customised and all shapes are stored in the JSON file ([#44](https://github.com/pywr-editor/editor/issues/44)). ### Changed + - Only unique values from a DataFrame index are not provided when setting up a table ([#61](https://github.com/pywr-editor/editor/issues/61)). ### Fixed + - The Windows installer release did not build on GitHub actions due to a wrong file pattern in the `.iss` config file ([#58](https://github.com/pywr-editor/editor/issues/58)). - Fixed an exception when the dialog to open a new JSON file was disregarded @@ -183,26 +231,30 @@ its model is configuration are cloned. The new node is assigned a random name ([ - Fixed an exception when saving a recorder form ([#74](https://github.com/pywr-editor/editor/issues/74)). ## v1.3.0 - 2023-02-06 + ### Added + - Added support for pywr-1.20.0. The editor (1) recognises the new `RollingMeanFlowNodeParameter`; (2) it makes the relative and absolute initial volume optional when the maximum volume of a storage node is constant; and (3) it adds support for the timestep offset in the `DataFrameParameter` and `TablesArrayParameter` ([#55](https://github.com/pywr-editor/editor/issues/55)). ### Changed + - The toolbar save button is not enabled using a Slot when a change is applied to the model. This was previously implemented using a `QTimer` object ([#47](https://github.com/pywr-editor/editor/issues/47)). - Properly style tooltips ([#51](https://github.com/pywr-editor/editor/issues/51)). ### Fixed + - The parameter and recorder icons are now properly scaled on any screen when used in `QlineEdit` or `QComboBox` widgets ([#5](https://github.com/pywr-editor/editor/issues/5)). - Any `Storage` node was recognised as `Reservoir` node. The node type is now visible in the node library and properly identified in all widgets ([#53](https://github.com/pywr-editor/editor/issues/53)). - ## v1.2.0 - 2023-01-02 ### Added + - Added support for `WeightedAverageProfileParameter` (added in pywr-1.19.0) ([#3](https://github.com/pywr-editor/editor/issues/3)). - The schematic now supports undo/redo operations of the following actions: add node, connect node, delete nodes, disconnect node and move nodes ([#41](https://github.com/pywr-editor/editor/issues/41)). The undo/redo actions can be triggered by @@ -210,16 +262,19 @@ its model is configuration are cloned. The new node is assigned a random name ([ - The nodes on the schematic show a tooltip summarising all the node's properties ([#45](https://github.com/pywr-editor/editor/issues/45)) ### Fixed + - Fixed item manipulation in `TableView` and `ListView` widgets. Selection in clear after an item is deleted or moved to prevent unexpected behaviours ([#30](https://github.com/pywr-editor/editor/issues/30)) ### Changed + - When a modal dialog is open, inputs to the `MainWindow` are now blocked ([#36](https://github.com/pywr-editor/editor/issues/36)) - The save button in the toolbar is now enabled using a Slot instead of a `QTimer` object ([#47](https://github.com/pywr-editor/editor/issues/47)) ## v1.1.0 - 2022-12-17 ### Fixed + - Prevent the editor from crashing when user was asked to save the model file on exit ([#11](https://github.com/pywr-editor/editor/issues/11)) - Check if Microsoft Excel is installed. If it is not, the import/export buttons, available in some widgets, will now be hidden ([#15](https://github.com/pywr-editor/editor/issues/15)) - The file names, in the recent project list in the welcome screen, were clipped ([#17](https://github.com/pywr-editor/editor/issues/17)) @@ -227,4 +282,5 @@ its model is configuration are cloned. The new node is assigned a random name ([ - Prevent the editor from crashing when the model dictionary, loaded from a JSON file, does not have the "table" key ([#21](https://github.com/pywr-editor/editor/issues/21)) ## v1.0.0 -- This is the first release of pywr editor \ No newline at end of file + +- This is the first release of pywr editor From 7e9f9d548426cf66169ddd01a68f23cef7b5c773 Mon Sep 17 00:00:00 2001 From: Stefano Simonelli <16114781+s-simoncelli@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:17:59 +0000 Subject: [PATCH 2/2] bump version 2.1.0 -> 2.1.1 --- pyproject.toml | 2 +- pywr_editor/__init__.py | 4 ++-- windows_setup.iss | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 450738e..05213f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ required_plugins = ["pytest-qt"] qt_api = "pyside6" [tool.bumpver] -current_version = "2.1.0" +current_version = "2.1.1" version_pattern = "MAJOR.MINOR.PATCH" commit_message = "bump version {old_version} -> {new_version}" commit = true diff --git a/pywr_editor/__init__.py b/pywr_editor/__init__.py index 735f32b..d531622 100644 --- a/pywr_editor/__init__.py +++ b/pywr_editor/__init__.py @@ -1,4 +1,4 @@ -__version__ = "2.1.0" -__build_date__ = "2024-2-17" +__version__ = "2.1.1" +__build_date__ = "2025-12-16" from .main_window import MainWindow from .app import app diff --git a/windows_setup.iss b/windows_setup.iss index c10f434..57690e6 100644 --- a/windows_setup.iss +++ b/windows_setup.iss @@ -1,5 +1,5 @@ #define MyAppName "Pywr editor" -#define MyAppVersion "2.1.0" +#define MyAppVersion "2.1.1" #define MyAppPublisher "Stefano Simoncelli" #define MyAppURL "https://github.com/pywr-editor/editor" #define MyAppExeName "Pywr Editor.exe"