From 0c378e3f35dd85987d2f5efb4acfa2583c368c2a Mon Sep 17 00:00:00 2001 From: Alex Dewar Date: Fri, 31 Jul 2026 17:49:21 +0100 Subject: [PATCH] Add missing release notes for PRs in this engagement --- docs/release_notes/upcoming.md | 60 ++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/docs/release_notes/upcoming.md b/docs/release_notes/upcoming.md index 4b4ec5350..263e1dc1f 100644 --- a/docs/release_notes/upcoming.md +++ b/docs/release_notes/upcoming.md @@ -17,36 +17,92 @@ ready to be released, carry out the following steps: ## New features - Users can now optionally pass [custom options][highs-opts-docs] to the HiGHS solver ([#1276]) +- Input files are now copied to the output folder for reference ([#1282], [#1303]) - Implement a new appraisal approach for the LCOX objective type ([#1319]) +- Circular commodity markets can now use cost-based pricing strategies ([#1322]) +- The `max_decommission_year` column in `assets.csv` is now optional, defaulting to + `commission_year` plus the process's lifetime if not provided ([#1354]) +- Investment/commodity graphs (as generated by `muse2 save-graphs`) now include secondary + (non-primary) edges ([#1361]) +- Implement a new appraisal approach for the NPV objective type ([#1379]) +- Added a configurable `commodity_balance_epsilon` model parameter to help candidate assets dispatch + during investment appraisal ([#1387], [#1445]) +- New tranching approach for investment appraisal, sizing candidate asset capacities based on + annual demand rather than demand limiting capacity ([#1391], [#1395]) +- Added a fallback price to investment appraisal to reduce the risk of failed dispatch runs + ([#1420]) +- The execution time of key simulation steps (e.g. dispatch, agent investment) is now logged + ([#1421]) +- The `addition_limit` column in `process_investment_constraints.csv` is now optional ([#1427]) - Memory usage and performance has been drastically improved for divisible assets with many units ([#1464]) ## Breaking changes - Changed the default `pricing_strategy` for SED/SVD commodities from "shadow" to "full_average" ([#1281]) +- The individual units of divisible assets are no longer treated as separate assets and are instead + grouped under a single larger asset, affecting a number of output files. The `group_id` column has + been removed from all files. ([#1286], [#1302], [#1455]) - The `agent_search_space.csv` input file has been renamed to `agent_search_spaces.csv` for consistency ([#1293]) - Due to an internal change, some options in CSV files are now case sensitive (e.g. you must put `lcox` rather than `LCOX`). The error message you see if it does not match will now be more informative, however. ([#1376]) +- Stricter input validation: `capacity_to_activity` must now be greater than zero. Previously, + `capacity_to_activity = 0` was permitted ([#1391]) ## Bug fixes - Fix misleading warning message for assets decommissioned before simulation start ([#1259]) +- Avoid installing excessive candidate capacity during investment when there is little demand + remaining ([#1271]) - Fix parsing and validation of agent search space file ([#1293]) +- Fix a bug in asset selection for circular commodity markets when agents in the same cycle have + different commodity shares ([#1323]) +- Fix demand limiting capacity calculations to account for seasonal/annual activity limits ([#1326]) +- Prevent commodities of type `OTH` from being specified in `agent_commodity_portions.csv` ([#1327]) - Use shadow prices rather than market prices for appraisal optimisations and dispatch runs during investment ([#1349]) -- Updated input data validation to ensure `capacity_to_activity > 0`. Previously, - `capacity_to_activity = 0` was permitted. +- Asset selection can now continue even if it runs out of options, giving dispatch a chance to still + meet demand, rather than failing immediately ([#1365]) +- Calculate commodity prices using the dispatch solution without candidate assets, so that they are + consistent with the flows reported in `commodity_flows.csv` ([#1389]) +- Fix price calculations to prioritise active assets over inactive ones when determining commodity + prices ([#1392]) +- The `unmet_demand.csv` output file is no longer created unless it is needed ([#1405]) - Mothballed assets are now excluded from the main dispatch run ([#1458]) [highs-opts-docs]: ../developer_guide/custom_highs_options.md [#1259]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1259 +[#1271]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1271 [#1276]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1276 [#1281]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1281 +[#1282]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1282 +[#1286]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1286 [#1293]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1293 +[#1302]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1302 +[#1303]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1303 [#1319]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1319 +[#1322]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1322 +[#1323]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1323 +[#1326]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1326 +[#1327]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1327 [#1349]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1349 +[#1354]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1354 +[#1361]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1361 +[#1365]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1365 [#1376]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1376 +[#1379]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1379 +[#1387]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1387 +[#1389]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1389 +[#1391]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1391 +[#1392]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1392 +[#1395]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1395 +[#1405]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1405 +[#1420]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1420 +[#1421]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1421 +[#1427]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1427 +[#1445]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1445 +[#1455]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1455 [#1458]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1458 [#1464]: https://github.com/EnergySystemsModellingLab/MUSE2/pull/1464