Release Notes#

17.10.0 (2026-01-28)#

Features#

  • Ticket 1339: Re-implement the gate optimization functionality for rivers to be more stable (8ccde379)

Bug Fixes#

  • Ticket 1322: Added computation of local water and energy values for pure pumping storages, i.e. the energy_conversion_factor is negative. The local water value is the global water value minus the global water value of the upstream reservoir. The local energy value is the local water value divided by energy_conversion_factor. (6d0cc073)

  • Fix a bug where the simulated river flow can be slightly negative, and make sure simulated reservoir penalties (sim_water_surplus and sim_water_deficit) are consistent when changing time resolution in the simulator (81facbb9)

Technical chores#

  • Various internal modernizations related to the Online SHOP functionality

  • Update Windows build to use Visual Studio Build Tools 18 (Visual Studio 2026) (1aaef76e)

  • Remove non-functioning “start shopsim” command options (/plant_mw, /plant_m3s, /optimize) (6d503a94)

  • Implement automatic and improved release notes generation (db9fdf8c)

17.9.1 (2025-12-29)#

Technical chores#

  • Add back double quotes in command documentation for correct python parsing (f174a98f)

17.9.0 (2025-12-19)#

Features#

  • Implement new command “activate online_optimization” which allows setting output attributes and objects so that a SHOP run may be continued with the Online SHOP license (b48cf096)

  • Implement new constraints for min gross startup head on generators and pumps (9cf817f9)

Technical chores#

  • Switch out almost all lib attributes definitions with a nicer version hiding the lambda functions (db4f596d)

  • Create a new function to loop over and allocate all output TXYs on all objects using the API (b8ce1464)

  • Bump nodejs version in vlab image to 22 (e200edbd)

17.8.4 (2025-12-03)#

Bug Fixes#

  • Ticket 1324: Moved handling of logging endpoint in SHOP Server from Session to Server to increase the lifetime of response-objects (7c69b246)

  • Lock Jupyter books to v1.0.4 because v2.x have a lot of breaking changes and requires rewrite of the documentation repository (9675caa8)

Technical chores#

  • Update discharge schedule description to include min/max/best flag values (6085c75f)

  • Add the Cereal package and start serialization of the SHOP core for the Online SHOP project (4ff28e96)

17.8.3 (2025-12-02)#

Technical chores#

  • Update fedora build with correct signing keys (19bab5cf)

17.8.2 (2025-12-01)#

Bug Fixes#

  • Ticket 1299: Make sure FCR-N and FCR-D have individual extra reserve capacity limits if both p_fcr_n_min/max and p_fcr_d_min/max are specified at the same time (169bd4b1)

Features#

  • Add packaging support for Fedora. (291ddb94)

    • Add signing of rpm packages. (311ecea1)

    • Add component based packaging. (462aa978)

    • Add project to repackage cplex as an rpm package. (59fd8caf)

Technical chores#

  • Avoid setting output-dirs or build-rpath on linux & use bundle-dir. (782f8933)

  • Add ccache to GitLab CI/CD for improved compilation times (e863baff)

  • Remove shop_linker_test. (204674c2)

17.8.1 (2025-11-26)#

Technical chores#

  • Clean up some raw pointers. Potential fix for ticket 1324 (b228ad75)

  • Give a warning for invalid options to the set method command (56adf3a7)

17.8.0 (2025-11-21)#

Bug Fixes#

  • Ticket 1323: The marginal cost calculated in the BP algorithm is incorrect for plants connected to a downstream tunnel going into a river (93c19c24)

  • Make sure CPLEX does not overwrite logfile in each iteration. Free additional memory capacity after LP model has been built (e91f4d03)

  • Make sure the correct unit on/off variable is retrieved when flex_mip is not used (b3a1bad0)

  • The water value of reservoirs only connected with rivers is not calculated in the simulator (d795bdfd)

Features#

  • Implement the Online SHOP license (c7ffd183)

  • Implemented min and max plant consumption and upflow constraints (fe9c74eb)

Technical chores#

  • Fix some compiler warnings (22aec29b)

  • Convert most char* stored in various SHOP objects to std::string (4030e033)

  • Modernise solver interface with vectors, unique_ptrs and member functions/constructors. (1d1dc739)

  • Store external arrays as std::vector internally (6cca210e)

17.7.0 (2025-11-11)#

Bug Fixes#

  • Ticket 1315: Incorrect negative plant head warning for plants connected to tunnel networks with constant downstream pressure (63d6b229)

Technical chores#

  • Add internal hardware as build runner (bce2e297)

Features#

  • Ticket 1313: Implemented new input to specify which direction the ramping_steps constraints should be built (3de3289b)

17.6.0 (2025-10-21)#

Bug Fixes#

  • Ticket 1253: Make the ramping_steps functionality more consistent with the old ASCII implementation (7cfac7ca)

  • Ticket 1307: Calculating q from p fails in BP algorithm if turbine efficiency curves go far below p_min (f928ebe5)

Features#

  • Ticket 1167: Implemented gross_head_min/max constraints for generators and pumps (aa24fa39)

  • Added output TXYs for the potentially fractional result of the on/off variable for pump, generator, and needle_combination (c6cb28dd)

  • Improve tunnel network solver slightly by improving initial solution guess (206980b5)

Technical chores#

  • Removed Python 3.9 and bumped default Python version to 3.14 (aec8a3be)

17.5.0 (2025-10-03)#

Bug Fixes#

  • Ticket 1281: Allow use of p_rr_min > 0 at the same time as rr_down_stop_mip is active (d1fcfd90)

  • Ticket 1306: Make sure BP uploading works for pelton units with the command option /mc_format (f1b67d2f)

  • Ticket 1304 and 1305: Implement use of Newton’s method for calculating Q from P in BestProfit (3c512936)

  • Ticket 1296: Fix the calculation of the maximum unbalance reported in the SHOP log (c494916f)

Features#

  • Implemented new constant double attribute versions of the TXY attributes startcost, stopcost, flow_cost, and max_flow. (5d42d13d)

Technical chores#

  • Add some internal debugging features for tunnel networks (a3b6f80b)

17.4.0 (2025-09-19)#

Technical chores#

  • Remove the unused log_file parameter from SHOP Server (93331d71)

  • Update SHOP internal readme (b96800ff)

Features#

  • Ticket 927 and 1244: Implement CPLEX termination via SHOP Server (885f4514)

17.3.0 (2025-09-12)#

Bug Fixes#

  • Ticket 1290: Vectorise the building of the LP model in SHOP to avoid insufficient memory allocation errors (aefbb4cc)

  • Ticket 1288: Pelton uploading in BP is incorrect when multiple pelton units are in the same unit combination (f9a3418c)

17.2.0 (2025-08-29)#

Bug Fixes#

  • Ticket 1265: Reimplement BP bid matrix code to avoid errors about adding empty XYs (9ed3b07d)

  • Ticket 1283: Fix potential crash when printing PQ curves to an xml file from the print_bp_curves command with the /mc_format option (5945fc38)

Technical chores#

  • Ticket 1286: Split out Armadillo + MKL into a separate shop_utility library (1a30724c)

  • Update armadillo to v15 and include the armadillo and intel MKL version numbers in the SHOP version number. (a7ae4fe5)

  • Split objective function into multiple parts for better clarity and less boiler-plate code (e85aee18)

17.1.0 (2025-08-18)#

Code restructuring#

  • Use the Armadillo linear algebra library to solve the tunnel network equations for increased speed and reliability (720db1ec)

Bug Fixes#

  • Ticket 1277: Removed automatic re-commitment of generators delivering FRR-up when MIP is off, even when p is below the cutoff limit. (02dcc89e)

  • Ticket 1194: Improve clarity of attribute units in the documentation (1f1aea14)

  • Ticket 1276: Create a default busbar object for models without any energy markets and user-defined busbars to avoid fatal model building errors (a3ac68bf)

Features#

  • Implementation of dynamic reservoir level constraints that limit the difference between min and max reservoir level within fixed time periods in the optimization (01510147)

Technical chores#

  • Fix technical dept related to type forward declarations and null pointer handling (5cc8fa6b)

  • Remove old and deprecated thermal unit description from code base (f66e3ffc)

  • Print a warning to the log if turbine or generator efficiency curves are given as numbers between 0 and 1 instead of 0 and 100 (685f1670)

17.0.0 (2025-07-04)#

Technical chores#

  • Added openblas and armadillo packages and updated vcpkg to newest version (1d4b3497)

  • Fix crashes in the bulk tester (7e0647dd)

Code restructuring#

  • Restructure building of PQ curves in full model with and without MIP (9c75d6bb)